C에서 random (int) 및 randomize ()

예수님 Ros

사용으로 인한 왜곡을 도입하지 않고 주어진 범위에서 의사 난수 정수를 생성하고 싶습니다 rand()%N.

나는 기능에 대해 읽고 random()그리고 randomize()그것은 대체하는 것 rand()하고 srand()직접의 매개 변수로 주어진 범위의 정수를 리턴하는 함수하지만 random()기능. 두 경우 모두 함수가 stdlib.h라이브러리 에있는 것처럼 보입니다 .

내가 가진 문제는 어떻게 든 이러한 기능을 작동시킬 수 없다는 것입니다. 다음은 함수를 테스트하기 위해 만든 작은 테스트 코드입니다.

#include <stdio.h>
#include <stdlib.h>

int main(){
 randomize(); 
 printf("%d\n",random(100));
 return 0;
}

컴파일시 gcc -o test test.c오류가 발생합니다.

test.c: In function ‘main’:
test.c:6: error: too many arguments to function ‘random’

내가 아는 한 함수 random()는 주어진 숫자의 범위를 결정하는 정수인 하나의 인수 만 취합니다. 내가 무엇을 잘못하고 있지?

편집 : 일부 TurboC 오래된 것들에 해당하는 것 같습니다. 이제 질문은 어떻게 왜곡되지 않는다는 의미에서 "진정한"임의의 정수를 만드는 것입니다. 내 접근 방식은 (Vatine이 제안한대로)

#include <stdio.h>
#include <stdlib.h>

int main(){
  srand(time(NULL));
  printf("%d\n",rand()/(RAND_MAX/100));
  return 0;
}

올바른 결과를 산출하는 것 같습니다. 이것이 약간의 편향을 추가하는 것입니까, 아니면 결과가 범위의 숫자에 속할 확률이 적어도 같습니까?

막심 체 라미

man random 나에게 준다 :

   #include <stdlib.h>

   long int random(void);

따라서 오류 메시지는 정확합니다. '무작위'기능에 너무 많은 인수가 있습니다.

나는 기능 모른다 randomize그리고 random내가 어떤 주장을지지 않습니다 알고있다 기능을.

