[math] “무작위”이해

나는 이것에 대해 내 머리를 얻을 수 없다.

rand()

또는 :

rand() * rand()

나는 그것이 진짜 두뇌 맛보기를 찾는 중이 야, 당신은 나를 도울 수 있습니까?


편집하다:

직관적으로 나는 수학적인 대답이 그것들이 똑같이 무작위라는 것을 알고 있지만, 도움이 될 수는 없지만 두 개의 곱셈을 할 때 “임의의 숫자 알고리즘을 두 번 실행하면 더 무작위로 무언가를 만들 것이라고 생각합니다.” 한 번.



답변

설명 만

의사 난수 변수의 임의성 또는 곱셈을 발견하려고 할 때마다 이전 답변이 옳지 만 Random () 은 일반적으로 균일하게 분포되어 있지만 Random () * Random () 은 그렇지 않습니다.

이것은 의사 랜덤 변수를 통해 시뮬레이션 된 균일 한 랜덤 분포 샘플입니다 .

랜덤 히스토그램 ()

        BarChart[BinCounts[RandomReal[{0, 1}, 50000], 0.01]]

이것은 두 개의 임의 변수를 곱한 후 얻는 분포입니다.

랜덤 히스토그램 () * 랜덤 ()

        BarChart[BinCounts[Table[RandomReal[{0, 1}, 50000] *
                                 RandomReal[{0, 1}, 50000], {50000}], 0.01]]

따라서 둘 다“무작위”이지만 그 분포는 매우 다릅니다.

또 다른 예

2 * Random () 이 균일하게 분포되어 있는 동안 :

2의 히스토그램 * 랜덤 ()

        BarChart[BinCounts[2 * RandomReal[{0, 1}, 50000], 0.01]]

랜덤 () + 랜덤 ()은 아닙니다!

랜덤 히스토그램 () + 랜덤 ()

        BarChart[BinCounts[Table[RandomReal[{0, 1}, 50000] +
                                 RandomReal[{0, 1}, 50000], {50000}], 0.01]]

중앙 한계 정리

중심 극한 정리는 의 합한다고 랜덤 () A와 경향이 정규 분포 용어 증가로.

단 4 개의 용어 만 있으면 얻을 수 있습니다.

랜덤 () + 랜덤 () + 랜덤 () + 랜덤 ()의 히스토그램

