8個のランダムビットを(0、255)で均一に生成するのはなぜですか?


35

8つのランダムビット(0または1)を生成し、それらを連結して8ビット数を形成しています。単純なPythonシミュレーションでは、離散セット[0、255]で均一な分布が得られます。

これが私の頭の中で理にかなっている理由を正当化しようとしています。これを8枚のコインのフリッピングと比較した場合、期待値は4頭/ 4尾のどこかにありませんか?だから私にとって、私の結果は範囲の中央のスパイクを反映するはずです。言い換えると、8個のゼロまたは8個のシーケンスが、4と4、または5と3などのシーケンスと同じくらい可能性が高いように見えるのはなぜですか?ここで何が欠けていますか?


17
一様なランダム範囲[0,255]のビットの分布の期待値、4 1's / 4 0's付近です。
user253751

2
0から255までの各数値に等しい重みを与えたからといって、関数の結果「1と0のカウントの差」も一度だけ発生するわけではありません。組織内のすべての人に同じ重みを与えることができます。彼らの年齢が等しく重み付けされることを意味しません。一部の年齢は他の年齢よりもはるかに一般的です。しかし、一人は他のどの人よりも一般的ではありません。
ブラッドトーマス

2
このように考えてみてください...最初のランダムビットはビット7の値を決定します。1は128の価値があり、0は0の価値があります。ビットが0で、ビットが1の場合は128-255です。0だとすると、次のビットは結果が0-63か64-127かを決定します。256の等しい可能性のある結果の1つを形成するには、8ビットすべてが必要です。あなたはサイコロのように合計を追加することを考えています。4 1と4 0を取得するオッズは、8 1を取得するよりも高くなりますが、異なる結果を得るために調整できる方法は他にもあります。
ジェイソンゴーマート

2
0から255の番号が付いた公平な256面のサイコロを振るとします。均一な分布が期待できます。ここで、片側が0、8側が1、28側が2と言うように、ダイのラベルを変更するとします。各側には、その側にあった数のオンビットの数でラベルが付けられます。あなたは再びサイコロを振ります。なぜあなたは0から8までの数字の均一な分布を得ることを期待しますか?
エリックリッパー

ディストリビューションがこのように機能する場合、7つの赤が連続して出てきてからルーレットに多くのお金を賭けることができます。7と1は、8と0よりも8倍以上可能です!(0を無視しますが、このスキューは0および00スキューをはるかに上回ります)
ランチャー

回答:


61

TL; DR: ビットとコインの明確な対照は、コインの場合、結果の順序を無視しているということです。HHHHTTTTはTTTTHHHHと同じように扱われます(両方とも4つのヘッドと4つのテールがあります)。しかし、ビットでは、順序を気にかけます(256の結果を得るにはビット位置に「重み」を与える必要があるため)、11110000は00001111とは異なります。


長い説明: これらの概念は、問題をフレーミングする際にもう少し正式なものであれば、より正確に統一することができます。実験は、2つの結果と「成功」0.5および「失敗」0.5の確率を持つ8つの試行のシーケンスであると考えてください。これらの試行は独立しています。一般に、これを成功、回の試行および回の失敗と呼び、成功の確率はです。n n k pknnkp

  • コインの例では、「 heads、 tails」という結果は試行の順序を無視します(発生順序に関係なく4頭は4頭です)。これにより、4頭が0または8つの頭。4つのヘッド(TTHHTTHH、またはHHTTHHTTなど)を作成する方法は他の数よりも多いため(8つのヘッドには1つのシーケンスしかありません)、4つのヘッドがより一般的です。二項定理は、これらの異なる構成を作成するいくつかの方法を提供します。n kknk

  • 対照的に、各場所には「重み」または「場所の値」が関連付けられているため、ビットにとって順序は重要です。二項係数の特性の1つは、。つまり、すべての異なる順序シーケンスをカウントアップすると、ます。これは、二項試行でヘッドを作成するさまざまな方法のアイデアを、異なるバイトシーケンスの数に直接結び付けます。 28=256kn2n=k=0n(nk)28=256kn

  • さらに、256の結果が独立性の特性によって等しく発生する可能性があることを示すことができます。前の試行は次の試行に影響を与えないため、特定の順序付けの確率は一般に(独立したイベントの結合確率は確率の積であるため)。試行は公正であるため、、この式は。すべての順序は同じ確率であるため、これらの結果(バイナリエンコーディングによって整数として表すことができます)に均一な分布があります。 P 成功= P 失敗= p = 0.5 P 任意の順序= 0.5 8 = 1pk(1p)nkP(success)=P(fail)=p=0.5 [0255]P(any ordering)=0.58=1256[0,255]

  • 最後に、この完全な円をコイントスと二項分布に戻すことができます。0頭の出現は4頭と同じ確率ではなく、これは4頭の出現を順序付ける方法が異なるためであり、そのような順序の数は二項定理によって与えられるためです。そのため、は何らかの方法で重み付けする必要があり、具体的には二項係数によって重み付けする必要があります。これにより、二項分布のPMFます。この式がPMFであること、特に合計が1であることはすぐには明らかではないため、驚くかもしれません。確認するには、P k  成功= nP(4 heads) n k = 0 nP(k successes)=(nk)pk(1p)nk1=1n=p+1pn= n k = 0 nk=0n(nk)pk(1p)nk=1、しかしこれは二項係数の問題です:。1=1n=(p+1p)n=k=0n(nk)pk(1p)nk


