吳統雄觀點:重複中大獎?電賭知輸贏!國賭亦然

財政部「雲端種樹趣」有民眾重複中獎引發爭議,財政部長長莊翠雲承諾一周內給出調查報告。(劉偉宏攝)

財政部「雲端種樹趣」抽獎有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() 時,可在()加入不同類型參數,而不致重複出現固定順序,但也可能因設定疏忽而重複出現。

使用<random>標頭檔案時,其設定比較複雜,預設是不會產生重複,是真正的隨機籤;但因為設定可很細膩,更可以隨心所欲製造順序。

我們在審查學生作品、政府委託、或企業委託專案時,經常發現,學生、新任程式員、或缺乏熱情的程式員,在處理隨機數時,都採用最簡單方法,在輸出結果上造成並不隨機,甚至可預知結果。 (相關報導: 夏珍專欄:「清德宗」的信賴危機─對權力分享完全無感 更多文章

在較少的案例中,尤其是具賭博性電玩中,高手程式員會故意利用以上程式的特性與技巧,製造出表面看很隨機,但實際上可完全控制產生的數字與發生的條件。中獎人不必擁有很多籤,只要將中獎的流水號分配給中籤人(反之亦然),中獎人也可以重複中獎。也就是如果中獎人擁有籤數沒有特別多,還是能夠重複中獎,就無法排除作弊的可能。