BarChart[BinCounts[Table[RandomReal[{0, 1}, 50000] + RandomReal[{0, 1}, 50000] +
                   Table[RandomReal[{0, 1}, 50000] + RandomReal[{0, 1}, 50000],
                   {50000}],
         0.01]]

그리고 여기에 1, 2, 4, 6, 10 및 20 개의 균일하게 분포 된 랜덤 변수를 더하여 균일 분포에서 정규 분포로가는 길을 볼 수 있습니다.

다른 수의 랜덤 변수 히스토그램 추가

편집하다

몇 크레딧

의견에서 마지막 두 이미지에 표시된 확률 분포가 Irwin-Hall 분포 라고 알려진 Thomas Ahle 에게 감사드립니다.

그녀의 훌륭한 찢어진 [] 기능에 대한 Heike 덕분에


답변

내 gutfeel은 rand() * rand()더 많은 0을 시드하기 때문에 덜 무작위 적이 라고 말하지만 두 방법 모두 무작위입니다. 하나 rand()가 되 자마자 0총계는0


답변

‘더 무작위적인’것도 아닙니다.

rand()의사 난수 시드 (일반적으로 현재 시간을 기반으로 항상 변경됨)를 기반으로 예측 가능한 숫자 세트를 생성합니다. 시퀀스에서 두 개의 연속 숫자를 곱하면 서로 다르지만 똑같이 예측 가능한 숫자 시퀀스가 ​​생성됩니다.

이것이 충돌을 줄 일지에 대한 답은 아니오입니다. 실제로 두 개의 숫자를 곱하면 충돌이 증가 0 < n < 1합니다. 결과는 더 작은 분수가되어 스펙트럼의 하단을 향한 결과에 치우침이 발생합니다.

몇 가지 추가 설명. 다음에서 ‘예측 불가능’과 ‘임의’는 다음 숫자가 이전 숫자를 기반으로 무엇을 추측 할 수있는 능력을 말합니다. 오라클.

x다음과 같은 값 목록을 생성하는 시드가 제공됩니다.

0.3, 0.6, 0.2, 0.4, 0.8, 0.1, 0.7, 0.3, ...

rand()위의 목록 rand() * rand()을 생성 하고 다음 을 생성합니다.

0.18, 0.08, 0.08, 0.21, ...

두 방법 모두 항상 동일한 시드에 대해 동일한 숫자 목록을 생성하므로 오라클에 의해 동일하게 예측할 수 있습니다. 그러나 두 호출을 곱한 결과를 살펴보면 0.3원래 순서의 적절한 분포에도 불구하고 모두 호출 상태가 아님을 알 수 있습니다 . 두 분수를 곱한 결과 숫자가 치우칩니다. 결과 숫자는 항상 더 작으므로 여전히 예측할 수 없지만 충돌 가능성이 훨씬 높습니다.


답변

요점을 설명하기 위해 지나치게 단순화했습니다.

당신의 임의 기능은 출력 가정 0이나 1.

random()중 하나입니다 (0,1),하지만 random()*random()중 하나입니다(0,0,0,1)

당신은 0두 번째 경우에 기회를 얻는 것이 결코 그렇지 않다는 것을 분명히 알 수 있습니다 1.


이 답변을 처음 게시했을 때 가능한 한 짧게 유지하여 그것을 읽는 사람이 random()and 의 차이점을 한눈에 이해할 random()*random()수 있도록했지만 원래 광고 리터럴 질문에 대답하지 못합니다.

어느 것이 더 무작위입니까?

즉,이기 때문에 random(), random()*random(), random()+random(), (random()+1)/2또는 고정 된 결과를 유도하지 않는 임의의 다른 조합 (의사 난수 발생기의 경우 또는 동일한 초기 상태) 엔트로피 같은 소스를 가지고 응답들이 있다는 것이 동일 (차이 임의 그들의 배포에 있습니다). 우리가 볼 수있는 완벽한 예는 Craps 게임입니다. 당신이 얻을 수있는 숫자 random(1,6)+random(1,6)는 7이 될 확률이 가장 높다는 것을 알고 있지만 두 주사위를 굴린 결과가 하나를 굴리는 결과보다 다소 무작위 적이라는 것을 의미하지는 않습니다.


답변

간단한 답변이 있습니다. 독점을 고려하십시오. 당신은 2 개의 6면 주사위 (또는 게임 표기법을 선호하는 사람들을 위해 2d6)를 굴려서 합산합니다. 7 (1,6 2,5 3,4 4,3 5,2 및 6,1)을 롤링 할 수있는 6 가지 방법이 있기 때문에 가장 일반적인 결과는 7입니다. 반면 2는 1,1에서만 굴릴 수 있습니다. 범위가 동일하더라도 2d6 롤링이 1d12 롤링과 다르다는 것을 쉽게 알 수 있습니다 (1d12에서 1을 얻을 수 있다는 점을 무시하면 포인트는 동일 함). 결과를 더하는 대신 곱하면 비슷한 방식으로 왜곡되며 결과의 대부분은 범위의 중간에 나타납니다. 특이 치를 줄이려는 경우이 방법이 좋은 방법이지만 균일 한 분포를 만드는 데 도움이되지 않습니다.

(이상하게도 충분히 낮은 롤을 증가시킬 것입니다. 임의성이 0에서 시작한다고 가정하면 다른 롤이 0으로 바뀌기 때문에 0에서 급등한 것을 볼 수 있습니다. 0과 1 사이의 임의의 두 숫자를 고려하십시오 (포함) ) 및 곱하기 결과 중 하나가 0이면 다른 결과에 관계없이 전체가 0이됩니다 .1을 얻는 유일한 방법은 두 롤이 모두 1이되는 것입니다. 실제로 이것은 중요하지 않을 것입니다 그러나 그것은 이상한 그래프를 만듭니다.)


답변

의무적 인 xkcd
리턴 4;  // 공정한 주사위 굴림에 의해 선택되며 무작위 임.


답변

좀 더 이산적인 숫자로 생각하면 도움이 될 것입니다. 1에서 36 사이의 난수를 생성하고 싶을 때 가장 쉬운 방법은 두 개의 공정한 6면 주사위를 던지는 것입니다. 당신은 이것을 얻는다 :

     1    2    3    4    5    6
  -----------------------------
1|   1    2    3    4    5    6
2|   2    4    6    8   10   12
3|   3    6    9   12   15   18
4|   4    8   12   16   20   24
5|   5   10   15   20   25   30
6|   6   12   18   24   30   36

그래서 우리는 36 개의 숫자를 가지고 있지만, 그것들 모두가 공정하게 대표되는 것은 아니며, 일부는 전혀 발생하지 않습니다. 중앙 대각선 근처 (왼쪽 아래 모서리에서 오른쪽 위 모서리까지)의 숫자가 가장 높은 빈도로 발생합니다.

주사위 사이의 불공평 한 분포를 설명하는 동일한 원칙은 0.0과 1.0 사이의 부동 소수점 수에 동일하게 적용됩니다.