follow你的假設"母體只有三種答案",
並進一步假設A和B的猜法都不具隨機性
則A猜法的次數分配為1:0, 2:0, 3:1, 4:1, 5:1 <= 這是前文所述的f1(k)成正比
B猜法的次數分配為1:0, 2:0, 3:1, 4:1, 5:1 <= 這是前文所述的f2(k)成正比
可以從這個次數分配算出A、B猜法的機率分配:
A: f1(3)=1/3, f1(4)=1/3, f1(5)=1/3, f1(else)=0
B: f2(3)=1/3, f2(4)=1/3, f2(5)=1/3, f2(else)=0
由我前文所述的比較方法,在任意一次A、B之間的較量中,A獲勝的機率為:
sum = 0.0;
for (i=1;i<=5;i++)
for (j=i+1;j<=5;j++)
sum += f1(i) * f2(j);
用數字算出來是(1/3) * (1/3) * (2+1+0) = 1/3
同理可算出A、B平手、B獲勝的機率也各是1/3
事實上這個結果一點也不意外,
因為兩者的次數分配一樣 => 兩者之間的對戰彼此獲勝的機率相等,就看平手機率多高
而且因為兩者的次數分配在3、4、5次是平均的1,所以輸贏平手各佔1/3很正常
關於勝敗評判的問題,再來個例題確保你有理解我的意思
假設母體還是只有三種答案,但A、B猜法(都不具隨機性)表現如下:
A: 1:0, 2:0, 3:1, 4:2, 5:3
B: 1:0, 2:0, 3:2, 4:3, 5:1
可以算出A獲勝、平手、落敗的機率分別為1/6, 11/36, 19/36 (如果我心算沒錯的話...)
利用上述的比較猜法之間優劣的方法,可以容易的排名多種算法
只要比照一般運動比賽常看到的二維表格紀錄整體比賽結果:
A B C ......
A X 1/6,11/36,19/36 .........
B 19/36,11/36,1/6 X
C .
. .
. .
. .
並可以累積出各種算法的勝敗次數,以此排名
勝敗次數相同的情況下,可以依序比較敗率、勝率等
如果再相同的話可以去追原始碼比較原始碼的計算效率或是誰的code寫得較好XD
重點是,隨著整體參賽者數量N越來越多,
雖然打完一個完整循環所需要的總次數為CN取2=N(N-1)/2 => O(N^2)不是太理想
但因為比較任兩者優劣的方法只需要跑兩個小小的for迴圈作加法、乘法
而且N其實也不可能大到哪裡去 (超過1000我覺得不太可能吧...)
參賽者只需在一參賽的時候就提出自己的分配了,後續擴充很簡單
我在想可能可以用google doc開一個大家共同編輯的文件
讓每個人自己寫上自己的次數分配並貼上source code連結
假設大家都照一個固定的格式來填,那應該寫出一個工具來生成統計結果不困難
感謝你的疑問,希望這樣有回答到你的問題:)
※ 引述《changyuheng (張昱珩)》之銘言:
: 有個疑問:
: 為了簡化問題,假設母體只有 3 種答案,
: A, B 兩個玩家參與比賽,
: 其中各題猜中次數分配如下:
: 題號: 1 2 3
: A 第 ? 次猜中:5 4 3
: B 第 ? 次猜中:4 3 5
: 這個比賽將由 B 獲勝,
: 但 A, B 不論平均或猜中次數分佈均相等,
: 請問該如何解決?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 118.169.168.123