如何評判發牌演算法的隨機性?有沒有乙個量化指標,能量化某種發牌演算法的隨機性好於另外一種演算法?

時間 2021-05-30 00:04:00

1樓:maomaomao

這個簡單,要證明發牌是不是隨機的,做卡方檢驗。

有如果只是比較哪一種發牌的隨機性更好,更簡單。計算觀察到的牌(也就是發牌機發出來的牌)和理想情況下(完全隨機)發出的牌之間的差異就好。演算法上可以這樣實現:

假設連續發了一百張牌(可以是一次性發,也可以多次發,比如每局只發三張的炸金花……,總數越多,結果越穩定。),那麼隨機情況下每張牌出現的次數是100/13,然後我們定義乙個隨機性指數R

R =sum((fi - 100/13)^^2)其中,sum代表求和,^^是平方。fi代表每乙個型別的牌出現的次數。R越小,隨機性越好。

2樓:

怎麼看都是乙個密碼學問題。

這裡的「判斷「應當是是乙個演算法吧。

這個演算法對執行時間有無要求?

對需要的記憶體空間大小有無要求?

對計算機的計算模型又有無要求?

密碼學有個很基本的定義叫 distinguisher。distinguisher的目標是判斷乙個序列究竟來自於uniform分布(資訊理論意義上的隨機)還是別的神馬分布。

如果對「判斷」這個演算法沒有任何限制,也就是說它可以用任意長的時間和無窮多的記憶體來分析乙個序列。那這個distinguisher實在異常強大,題主會感到隨機發牌實在是太難了,或者說判斷乙個發牌方式不是隨機的會非常容易。因為發牌總也是個演算法吧,假定發牌是執行在非確定性圖靈機上的多項式演算法,那該圖靈機從random tape上讀取的輸入不可能是無限的。

所以乙個有無限能力的distinguisher,總是可以暴力搜尋random tape所有可能的組合方式來告訴你乙個序列不是來自於uniform分布。

通常我們只需要考慮偽隨機就可以了,也就是說我們把distinguisher限制在執行在圖靈機上的多項式時間演算法。典型的多項式distinguisher無非就是計算一些統計資訊了(比如估算一些低階的矩),當然也可以用很潮的機器學習演算法了。不過,需要值得注意的是,對於任意的多項式時間的distinguisher,如果只能獲得乙個negligible的優勢來判斷乙個序列是不是來自於uniform分布,那這個序列就是偽隨機的。

也就是說,如果發牌是演算法嚴格按照偽隨機的定義來設計,題主會完全設計不出來乙個多項式時間內的判斷演算法來區分發牌是否隨機。

不知道對「判斷「distinguisher這個演算法的限制,無法答題。求補充完題目。

3樓:

如果問的是演算法的隨機性,那很好評價。發牌的結果排成乙個序列,假設52張牌就有52!種全排列,看是不是等概率的就可以了。

隨機性可以用資訊熵衡量 ,最大熵當所有排列可能性相等的時候取到

要是問結果的隨機性,那就複雜了。這個指標叫做Kolmogorov complexity。Kolmogorov complexity本質是不可計算的,但是可以用一系列檢驗來近似。

如何評價乙個偽隨機數生成演算法的優劣?

Sisi H 本來是來這裡看看能不能幫我完成作業的,看了看發現我老師說得還挺全的。截老師的三張ppt 王建新 NIST SP800 22中規定了隨機數隨機性測試方法,共16個測試項,必選項15個,是國際上比較權威的測試方法,國密局的隨機數測試規範也參考了這個標準。按照此標準測試有開源的測試工具 st...

為什麼 SVM 是乙個 O n 的演算法,有沒有什麼理論的推導過程?

支援向量機的複雜度是 簡單的理解如下 支援向量機是找到兩類點之間的最大間隔,等價於求解乙個最優方程我們常常把它轉化為對偶問題,也就是 這是乙個標準的Linearly Constrained Convex Quadratic Programming問題。有許多複雜的方法來求解,比如Ellipsoid ...

衡量乙個人有沒有格鬥天賦有哪些具體的指標?

求知者 讓他去學吧,真的。全校倒數要提分,很難很難,更何況是自己不願意做的事。天賦不知道,但是狂熱可以彌補絕大多數人所沒有的天賦。 樓上各位其實都說的很清楚了.我在補充一些額外的東西吧.首先說天賦.格鬥這行.總結來說就需要三種天賦 1.身體素質.這點其實是最不重要的.力量.耐力.速度都是後天可以練習...