それは理にかなっています...しかし、15、30、60、120、および240が0または255よりも大きい分布を持つことを期待しませんか?
ガラスの

1
今理解できたと思います。私はこの答えを受け入れるつもりです。なぜなら、ここで重要なのはあなたが注意を喚起した順序だと思うからです。ありがとう
グラッシー

もう1つの注意-コインの例を使用すると、コインを8回反転させるのではなく、実際に8つのコインを同時に反転させることになります。そこに私の混乱がありました。
ガラスの

2
「小学校の学年の算数」から「場所の値」の概念は、特にここで適用可能です。小数のアナロジーを使用するために、一つは考慮10001000して10000001全く異なる数字であることを。
JMは統計学者ではありません

17

なぜ8個のゼロまたは8個のシーケンスが4と4、または5と3のシーケンスと同じくらい可能性があるように見えるのか

親のパラドックスは、矛盾しているように見える2つの命題に要約できます。

  1. シーケンス (8つのゼロ)は、シーケンス(4つのゼロ、4つの1)と同じ確率です。(一般に、ゼロ/ワンの数に関係なく、すべてのシーケンスの確率は同じです。)s 201010101 2 8s1:00000000s2:0101010128

  2. イベント ":シーケンスに4つのゼロがあった "は、イベント ":シーケンスに8つのゼロがあった " よりも可能性が高い(実際、倍高い)。 70 e 2e170e2

これらの命題は両方とも真実です。イベントは多くのシーケンスが含まれているためです。e1


8

すべてのシーケンスは、同じ確率 =持っています。質問が解釈されるように近い0と1の同数に有する配列は、より多くの可能性が高い...我々が想定しているため、我々は1/256に到着することは明らかであるべきであることを考える間違っている裁判から裁判に独立を。そのため、確率乗算し、1つの試行の結果が次の試行に影響を与えません。2 82828


2
質問に「なぜ」という単語が含まれていなかった場合は、短い場合は答えてよいでしょう。現状では、あなたは単に説明を与えずに、質問の与えられたものの1つを繰り返します。
ティンマン

1
実際...この答えは事実間違っています。理由については、レオンブロイの答えをご覧ください。
ティンマン

3
@Waltそれは間違っていません。言語の微妙さ。与えられたシーケンスは、0と1の間の不均衡が少ないため、あまりありません。単純にそのようなシーケンスがあります
ホブス

4
誰かが私に同意しますか?0に確率1/2があり、1に確率1/2があり、シーケンスの1つの項が次から独立している場合、長さ8の特定のシーケンスの確率は確率1/2です。8のその他のシーケンスも同様です。1/28=1/256
Michael R. Chernick

4
@Michael私は完全に同意し、確認するために嬉しく思います-最後に-問題の核心に明示的なアピールを!独立を。 あなたがそのコメントをそれに含めるならば、私はあなたの答えを支持してうれしいです。
whuber

7

3ビットの例(多くの場合、例はより具体的です)

0から7までの自然数を次のように書きます。

  • 10底とする数値
  • 基数2の数(つまり、ビットのシーケンス)
  • 基数2の表現によって暗示される一連のコインフリップ(1はヘッドのフリップを示し、0はテールのフリップを示します)。

Base 10Base 2 (with 3 bits)Implied Coin Flip SeriesHeadsTails0000TTT031001TTH122010THT123011THH214100HTT125101HTH216110HHT217111HHH30

等しい確率で0〜7の自然数を選択することは、右側のコインフリップシリーズのいずれかを等しい確率で選択することと同じです。

したがって、0〜7の整数の一様分布から数を選択すると、3つのヘッドを選択する可能性があり、2つのヘッドを選択する可能性がありますヘッドを1つ選ぶチャンス、およびヘッドを0選ぶチャンス。 318 338 13818


3

Sycoraxの答えは正しいのですが、その理由は完全には明らかではないようです。8個のコインをフリップするか、順序を考慮して8個のランダムビットを生成すると、256個の同等の可能性の1つになります。あなたの場合、これら256の可能な結果のそれぞれが一意に整数にマッピングされるため、結果として均一な分布が得られます。

