왜 내가이 코드를 실행할 때마다 같은 배열에있게됩니까?정수가 무작위로 배열을 생성하려고 시도 할 때마다 동일한 목록이 실행됩니다. C++
int arr[100];
for (int i = 0; i < 100; i++) {
arr[i] = rand() % 11 + (-5);
}
왜 내가이 코드를 실행할 때마다 같은 배열에있게됩니까?정수가 무작위로 배열을 생성하려고 시도 할 때마다 동일한 목록이 실행됩니다. C++
int arr[100];
for (int i = 0; i < 100; i++) {
arr[i] = rand() % 11 + (-5);
}
랜덤 시드를 설정하려면 std::srand(std::time(0));
을 사용하십시오. 재현성있는 결과를 얻으려면 http://en.cppreference.com/w/cpp/numeric/random/srand을 참조하십시오.
당신은 현재의 시간, 예를 들어, 씨 난수 발생기에 필요합니다.
#include <time.h>
#include <stdlib.h>
srand(time(NULL));
난수에'srand'를 사용하는 것은 몇 년 동안 최고의 표준 기반 솔루션이 아니 었습니다. –
난수에'srand'를 사용하는 것은 몇 년 동안 최고의 표준 기반 솔루션이 아니 었습니다. –
좋아, 그게 나에게 좋은 소식이야. 더 나은 해결책은 뭔가? –
@DavidStutz 여기를 참조하십시오 : http://en.cppreference.com/w/cpp/numeric/random –