Re: [討論] ?A?B猜數字遊戲的AI

看板C_and_CPP作者 (張昱珩)時間13年前 (2012/09/24 10:57), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串10/11 (看更多)
假設母體中只有四個答案, 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
文章代碼(AID): #1GNymQ2s (C_and_CPP)
討論串 (同標題文章)
文章代碼(AID): #1GNymQ2s (C_and_CPP)