頭や尾の数だけを考慮するなど、順序を考慮しない場合、9つの可能な結果(0頭/ 8尾-8頭/ 0尾)しかありません。 。これは、256の可能な結果のうち、8ヘッド/ 0テール(HHHHHHHH)を与えるフリップの組み合わせが1つと、7ヘッド/ 1テール(8ポジションのそれぞれのテール順序)、ただし、8C4 = 4つのヘッドと4つのテールを持つ70の方法。コインフリッピングの場合、これらの70の組み合わせのそれぞれは4つのヘッド/ 4テールにマップされますが、2進数の問題では、これらの70の結果のそれぞれは一意の整数にマップされます。


2

言い換えると、問題は、8つのランダムな2進数の組み合わせの数が、8つのランダムな2進数の順列の数と異なる時点で、0から8つの選択された数字(1など)とみなされる理由です。ここでのコンテキストでは、0と1のランダムな選択は、各数字が他の数字から独立していることを意味するため、数字は無相関であり、です。。p(0)=p(1)=12

答えは次のとおりです。2つの異なるエンコーディングがあります。1)順列の可逆符号化と2)組み合わせの非可逆符号化。

i=182i1XiXiith28=256。その後、偶然にも、一意性を失うことなく、これらの2進数を10進数の0から255に変換したり、他のロスレスエンコーディング(ロスレス圧縮データ、16進数、8進数など)を使用してその数字を書き換えたりすることができます。ただし、質問自体はバイナリです。各一意のエンコードシーケンスを作成できる方法は1つしかないため、各順列は同様に確率が高く、1または0の出現はその文字列内のどこでも等しく起こり得るため、各順列は等しく確率が高くなります。

i=1820XiC(8,i=18Xi)i=18XiC(8,4)

注:現時点では、上記の答えは、2つのエンコードの明示的な計算上の比較を含む唯一のものであり、エンコードの概念に言及する唯一の答えです。それを正しくするのに時間がかかったので、歴史的にこの答えは否定されました。未解決の苦情がある場合は、コメントを残してください。

更新:前回の更新以降、エンコードの概念が他の回答でも理解され始めていることを嬉しく思います。現在の問題に対してこれを明示的に示すために、各組み合わせで不可逆エンコードされた順列の数を添付しました。ここに画像の説明を入力してください

C(8,n)1n0692569=247


2
000000000100000001

16
率直に言って、これは限り正しいことですが、質問に対処しいません。8個の順序付きビットが範囲内の数値をどのように表すことができるかを示すことは上手く行っていますが、それらのビットをランダムに選択することで均一な分布が得られる理由は説明していません(明らかに、それを説明するには明らかに微妙)。
dmckee

9
8つの(独立した)ランダムビットが[00000000、11111111]に均一に分布しているのは、3つのランダムな数字が[000、999]に均一に分布しているのと同じ理由で簡単ではないでしょうか。コンピュータがバイナリとフラクショナルベースをどのように/なぜ使用するかについての不満は、まったく不要で無関係です。つまり、バイナリがシンボル0と1のみを使用するという事実は、基数2の固有のプロパティにすぎません...それを説明する必要はありません。そのような説明をそこに残したい場合は、おそらく基本がどのように機能するかを説明する方がおそらく便利ですが、それでもポイントの横にあります。
ブラックホーク

3
この答えがどれだけ改善されたかを見てうれしいです。しかし、この質問に10ベースの表現がどのように関係しているかを見るのは困難です(ベース3またはベース17も同様に機能しませんか?)任意の有限数のビットに一般化します。これは、この回答の考慮事項の大部分が接線的または無関係であることを示唆しています。
whuber

3
そして、「損失のある」エンコーディングと「損失のない」エンコーディングという質問で表現された混乱の特徴的な特徴に感謝します。記憶に残り、他の視点とはわずかに異なり、洞察力に富んでおり、その混乱をすぐに解消できる可能性があります。
whuber

1

順序依存性と独立性の考え方を少し拡張したいと思います。

8枚のコインを裏返すことで予想される頭の数を計算する問題では、それぞれがベルヌーイ分布である8つの同一の分布[; B(1, 0.5) ;](つまり、50%の確率0、50%の確率)の値を合計しています1)。合計の分布は二項分布です[; B(8, 0.5) ;]。これは、ほとんどの確率が4を中心とするおなじみのハンプ形状です。

8つのランダムなビットで構成されるバイトの期待値を計算する問題では、各ビットがバイトに寄与する値が異なるため、8つの異なる分布の値を合計しています。最初が[; B(1, 0.5) ;]、2番目が[; 2 B(1, 0.5) ;]、3番目が[; 4 B(1, 0.5) ;]、8番目までです[; 128 B(1, 0.5) ;]この合計の分布は、当然のことながら最初のものとはかなり異なります。

