풀 때마다 난수를 생성 할 수있는 수학 방정식이 있습니까?


정답

아니요-수학 방정식은 항상 다음과 같은 값을 생성하기 때문입니다. 어떤 것 (이전 값 또는 이전 값)에서 예측되므로 무작위로 설명 할 수 없습니다.

의사 무작위로 설명 할 수 있습니다. 즉, 무작위로 보이지만 실제로는 임의의 다음 기준을 적용해야합니다.

  • 범위에서 가능한 모든 값은 발생할 확률이 동일해야합니다. 즉, \ frac 1k (k는 범위에있는 이산 값의 수)입니다.
  • 길이의 모든 유한 길이 하위 시퀀스는 길이가 같은 다른 모든 하위 시퀀스와 동일한 확률을 가져야합니다. 예를 들어 길이가 n 인 모든 하위 시퀀스는 {\ frac의 확률을 가져야합니다. 1k} ^ n.
  • 시퀀스의 m ^ {th} 요소는 이전 m-1 요소에서 예측할 수 없어야합니다.

반복 가능한 모든 알고리즘 분명히 마지막 기준을 위반합니다.

많은 컴퓨터 시스템에서 사용되는 의사 랜덤 생성 기능은 처음 두 기준을 충족하는 데 매우 효과적이며 마지막 기준을 가능한 한 어렵게 만듭니다. 시드를 시작하여 시퀀스를 예측할 수있는 정상적인 기회를 견딜 수 있지만 불가능하지는 않습니다.

의사 랜덤 시퀀스를 사용하는 것은 언뜻보기에는 제한적으로 보일 수 있지만 대부분의 경우 반복 가능한 랜덤 세트를 생성 할 수있는 능력이 있습니다. 보이는 가치는 가치가있을 수 있습니다.

  • 생물학적 성장을 시뮬레이션하기 위해 난수를 사용하는 루틴이 있고 20,000 ^ {th} 반복 후에 함수가 잘못 작동하는 것을 발견했다고 가정 해보십시오. 루틴에서 정확히 동일한 시퀀스를 재생하고 반복 19,999에서 중지하고 실패한 것을 디버깅하는 것은 매우 유용합니다.

반복 가능한 의사-에 대해 유사한 다른 용도를 찾을 수 있습니다. 임의의 숫자 시퀀스.

답변

고정 된 수학 방정식에 대한 답은 매번 동일합니다. 그러나 수학 방정식에는 많은 솔루션이있을 수 있습니다. 따라서 수학 방정식을 다르게 해결 하면 매번 다른 해를 얻을 수 있습니다.

간단한 예로서 2 차를 고려하십시오. 방정식 x ^ 2-x = 0. 이차 공식으로 풀면 두 솔루션이 모두 제공되지만 다른 방법으로 풀면 0 또는 1 중 하나만 제공 될 수 있습니다. 솔루션 방법 자체가 랜덤 인 경우 어떤 근을 얻을 수도 있습니다. random.

안타깝게도이 예제는 임의성 또는 의사 임의성 소스로 변환되지 않습니다. 입력 한 값 이하 만 반환합니다. 그러나 동일한 아이디어가 의사 무작위성의 원천으로 사용될 수 있습니다. 의사 난수를 생성하는 알고리즘은 (원칙적으로) 디오 판틴 방정식 또는 방정식 세트로 변환 할 수 있습니다.

f (s, r\_1, r\_2, r\_3, \ ldots, r\_n, x\_1, x\_2, \ ldots, x\_k) = 0

이 공식은 s가 RNG의 시드이고 r\_1에서 r\_n이 RNG에서 처음 n 개의 출력 일 때마다 솔루션을 갖습니다. x\_i는 번역에 사용되는 보조 변수입니다.

이 거대한 공식 (정수)을 풀면 의사 난수를 얻을 수 있습니다. 다른 솔루션을 찾으면 다른 s를 찾은 한 다른 의사 난수 집합을 얻을 수 있습니다.

예를 들어 Riemann Zeta 함수의 0을 찾는 것과 같은 더 자연스러운 예가있을 수 있습니다. 무작위.” 그러나 그것들이 충분히 의사 랜덤이라는 것을 보여주는 것이 더 어려울 수 있습니다.

x ^ 2-x = 0 케이스와 마찬가지로, 입력 한만큼만 진정한 랜덤 성을 얻을 수 있습니다. (또는 더 나쁩니다.)

답글 남기기

이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다