가능한 중복 :
why do i always get the same sequence of random numbers with rand()?동일한 임의 값을 계속 가져 오는 이유는 무엇입니까?
내가 전에 (심지어 (동일한 컴퓨터에서) 다른 프로그램를 사용하여이/실행 컴파일하고 vaues을 nilling 후하는 사실에 의해 혼동하고 있는데 이후) 함수가 .. 그게 무슨 상관이야. 나는 매번 같은 "무작위"숫자를 얻을 것이다. 내가 TextMate를에 ...이 .. 나는 단순히 가능한 한 설명하기 위해거야 일을 해야하는 방법이 아니다
#import <Foundation/Foundation.h>
int main(int argc, char *argv[]) {
int rPrimitive = 0; rPrimitive = 1 + rand() % 50;
NSNumber *rObject = nil; rObject = [NSNumber numberWithInt:rand() % 10];
NSLog(@"%i %@", rPrimitive, rObject);
rPrimitive = 0; rObject = nil;
NSLog(@"%i %@", rPrimitive, rObject);
return 0;
}
실행을 맹세 : CodeRunner에서
i686-apple-darwin11-llvm-gcc-4.2
8 9
0 (null)
실행을 :
i686-apple-darwin11-llvm-gcc-4.2
8 9
0 (null)
원하는 경우 백만 번 실행하십시오. 당신은 그것이 항상 무엇인지 추측 할 수 있습니다. 왜 이런 일이 생길까요? 왜 이런 이유가 "어떻게"인가?
내 질문은 실제로 이러한 결과가 OS/메모리의 논리적 분할을 가로 질러 확장된다는 사실과 "rand"자체보다는 null에 값을 할당 했음에도 불구하고 발생한다는 사실이 더 많았습니다. –
@alexgray 이것은 다른 OS가 동일한 PRNG를 사용한다는 것을 의미합니다. 이는 예상치 못한 일이 아닙니다.널 (NULL)을 설정해도 메모리 버그가 아닌'rand'의 예상되는 동작이므로 아무 것도 변경하지 않습니다. –
자동 생성 된 중복 링크를 제거하지 마십시오. 운영자의주의를 끌기 위해이 질문을 표시하거나, 다시 열어야한다고 생각되면 [Meta.SE]에서 문제를 제기 할 수 있습니다. –