財政部「雲端種樹趣」抽獎有4位民眾重複中大獎,出於「統計」與「系統程式」2因素,兩者交互作用再形成3個可能的「機率決定論」。
財政部要釋疑,必須說明1人多籤者的所有情況,才得以檢定是否「自然機率」可能發生這樣的重複。如果自然機率不可能,則應為系統程式「無意」或「故意」產生出「人爲機率」的重複。
本文將以「麻將實驗」證明,如何偵測電腦是否操作機率、內定輸贏,且因為存在人為機率,也就可以反過來預測結果。
「機率決定論」不僅可以決定如何中獎,更可以預測各種人類行為趨勢,包括上周2件大事:第一、王金平打廣告嘗試重出江湖。第二、賴清德和柯文哲拼刺刀。
機率決定論●有可能重複中大獎
中獎一般都是假設在「等機率」的條件下,也就是人人都只有1張籤。
坊間媒體質問:9萬人抽獎,每個人能夠抽3輪,第一輪有5個中獎名額,第二輪有5個中獎名額,第三輪有9個中獎名額,同樣4個人中獎2次的機率有多少?
其自然機率確實「趨近於0」,幾乎不可能發生。
但觀察財政部的抽獎辦法,容許一個人以多種途徑重複參加;報名註冊的有9萬多人,而參加抽獎的達到13.6萬人次,即有高達4萬多次,都是重複參加的籤。這時,就不符合「等機率」的前提了。
統計定律,抽樣對象如果包括不同質類,則各質類被抽中機率「與各質類的樣本數成正比」,擁有愈多籤的人被抽中的機率愈大。
假設一個最極端的狀況,重複的4 萬多籤,都是那4位民眾的,每人有1萬多籤,則約每抽出3個獎,4人其一就會得到一個獎,會重複中獎是正常且必然的。
不過,如果這4位只是比別人多100個籤,還是不太可能重複中獎,所以財政部必須說明各種1人多籤者的情況,才能據實分析。
程式低手或高手●可無意或故意產生重複
第二是「系統程式」的問題,抽獎程式是個極為簡單的程式,軟體公司可能未請資深工程師負責,以致無意出錯。或者相反,故意指派程式高手操作結果。
自有電腦以來,所有程式語言都提供2個以上的隨機抽樣方法,以前叫「指令」,現在稱為「函數」,以及更複雜的「標頭檔案」。
以當前最廣泛使用的 C 語言家族為例,就包括 rand() 和 srand() 兩 個不同函數,進階的 C++,又加上<random>標頭檔案。
在抽獎系統中,每張籤都搭配唯一的流水號式籤號。
使用rand() 時,指定流水號範圍後,如「13.6萬」,其出現的數字一定是「固定順序」,也就是一定預先知道第一名、第二名、第三名…到最後一名的籤號。
使用 srand() 時,可在()加入不同類型參數,而不致重複出現固定順序,但也可能因設定疏忽而重複出現。