Re: [討論] 手遊機率

作者: archon (內湖流川楓)   2017-11-28 09:16:07
唔... 很多板友說的對,機率的東西抽1萬次真是太兒戲了,
我先入為主覺得這是理所當然的結果,一心求快而忽略了些基本的東西,
非常抱歉... <(_ _)>
花了點時間把實驗做得完整一點...
對照組: 直接抽
實驗組: 先抽30次友抽,全槓龜再用心抽
各抽1億次,結果如下:
regular, UR: 1000027 cards, (1.000%)
friend pick first, UR: 1000331 cards, (1.000%)
1億抽的結果,一般正常抽取得到了1,000,027張UR,
而先用30張友情抽篩選再心抽則是得到了1,000,331張UR。
可以看得出來,這 python 內建的 random 函數庫很不錯,
1億抽之下,正常抽選的機率非常貼近 1% 世界線,
而用友抽篩選擇是約略增加了萬分之三的獲獎率。
當然這也只是個相當粗糙的實驗,LLSIF 號稱全球 4000萬 download,
1億抽還不夠每個帳號抽一單,而且我也只做了一次,
主要是這程式跑起來也挺花時間的,從昨晚到現在花了10幾個小時吧,
我把程式附在後面,更多抽的實驗就留給有興趣的朋友繼續囉...
稍微知道隨機函數在程式裡的運作原理的朋友應該可以理解這結果,
對一個隨機均勻分佈的序列,一直做把特定的數字拿掉的動作,
當然會造成其他數字的濃度增加,效果如何則是要看各個隨機函數的設計。
後續還有很多板友提出各式各樣的抽選設計方式會造成友抽試水溫無效,
嗯...,我的感覺是...,沒錯,的確有其他的設計方法,
但是,明明一行 r = random() 就能解決的程式,幹嘛要弄那麼複雜?
以商業遊戲 app 來說,原本的隨機函式已經足夠好了,
工程師光是抓 bug,讓每週活動準時上架都是個挑戰,
就連一堆人創了幾十個幾佰個帳號刷 UR 起手,甚至販賣,這種都不防了,
真的有人會那麼閒,花時間去求追完美的隨機結果嗎?
又不是要做什麼超高精度的科學實驗...
更別提人家原本 random() 就已經是經過千錘百鍊,有很良好的特性,
亂改架構搞不好還讓 random 函式變得更不隨機...
回頭來說,先用友抽篩選到底算不算有用,唔...,就看各人吧~~
現在有兩種抽法,一種是 1%,另一種是 1.0003%,
覺得沒差的人就隨心抽,其實真的也沒差,
萬分之三的機率,抽中100張UR還不夠你多一張,
不過,對我而言,友情抽擺在那裡,本來就會抽掉的,
只不過是調配了一下抽選的順序就加了 0.0003%,why not?
作者: tonyxfg (tonyxfg)   2017-11-28 09:22:00
你應該多跑幾次一億抽來做比較才對,這數值看起來就是正常的誤差範圍而已,很難說服人一定是這樣啊...
作者: j9145 (Swordcane)   2017-11-28 09:28:00
你一開始就搞錯前題。不是為什麼要搞這麼複雜,而是必須這麼複雜。你要先搞清楚轉蛋遊戲的轉蛋機就是最大營利項目,多花資源去維護很合理吧?
作者: Xavy (グルグル回る)   2017-11-28 09:39:00
又來了,又活在自己世界了
作者: j9145 (Swordcane)   2017-11-28 09:39:00
所以你找畫師來設計轉蛋機機率?
作者: lanjack (傳說中的草食熊)   2017-11-28 09:40:00
遊戲廠商:反正有沒有差那一點點機率玩家又不可能知道,有卡面強度就有人抽。不爽拿證據吉我啊~
作者: dreamnook (亞龍)   2017-11-28 09:43:00
我已經搞不懂這串到底是在討論什麼了 官方有無作弊嗎XD
作者: Cyjustin (justin)   2017-11-28 09:49:00
j大是當工程師是神嗎,機率越複雜程式越難搞搞出來都東西還有一定的誤差範圍,真的沒必要
作者: lkzax (sariel)   2017-11-28 09:51:00
如果1E抽要跑十幾個小時 有10萬人同時按10連是要跑60秒?這樣要多少台電腦才夠?
作者: e2167471 (喬妹)   2017-11-28 09:57:00
有實驗有推 不無可能吧 反正對玩家來說都是黑盒子說這個可能 和說這個不可能的荒謬程度是類似的XD
作者: lkzax (sariel)   2017-11-28 10:05:00
30抽沒中的機率約為0.2 反推回去 總抽數約為5.65E多這樣10萬人同時按10連也是要跑10秒 這樣算合理嗎?就算先抽友抽再抽石抽也才提升萬分之三 實在很雞肋
作者: Cyjustin (justin)   2017-11-28 10:10:00
合理,所以通常人數過多就會有伺服器分流
作者: intela46585 (易塚堅)   2017-11-28 10:15:00
如果我在廁所跑這程式 出來機率多個百萬分之一我是不是也可以主張在廁所抽會提升機率...這樣跑的結果 跟玄學有什麼差別?
作者: Cyjustin (justin)   2017-11-28 10:26:00
跟玄學差不多啊,畢竟沒脫離誤差範圍
作者: shinchen (starrydawn星晨)   2017-11-28 10:30:00
是你對random的原理只懂一半吧...照你的實驗 第一個seed從頭到尾不改變 第二個只用一台電腦一個thread抽這兩個實際狀況都是不成立的你的理論基礎是在同seed下亂數器會讓各數字出現率平均但是當seed不定的時候這理論就不成立了
作者: j9145 (Swordcane)   2017-11-28 10:38:00
http://www.sfoxstudio.com/10493沒時間打太多,直接貼文,重點是你能不能提升玩家付費比
作者: dreamnook (亞龍)   2017-11-28 10:40:00
到後來反正覺得可以提升萬分之3來滿足心情也可以啦
作者: j9145 (Swordcane)   2017-11-28 10:40:00
而不是機率到底有沒有1%,這篇文作者是業界待很久的企劃,只要你無法得知營運有沒有做手腳,那你一切玄學都是沒有意義的。 我要表達的就是這樣沒人規定友抽跟石抽一定是同樣公式XDDD而且你肯定有沒有把文章看完,繼續用你的玄學試吧
作者: Cyjustin (justin)   2017-11-28 11:03:00
j大那篇講轉蛋機制設計,特定up跟保底本來就會有但現在不是在討論那個吧?
作者: gn00399745 (Michael)   2017-11-28 11:07:00
seed只要用時間就代表示一直變動SEED了阿
作者: Cyjustin (justin)   2017-11-28 11:07:00
更何況他描述的部分行為在日本還不是合法的
作者: noob9527 (怒伯9527)   2017-11-28 11:16:00
重點就是通常會用時間當seed 所以不會符合你的說法阿
作者: gn00399745 (Michael)   2017-11-28 11:18:00
在c++上只要call的srand(seed) rand數列就改變了
作者: noob9527 (怒伯9527)   2017-11-28 11:20:00
那照你的說法 同seed 然後你先抽友抽30次把你的UR抽抽掉 你回到石抽 抽UR機率也就更低了阿還是你友抽抽到R都會重開app重抽30次 那也算很閒了然後亂數的部分 時間當seed是非常正常的server端處理完你的抽 下次當然就不同seed了你如果說抽10連 那個10連是同個seed或許還有可能client斷開重新連你 你的server端當然重新初始化參數阿在下孤陋寡聞 server端用php就這樣寫的如果你有更好的寫法 那就指導一下而且php下rand就是直接給一個新的seed 我沒記錯的話
作者: gn00399745 (Michael)   2017-11-28 11:39:00
我懂你的做法 但...思考了以後這個機率提升很無感XD
作者: noob9527 (怒伯9527)   2017-11-28 11:41:00
目的是什麼... php就這樣阿 request結束 程式也結束可是..新版php就是更新你講的那個 他會自動srand()

Links booklink

Contact Us: admin [ a t ] ucptt.com