그러나 나는 이것을 인터넷에서 찾았습니다 (주의하십시오.이 코드를 사용해서는 안됩니다.

#ifndef __TURBOC__
#define randomize() srand48(getpid())
#define random(x) (lrand48() % x)
#endif

그렇다면 터보 C 오래된 것일까 요? 나는 또한 그것이 Turbo C 특정 기능임을 확인하는 경향 이있는이 예제발견 했습니다 .

 C에서 난수를 생성하는 방법

rand을 계속 사용 srand하려면 다음을 수행 할 수 있습니다.

int random(int N) {
    return (double)rand()/RAND_MAX * N;
}

그러나 Mersenne Twister와 같은 다른 임의 생성기를 찾을 수도 있습니다. 사용 가능한 많은 구현이 있습니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

C ++에서 random () 및 randomize () 사용

분류에서Dev

random () 및 randomize () 대 코드에서 작동하지 않음 (cstdlib 및 ctime 포함)

분류에서Dev

C ++의 randomize () 및 random () 함수는 특정 컴파일러에서만 작동합니다.

분류에서Dev

c에서 int 및 short의 동작

분류에서Dev

int * 및 HANDLE * C #에서 동일

분류에서Dev

C에서 unsigned long 및 int 추가

분류에서Dev

C #에서 '(int) a', 'a as int'및 Convert.ToInt32 (a)의 차이점

분류에서Dev

목적 c에서 int에 대한 getter 및 setter

분류에서Dev

C ++에서 cin을 사용하여 int 변수에 char 및 int 입력

분류에서Dev

string, int 및 int에 대해 C에서 "String"(char 배열) 구문 분석

분류에서Dev

C # int 및 int32 선언

분류에서Dev

c # JSONPatch가 int 및 enum에서 작동하지 않습니다.

분류에서Dev

테스트 메서드, C #에 int [,] 및 int 값을 제공하는 방법

분류에서Dev

C에서 int * 및 int * [100] 유형의 차이점은 무엇입니까?

분류에서Dev

for () 및 random () 함수

분류에서Dev

>>에 대한 TypeError on float 및 int

분류에서Dev

MySQL에서 Int 테스트 및 설정

분류에서Dev

int [] Java에서 hashCode 및 같음 구현

분류에서Dev

Java에서 String 및 Int 구문 분석

분류에서Dev

random (x) 및 random () % x에 대한 수학 질문-Java

분류에서Dev

(Math.random () * a); double에서 int로 가능한 손실 변환

분류에서Dev

Linux 커널 구성에서 CONFIG_RANDOMIZE_BASE와 CONFIG_RANDOMIZE_MEMORY의 차이점

분류에서Dev

int 및 chars C ++에 값을 삽입하는 파일에서 읽기

분류에서Dev

PostgreSQL의 두 테이블에서 DISTINCT 및 RANDOM 사용

분류에서Dev

ocaml int 및 unsigned int

분류에서Dev

int 배열 선언 및 for 루프 내에서 C의 요소 변경

분류에서Dev

C ++의 파일에서 구분 기호를 사용하여 int 및 string 읽기

분류에서Dev

C 프로그래밍의 파일에서 문자열 char 및 int 읽기

분류에서Dev

Python random.seed () 및 numpy.random.seed () 구현이 서로 다른가요?

Related 관련 기사

  1. 1

    C ++에서 random () 및 randomize () 사용

  2. 2

    random () 및 randomize () 대 코드에서 작동하지 않음 (cstdlib 및 ctime 포함)

  3. 3

    C ++의 randomize () 및 random () 함수는 특정 컴파일러에서만 작동합니다.

  4. 4

    c에서 int 및 short의 동작

  5. 5

    int * 및 HANDLE * C #에서 동일

  6. 6

    C에서 unsigned long 및 int 추가

  7. 7

    C #에서 '(int) a', 'a as int'및 Convert.ToInt32 (a)의 차이점

  8. 8

    목적 c에서 int에 대한 getter 및 setter

  9. 9

    C ++에서 cin을 사용하여 int 변수에 char 및 int 입력

  10. 10

    string, int 및 int에 대해 C에서 "String"(char 배열) 구문 분석

  11. 11

    C # int 및 int32 선언

  12. 12

    c # JSONPatch가 int 및 enum에서 작동하지 않습니다.

  13. 13

    테스트 메서드, C #에 int [,] 및 int 값을 제공하는 방법

  14. 14

    C에서 int * 및 int * [100] 유형의 차이점은 무엇입니까?

  15. 15

    for () 및 random () 함수

  16. 16

    >>에 대한 TypeError on float 및 int

  17. 17

    MySQL에서 Int 테스트 및 설정

  18. 18

    int [] Java에서 hashCode 및 같음 구현

  19. 19

    Java에서 String 및 Int 구문 분석

  20. 20

    random (x) 및 random () % x에 대한 수학 질문-Java

  21. 21

    (Math.random () * a); double에서 int로 가능한 손실 변환

  22. 22

    Linux 커널 구성에서 CONFIG_RANDOMIZE_BASE와 CONFIG_RANDOMIZE_MEMORY의 차이점

  23. 23

    int 및 chars C ++에 값을 삽입하는 파일에서 읽기

  24. 24

    PostgreSQL의 두 테이블에서 DISTINCT 및 RANDOM 사용

  25. 25

    ocaml int 및 unsigned int

  26. 26

    int 배열 선언 및 for 루프 내에서 C의 요소 변경

  27. 27

    C ++의 파일에서 구분 기호를 사용하여 int 및 string 읽기

  28. 28

    C 프로그래밍의 파일에서 문자열 char 및 int 읽기

  29. 29

    Python random.seed () 및 numpy.random.seed () 구현이 서로 다른가요?

뜨겁다태그

보관