看板 Math 關於我們 聯絡資訊
雖然推文提到已經用不到了, 但還是解釋一下這可以怎麼做 ※ 引述《knightmare0 (神楓蒼火)》之銘言: : 小弟最近有個疑問一直不知道該怎麼解決,於是找到了數學版,最近在玩某一款 : 網頁遊戲,跟人PVP時,必須以某一值(運氣)做亂數,雙方擲亂數比大小 大者先攻, : 假如亂數結果雙方相同,則進攻方先攻(例:我攻擊A,雙方數值相同我先攻) : 我想在EXCEL寫個公式,但不知道如何下手,我做了個實例的笨方法計算 : (可能有誤請見諒,小弟高職機率學的很差,微積分渣渣) : 假定我運氣數值2000 對手A運氣值3000 雙方骰亂數做先攻 : 一共會有我(1-2000)*對方(1-3000)=600,0000種結果 : 土法煉鋼開始了: : 假如對方骰到2001以上(2001~3000)那我必輸,因為我骰不到2000以上的數字,對方 : 必定先攻,所以這邊的算式是(1~2000)*(2001~3000)=2000種結果*1000種結果 : =2,000,000種結果對面一定先攻 : 再來是第二部分 這邊我覺得有點麻煩 也有可能有算錯,用梯形公式去算 : 我骰2000 對面骰1~1999都我先攻 : 我骰1999 對面骰1-1998都我先攻 : 以此類推到 : 我骰0002 對面骰1我先攻 : (1999+1998+~~~+1)*1999/2=1,999,000種結果我先攻 : 再來是同數值階段 : 我的數值是2000 只要對面2000那也是我先攻 這邊有兩千種結果 : 跟上面的1,999,000+2,000=2,001,000 : 2,000,100/6,000,000=33.35%機率我先攻(假定真隨機,偽隨機那個我算不了,也不會) : 我如果要把他在EXCEL寫成公式 我該怎麼設定參數跟公式,還有請版上大大幫我看一下 : 我上面的公式是否有誤? : 感謝願意回答的板友們 : → THEJOY : (1+自己運氣)/(2*對方運氣)? 08/19 05:36 : 推 hwanger : 當自己運氣值比對方低時 就是樓上的式子 08/19 08:51 : 推 hwanger : 偷一下T大結果 當自己運氣值比對方高時 就是 08/19 09:21 : → hwanger : 1-(1+對方運氣)/(2*自己運氣) 兩者都是假設自己是攻 08/19 09:22 : → hwanger : 擊者 08/19 09:23 : 推 hwanger : 打錯 應該是1-(對方運氣-1)/(2*自己運氣) 08/19 09:28 : 推 LPH66 : 其實如果數字都是如你舉例這種大小的話 08/19 18:55 : → LPH66 : 骰相等歸誰先其實影響不大 08/19 18:55 : → LPH66 : 以你的例子來說, 它只佔全部的 1/3000 種狀況 08/19 18:56 : → LPH66 : 那如果都要概算的話可以把離散整數當連續實數估計 08/19 18:57 : → LPH66 : 這樣就能簡單得到 2000 對 3000 的起手比是 1:2 08/19 18:58 我所謂用連續估計的意思是這樣的 就從你的土法煉鋼的做法開始延伸 假設我們在 Excel 裡開一個 2000x3000 的表格, 每一格填入顏色表示由誰先攻 那填出來的表格當它縮小來看的話會長得像這個樣子: 對角線上其實是鋸齒線 但就如我推文提的, 對角線的格子只佔這整塊面積的 1/3000 (因為每一列 3000 格中有一格在對角線上) 所以如果把對角線格子切對半的話可以用三角形面積近似估計機率 這樣算的話, 綠色面積是 2000*2000/2, 紫色面積是 (1000+3000)*2000/2 化簡就能得到面積比是 1:2, 也就是 2000 方起手機率約 1/3 以遊戲應用來說的話 1/3 這值應該足夠做一些戰略上的計畫了 那如果要細算到準確的話, 注意到這裡的計算和實際情形只有對角線算法不同 實際情形是主動方得, 但這裡把它給對半切了 計入這裡的話, 佔 1/3000 的對角線格子其中一半在估計中給了被動方 因此在 2000 是主動方的狀況下正確機率應是 1/3 + (1/2)*(1/3000) = 667/2000 這數字正等於你求得的 2001000/6000000 ==== 一般來說, 令數值小的那方是 x, 數值大的那方是 y 則三角形面積會分別是 x^2 / 2 和 (y+(y-x))x/2 也就是兩方起手比率是 x:2y-x, 數值小方起手機率是 x/2y 計入相等決定條件的話, 對角線格子佔 1/y, 也就是這比例的一半 1/2y 給了被動方 因此數值小方主動的話小方先手機率會是 x/2y + 1/2y = (x+1)/2y 和推文公式一樣 反之數值大方主動的話小方先手機率就是 x/2y - 1/2y = (x-1)/2y 主動的數值大方的先手機率即是拿 1 減得 1-(x-1)/2y 也和推文公式相同 ==== 如果要老老實實的算格子數其實也不是不行, 只是相等的問題就要在這裡先處理 以數值小方主動為例, 沿用上面的 x y 數值小方先手的狀況在骰 n 時有 n 個, 總計是 1+2+...+x = x(x+1)/2 個 機率即是其佔全部的比例: [x(x+1)/2]/xy = (x+1)/2y 數值大方先手的話小方骰 n 時有 n-1 個先手狀況, 總計是 0+1+...+(x-1) = x(x-1)/2 這樣也能導出上面的 (x-1)/2y 和 1-(x-1)/2y 結果出來 ==== 順帶一提, x/2y 這個估計值也可以用來比較改版前後對這比例的影響 改版後的公式可以簡單推得是 x/(x+y), 注意到分母變小 = 分數變大了 這代表這個改動增加了數值小方起手的機率 例如本文例的 2000 對 3000, 改版前是約 1/3 ~ 33.3%, 改版後是 2/5 = 40% ==== 總之這篇的重點是: 當你的數值範圍很大時 有時候畫出像上面那樣的大略估計範圍可以很容易地求得一個很不錯的估計值 估計誤差會被大數值範圍給稀釋掉, 這樣的估計值其實就已經能用了 並不一定需要計算到準確值才行 -- 'Oh, Harry, don't you see?' Hermione breathed. 'If she could have done one thing to make absolutely sure that every single person in this school will read your interview, it was banning it!' ---'Harry Potter and the order of the phoenix', P513 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 123.195.194.100 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Math/M.1597870294.A.894.html
wohtp : 補充下估計誤差,以上面那個2001000/6000000為例 08/20 18:02
wohtp : 比例是 1.0005:1.9995,跟1:2只差了0.0005 08/20 18:03
wohtp : 所以花那麼多功夫求精確值幾乎沒有意義 08/20 18:03