효과적으로 난수를 생성하는 방법은 무엇입니까?
난수 프로그램이 부팅 할 때마다 이전과 같은 숫자가 나옵니다. (나는 무작위 수 생성의 준 자연 때문에)
임의의 생성이 비 결정적이되는 방법이 있을까요? 부팅 후 생성 된 숫자가 마지막 순서와 다른 순서로 생성되는 일종의 엔트로피 추가. (임의의 랜덤 오히려 그 의사 - 랜덤)도
는 이러한 생성 범위를 말한다 (m, n)은 나노 = X를, 다수 X-1 개 숫자 후 다음번에 나타나는 'P'을 말하고있는 기회가되도록 생성되었습니다. 그러나 그 다음 x 숫자는 마지막 것과 같은 순서가 아닙니다. 예 :
범위 : 1,5. 세대 : 2,4,5,1,3 (1 번째) 4,2,3,1,5 (2 번째) ... 같은 번호. (1440)
여기효과적으로 난수 생성
int num1 = (rand.Next(1, 440) *31* (int)DateTime.Now.Ticks *59* (DateTime.Now.Second * 100) % 439) + 1;
int num2 = (rand.Next(1, 440) *31* (int)DateTime.Now.Ticks *59* (DateTime.Now.Second * 100) % 439) + 1;
범위이었다 : 마음의 nonplussed 상태 중
나는 이것을 썼다. 하지만 그것은 여전히 바운드와 제로의 숫자를 생성하며, 빈도는 그렇게 크지 않습니다. 그것은 C# .NET 코드입니다. 왜 그렇게?
답변은 언어 불가지론/알고리즘/분석 일 수 있습니다. 미리 감사드립니다.
여기를보십시오 : http://msmvps.com/blogs/jon_skeet/archive/2009/11/04/revisiting-randomness.aspx – Tigran
2,4,5,1,3 및 4,2,3은 어떻게 되는가? 1,5 관련 또는 불량? 범위를 소수의 정수 값으로 제한하고 요청한 것을 얻었습니다. –
@HenkHolterman 나는 벗어났다. 'Random rnd = new Random(); '함수를 호출하고 나서 Next() 함수를 사용하려고했습니다. 그 점을 지적 해 주셔서 감사합니다. –