この後者の分布が均一であることを証明したい場合、帰納的にそれを行うことができると思います-最下位ビットの分布は仮定により1の範囲で均一であるため、最下位[; n ;]ビットの分布がの範囲で均一である[; 2^n - 1} ;]場合、[; n+1 ;]stビットを追加する[; n + 1 ;]と、の範囲で最下位ビットの分布が均一になり、[; 2^{n+1} - 1 ;]すべての正の証明が得られます[; n ;]。しかし、直感的な方法はおそらく正反対です。上位ビットから開始し、下位ビットまで値を1つずつ選択すると、各ビットは可能な結果のスペースを正確に半分に分割し、各半分は等しい確率で選択されるため、一番下に、個々の値が同じ確率で選択されている必要があります。


連続した制服ではありません。ビットは0または1であり、その間には何もありません。
マイケルR.チェルニック

@MichaelChernickはもちろん、ここでは離散分布のみを扱っています。
ホッブズ

OPは、ビットは1または0のみで、その間に何もないと述べました。
マイケルR.チャーニック

1
@MichaelChernick正しい。
ホッブス

1

各ビットを比較するバイナリ検索を行う場合、8ビット番号ごとに同じ数のステップ(0000 0000から1111 1111まで)が必要です。両方のステップの長さは8ビットです。バイナリ検索の各ステップでは、両側で50/50の確率で発生するため、最終的には、すべての数字は同じ深さと同じ確率を持ち、実際の選択なしに、各数字は同じ重みを持つ必要があります。したがって、個々のビットがコインフリップによって決定される場合でも、分布は均一でなければなりません。

ただし、数字の桁数は均一ではなく、8枚のコインを投げるのと同じ分布になります。


1

ゼロが8つあるシーケンスは1つだけです。4つのゼロと4つの1つの70のシーケンスがあります。

したがって、0.39%の確率の70個すべてを合計すると、0の確率は0.39%、15 [00001111]の確率も0.39%、23 [00010111]の確率は0.39%などとなります。 27.3%を取得します。これは、4つを持つ確率です。これが機能するためには、個々の4と4の結果の確率が0.39%を超える必要はありません。


これにより、256個のシーケンスすべてが等しく発生する可能性があるという事実は変わりません。
マイケルR.チャーニック

@MichaelChernick言ったことはありませんでしたが、それらはすべて0.39%の確率を持っていると明示的に言いました。OPの仮定に取り組んでいます。
Random832

あなたが正しいです。それは私が答えで言ったことの別の言い方です。他の答えのいくつかは間違っています。
マイケルR.チャーニック

1

サイコロを考慮する

不均一な分布の一般的な例であるいくつかのサイコロを転がすことを考えてください。計算のために、サイコロには従来の1〜6ではなく0〜5の番号が付けられていることを想像してください。分布が均一ではない理由は、複数の組み合わせで {5、0}、{0、5}、{4、1}などのように同じ合計で、すべて5を生成します。

616060

@Sycoraxと@Blacksteelの両方が指摘しているように、この違いは最終的には順序の問題に帰着します。


0

選択した各ビットは、互いに独立しています。あなたが最初のビットを考慮すると

  • 50%の確率で1になります

そして

  • 50%の確率で0になります。

(12)81256


これらのステートメントはすべて真実ですが、これは、結果が頭と尾の数として定義されている場合に、同様に公正で独立しているコイントスが9つの明確な結果しか持たない理由に対処していません。
シコラックスは、モニカを復活させる

それは、選択した結果を順序付けられたシステムに配置した結果にすぎません。ランダムビットがバイトのランダムな位置に配置された場合でも、同じ分布が実現されます。また、HHTHTTTHなどの特定の頭と尾の組み合わせを取得する機会を見つけるための質問をフレーム化する方法で、コイントスでも同じ分布を取得します。毎回実行される8回のコイントスに対して、コイントスの正確なシーケンスを取得できる確率は1/256です。
アヘモネ

これはすべて、回答自体に含めるのに適した情報です。私のコメントは、OPの混乱の原因の直接的なアドレスの省略、つまりビットとコインフリップの関係と同じくらいあなたが言ったことに問題を持ちません。
シコラックスは、モニカを復活させる

また、OPの期待値4に到達するために、指定されたバイトでn個の1またはn個の0の確率を見つけようとしていると言う必要があります。質問のこの枠組みは、それらのランダムなビットから特定の値を取得する確率を見つける均一な分布ではなく、彼らが心に期待していた二項分布を与えます。
アヘモネ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.