如何確定二進制字符串的統計隨機性?如何確定二進制字符串的統計隨機性?
Ergo,我該如何編碼我自己的測試,並返回一個對應於統計隨機性的單值,一個介於0和1.0之間的值(0不是隨機的,1.0是隨機的)?
測試需要在任何大小的二進制字符串上工作。
當您使用筆和紙做的,你可能會探討這樣的字符串:
0(任意隨機性,唯一的選擇是1)
00(不是隨機的,它的重複和火柴大小)
01(更好,兩個不同的值)
010(少隨機的,迴文)
011(少隨機的,更1的,還是可以接受的)
0101(少隨機的,圖案)
0100(更好的,那些更少,但任何其它的分佈引起的圖案)
事例:
大小:1,可能性:2
0:1.0(隨機)
1:1.0(隨機)
大小:2,P:4
00:?
01:1.0(隨機)
10:1.0(隨機)
11:?
S:3,P:8
000:?非隨機
001:1.0(隨機)
0123:?少隨機
011:1.0(隨機)
100:1.0(隨機)
101:?隨機性較差
110 1.0(隨機)
0123:非隨機
依此類推。
我覺得這可能玩了很多破入串入所有可能子和比較頻率,但似乎這種基礎的應該已經在計算機科學的早期完成。
任何單一的二進制字符串可以看作是隨機的!你需要有一個樣本空間來比較它... – 2010-06-22 23:43:39
你究竟在做什麼? – 2010-06-22 23:45:48
只要這樣:讀取一個任意的二進制字符串,並注意其統計隨機性。例如,0101010101010101的平衡數字爲1和0,但幾乎不是隨機的。 可以這樣說:[00000000的隨機性爲0] [01010101的隨機性爲0.01] [00000101的隨機性爲0.05] [01001011的隨機性爲1.0] – Tim 2010-06-22 23:50:47