Re: [閒聊] 賭徒謬誤:關於抽卡的機率

作者: Satoman (沙陀曼)   2020-06-01 21:38:56
→ meowyih: 說真的, 程式攤開來九成九就一行 if rand()%100 > 99 06/01 20:53
→ meowyih: { 喔耶出運啦! } 玩家看了也不會覺得公平的 :> 06/01 20:53
其實大部分都不是,因為rand()出來的東西是偽隨機,理論上直接這樣寫會出問題。
至少我知道的專案都是用亂數表加上種子來處理,盡量讓結果接近真隨機。
(我文組也不是寫程式的,這方面的東西有老大要解釋的麻煩幫個忙www)
然後這個種子通常是用時間來抓,
簡單來講就是某些手遊有同時間抽卡會有相同結果的都市傳說,這是有可能的。
這樣看起來好像就是所謂的歐洲時間?
但其實時間的種子通常會以秒以下來抓,真的有歐洲時間那也可能只是毫秒等級的時間。
當然,亂數是有可能被破解的。
比較有名的例子就以前的PM。
用破解亂數運作、調整時間的方式抓自己理想體質的PM曾盛極一時。
但是前陣子GF調整之後破解PM亂數變成幾乎不可能的任務,所以亂數世代也隨之終結。
這部分我也問過程式,他們幾乎都是說要破解刻意加強設計的亂數是幾乎不可能的事。
所以還是多做好事,扶老婆婆過馬路最實在,起碼有幫助到別人 ==
然後卡池的內容也不會寫在程式碼裡,因為那是我們這些雜工企劃要處理的東西。
基本上大部分的遊戲資料都是用表格在管理,卡池內容也一樣。
卡池其實不是讓你直接抽到商品。
而是先抽塞滿相同機率的商品的箱子,再從箱子中抽取商品這樣。
(避免一張搞到又臭又長,debug的時候看到san值歸零)
只是我高中的時候就把數學課本完全丟掉了,
不太確定這樣設計會不會影響到抽取的期望值計算www
作者: meowyih (meowyih)   2019-06-01 20:53:00
說真的, 程式攤開來九成九就一行 if rand()%100 > 99{ 喔耶出運啦! } 玩家看了也不會覺得公平的 :>
作者: guogu   2020-06-01 21:41:00
以ms當單位加上網路延遲基本不太可能破啦
作者: battlecat (eastern undefeated)   2020-06-01 21:41:00
翼龍怎麼什麼都懂= =
作者: marchcharlie (井岡山田孝之)   2020-06-01 21:42:00
到頭來都是抽下去才知道
作者: ZMTL (夜風/瀟湘 VR板已經開板!)   2020-06-01 21:44:00
#1Qdwpmar (C_Chat) 以前討論過一串還在就是
作者: s11924 (Kim03929)   2020-06-01 22:14:00
你說的時間是time(NULL)那個嗎?
作者: Jotarun (forever)   2020-06-01 22:50:00
真的是文組 笑死種子用時間跟所謂運氣的「歐洲時間」根本沒關係 = =
作者: school4303 (某爬蟲類)   2020-06-01 23:48:00
上面假設的歐洲時間是沒有錯的啊因為亂數種子是一樣的
作者: Jotarun (forever)   2020-06-01 23:49:00
講錯就說人家看不懂耶www
作者: school4303 (某爬蟲類)   2020-06-01 23:50:00
前文的假設是seed只用時間 一樣的seed跑出來的結果會是一樣的
作者: Jotarun (forever)   2020-06-01 23:54:00
seed一樣只是用同一個表 同一個表你跑好幾次rand結果也不會一樣
作者: Vulpix (Sebastian)   2020-06-01 23:57:00
咦?你認真的嗎?
作者: school4303 (某爬蟲類)   2020-06-01 23:58:00
這就要看你怎麼實作rng了啊 假如你用的是傳統的(7^5*seed)mod(2^31-1)就會一樣了
作者: Jotarun (forever)   2020-06-02 00:05:00
不是 你實作不太可能是跑一次rand就換一個seed吧
作者: school4303 (某爬蟲類)   2020-06-02 00:07:00
一般是X_i+1=rng(X_i)吧
作者: Jotarun (forever)   2020-06-02 00:07:00
對啊 所以你就算同一個時間 每個user都跑一次rand也不會一樣啊
作者: school4303 (某爬蟲類)   2020-06-02 00:08:00
上一次的rng的output作為下一次的seed可是上面的假設是rng(time())啊當然 他沒有講的那麼清楚 但是我看下來是這個意思
作者: Jotarun (forever)   2020-06-02 00:12:00
問題是實作沒有人會這樣啊你每次都換seed就變成一個跟時間1-1的函數完全不隨機了
作者: school4303 (某爬蟲類)   2020-06-02 00:22:00
實作不會這樣跟上文這樣討論是兩回事啊我看著手機上的圖片喊我婆 現實中我還是一個人睡覺RQQ
作者: qwe19272375 (魯蛇下士)   2020-06-02 00:25:00
crypto 用的 generator 通常也不會讓你自己刻重點是觀念要對 call function 不要出錯 RTFM
作者: Jotarun (forever)   2020-06-02 00:27:00
重點是這個人每次講錯就先嗆別人 先嗆不會讓你變成對的
作者: school4303 (某爬蟲類)   2020-06-02 00:33:00
......
作者: hollowland (顛倒鐘)   2020-06-02 00:35:00
我個人身為寫程式的(沒有寫亂數相關就是) 看不太出來原po講的架構有什麼錯啊?rand我印象沒錯的話 輸入同樣參數給出的結果是相同(C
作者: Jotarun (forever)   2020-06-02 00:37:00
就實際上有點規模的遊戲都不可能會有所謂歐洲時間
作者: hollowland (顛倒鐘)   2020-06-02 00:37:00
不同的程式語言或不同function倒是不一定
作者: hollowland (顛倒鐘)   2020-06-02 00:38:00
但是如果以原po的講法實作的話應該是這樣的沒錯
作者: Jotarun (forever)   2020-06-02 00:38:00
那樣會變得更不隨機
作者: hollowland (顛倒鐘)   2020-06-02 00:39:00
不管實務上是怎麼做(我也說我工作沒有寫亂數相關 只是
作者: Jotarun (forever)   2020-06-02 00:40:00
啊原Po講的就是錯的啊
作者: hollowland (顛倒鐘)   2020-06-02 00:40:00
偶爾會摸到)但是原Po講的理論 錯在哪邊我也看不太出來題外話我看不太懂跑rand要重設seed是什麼意思是每次都要重置到初始值還是每次都給不一樣的值?
作者: Jotarun (forever)   2020-06-02 00:43:00
原Po的理論要成立只有你跑隨機之前都會用現在時間當種子然後剛好這個公司很爛只用標準rand 才會在同一個時間得到同樣的結果
作者: hollowland (顛倒鐘)   2020-06-02 00:44:00
原po的確是這樣講沒錯啊 所以才說"這情況" "可能" 會
作者: Jotarun (forever)   2020-06-02 00:45:00
實際上兩者在稍微正常一點的公司都不會發生
作者: hollowland (顛倒鐘)   2020-06-02 00:45:00
有歐洲時間 然後後面也接了大部分公司會弄更複雜的亂數讓這件事不會發生
作者: Jotarun (forever)   2020-06-02 00:46:00
第一個前提就已經不可能了...
作者: hollowland (顛倒鐘)   2020-06-02 00:46:00
等等 所以你講了這麼多 只是想講實務上不會拿時間當參數丟進函式這樣而已??
作者: Jotarun (forever)   2020-06-02 00:47:00
對啊你不能把沒有人會作的事情因為做得到就說可能啊
作者: hollowland (顛倒鐘)   2020-06-02 00:48:00
.... 我現在處於一個又震驚又不知道該說什麼的狀態不曉得該說是溝通問題還是我中文能力還不夠強....
作者: featherM (琴悠羽)   2020-06-02 01:00:00
原po講的就是如果這樣做就可能有產生歐洲時間 你在那邊實務上不會這樣做
作者: Jotarun (forever)   2020-06-02 01:02:00
就沒有這種如果啊
作者: TED781120 (蒼夜歌)   2020-06-02 01:04:00
問題FGO真的有發生這種事,實體活動同時按抽的兩人抽出完全一樣的內容。所以真的有這個如果,真的有人這樣做。退一萬步說這個做法很爛可以,但講說一定沒人這樣作我覺得太武斷了。
作者: Jotarun (forever)   2020-06-02 01:08:00
就算發生了也絕對不是那樣 比較可能是其他原因
作者: TED781120 (蒼夜歌)   2020-06-02 01:10:00
只要做的到就沒有甚麼叫做絕對不會。講難聽點日本很多電腦方面的能力比台灣是差很多的。你自己也講了是「正常點的公司不可能」,抱歉,有些公司就是那麼不正常。你不能把理論上可能的事講成絕對不可能。這才是所謂理組的邏輯。
作者: Jotarun (forever)   2020-06-02 01:14:00
抽卡遊戲的命根子就是抽卡 你說會隨便亂搞那我隨便了
作者: hollowland (顛倒鐘)   2020-06-02 01:16:00
其實請不要小看人類智商的下限 xd
作者: TED781120 (蒼夜歌)   2020-06-02 01:16:00
誰說命根子就不會隨便搞的。
作者: hollowland (顛倒鐘)   2020-06-02 01:17:00
工作上其實偶爾都會遇到測試模組因為可以跑 然後也沒
作者: TED781120 (蒼夜歌)   2020-06-02 01:17:00
如果你夠清楚FGO這類日本抽卡遊戲的狀況就不會覺得有什麼不可能了。
作者: TED781120 (蒼夜歌)   2020-06-02 01:19:00
整個遊戲一開始在開發時都不被當一回事,所以根本沒投注什麼心力在做根本當免洗隨便搞,結果莫名靠IP死士硬是撐到活起來,大概就是這種狀況。抽卡對抽卡遊戲是命根子,但在開發期對老闆跟團隊別說抽卡環節整個遊戲都只是個免洗企劃,這種案例多的是。我不是寫程式的是做圖搞設計的,我進上一家公司前也以為正常點的公司會把資料跟圖紙好好歸檔啊,製造業你工程資料可是命根耶。
作者: Jotarun (forever)   2020-06-02 01:23:00
你們說的都不是會賺錢的事情啊
作者: TED781120 (蒼夜歌)   2020-06-02 01:23:00
阿結果?一家40年老企業就是都沒做然後人家賺錢賺到現在,存在即合理我能怎樣。
作者: hollowland (顛倒鐘)   2020-06-02 01:24:00
他媽的就是 我跟你保證...
作者: Jotarun (forever)   2020-06-02 01:24:00
所以你說因為趕時間有bug導致歐洲時間我信啊
作者: TED781120 (蒼夜歌)   2020-06-02 01:25:00
實際上就是跟賺錢有關啊。
作者: hollowland (顛倒鐘)   2020-06-02 01:25:00
我是不曉得你家公司有多威猛 但是小公司管理一蹋糊塗
作者: Jotarun (forever)   2020-06-02 01:25:00
但是一開始設計就會有歐洲時間那是不可能的
作者: TED781120 (蒼夜歌)   2020-06-02 01:26:00
那不叫一開始設計就有歐洲時間,設計的人就是廢到不知道會搞出問題這還比較可能。
作者: hollowland (顛倒鐘)   2020-06-02 01:26:00
沒錯 (狂點頭
作者: Jotarun (forever)   2020-06-02 01:27:00
反正我只是來罵原Po的 你們隨意
作者: hollowland (顛倒鐘)   2020-06-02 01:27:00
然後寫code的是剛進來的菜鳥 連rand怎麼寫現場google後續會發生什麼鬼事根本不是他有辦法知道的事
作者: TED781120 (蒼夜歌)   2020-06-02 01:28:00
不就是你要罵的根本沒罵的嗎。
作者: hollowland (顛倒鐘)   2020-06-02 01:31:00
我是沒到過那種真的管理很嚴謹的企業 但是我的經驗告
作者: school4303 (某爬蟲類)   2020-06-02 01:31:00
看起來變成像是對人不對事了...就這樣吧
作者: hardyuse (Liu)   2020-06-02 01:32:00
"抽卡遊戲的命根子就是抽卡 你說會隨便亂搞那我隨便了"只能說呵呵
作者: TED781120 (蒼夜歌)   2020-06-02 01:33:00
別說小公司,有的時候大公司也是讓人匪夷所思。因為大公司有時候決定標準的根本不懂工程實務。
作者: zz860619 (Kukuboo)   2020-06-02 01:34:00
如果這個世界大家都是這樣理所當然的在思考,那我想世界也不會那麼亂了
作者: TED781120 (蒼夜歌)   2020-06-02 01:35:00
比方說某間供應商出錯以後就規定所有同型產品都要一致超高標準,結果之後因為這種超高標準在某些尺度完全做不到,卡死自己研發跟品保,然後工程師完全跟上層溝通無效。
作者: hollowland (顛倒鐘)   2020-06-02 01:37:00
然後上層只負責出一張嘴 責任都不是他的(O
作者: TED781120 (蒼夜歌)   2020-06-02 01:37:00
偏偏台灣這邊供應商很誠實都說做不到,支那那邊都是跟你說可以但實際上做不到,然後就全部轉單過去,然後出事以後回來找台灣幫忙,想轉回台灣然後別部門又再要求台灣要做這個標準無限循環哈哈哈。
作者: hollowland (顛倒鐘)   2020-06-02 01:38:00
靠杯這我超有即視感的xddddd果然這世界運作的模式都很像(o
作者: TED781120 (蒼夜歌)   2020-06-02 01:38:00
欸你說他們大公司工程師薪水那麼高成天做這種無用功是怎麼賺錢的?我也不知道,反正人家是跨國大公司不是我能理解的。
作者: gn00399745 (Michael)   2020-06-02 09:01:00
我朋友在台灣公司寫遊戲 他們就是寫像文中一樣的程式碼 他們的遊戲很紅 排行榜上也有
作者: JamesChen (James)   2020-06-02 09:25:00
完全亂扯

Links booklink

Contact Us: admin [ a t ] ucptt.com