에 다른 출력을 얻는다, 그래서 나는 C++ 랜드 (무효) 및부터 srand (INT) 기능을 사용 :C++ 랜드 및부터 srand 내가 임의의 정수를 생성하고 싶어 다른 컴퓨터
int main(){
srand(1);
cout << rand() << endl;
return 0;
}
확인, 내 요구에 맞는합니다. 내가 그것을 실행할 때마다 나는 같은 결과를 얻는다. 나는 그것을 좋아한다!
하지만 문제가 있습니다. 내 컴퓨터에서 실행했을 때 출력으로 16807을 얻었습니다.
static unsigned long int next = 1;
int rand(void) // RAND_MAX assumed to be 32767
{
next = next * 1103515245 + 12345;
return (unsigned int)(next/65536) % 32768;
}
void srand(unsigned int seed)
{
next = seed;
}
왜 : 내가 다른 컴퓨터에 실행 때, 나는이 유사한 간단한 구현을 내가 그 랜드() 및부터 srand (int)를 알고
1804289383.있어? rand()가 여러 머신에서 다른 구현을 할 수 있습니까? 어떻게해야합니까?
나는 그 기계에서 16807을 얻는 그런 방법으로 다른 기계를 변경하고 싶다.
내 컴퓨터에서 랜드 구현이 마음에 듭니다. 다른 컴퓨터가 내 것과 같은 결과를 얻는 방법을 보여주십시오.
미리 감사드립니다.
16807은 아마도 MacOS의 결과 일 것입니다. 그것은 매우 나쁜 랜덤 생성기입니다. [rand() % 7은 항상 0을 반환합니까?] (http://stackoverflow.com/q/7866754/995714) –