Re: [討論] ?A?B猜數字遊戲的AI
假設母體中只有四個答案,
A: 3 3 4 5
B: 5 3 4 4
此二者對戰,勝、負次數相同,勝率相等。
依照您的公式:
A: f(3) = 1/2, f(4) = 1/4, f(5) = 1/4; A total: 15
B: f(3) = 1/4, f(4) = 1/2, f(5) = 1/4; B total: 16
B 在數字上劣勢,
演算法的結果為:
A 勝率:7/16
B 勝率:4/16
平手率:5/16
※ 引述《SocketAM2 (AM2)》之銘言:
: 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: 211.21.127.209
討論串 (同標題文章)