C/C++에서 난수를 만드는 효율적인 방법은 rand()
함수입니다. 그러나 임의의 변수를 생성하기 위해 다음과 같은 코드를 보았습니다 :난수를 만드는 또 다른 방법
int x; x%=100;
간단한 난수를 생성하는 좋은 방법입니까? 당신의 대답이 '아니오'라면, 이유를 말해주십시오.
는 편집 : 잘 실제 코드는 여기에 있습니다 : 내
int temp1,temp2;
A=(abs(temp1))%11-1;
B=(abs(temp2))%11-1; //Randomize without using rand()
친구가이 코드를 썼다. 내가 컴파일하려고했는데 uninitialized local variable 'temp1' used
오류가 발생했습니다 (MSVS에서). 그는 2011 년에이 코드를 작성했으며 최신 버전의 GCC를 사용하여 Linux에서 작업했습니다.
이것은 끔찍한 일입니다. 그것은 이전 사용에 의해 남겨진 모든 가비지 값에 의존하며, 디버그 모드에서 항상 0 일 수 있습니다 (일부 디버거 0은 int를 초기화 함). 즉, 'rand()도 끔찍하다'(http://channel9.msdn.com/Events/GoingNative/2013/rand-Considered-Harmful)라고합니다. 그냥''을 사용하십시오. –
Borgleader
최적화가 설정된 루프의 값을 인쇄 해보는 것이 어떨까요? –
C 런타임은 프로그램을 실행하기 전에 모든 초기화되지 않은 메모리에 대기 잡음에 의한 난수를 채 웁니다. 아니면 아닐 수도 있습니다. –