Re: [閒聊] 代理的隨機並非完全不變

作者: x94fujo6   2020-07-14 17:58:57
※ 引述《AirFuckKing (空幹王)》之銘言:
: ※ 引述《x94fujo6 ()》之銘言:
: : 機率的判定是靠亂數表
: 是靠隨機函式帶入seed值後回傳的值判定
所以產生的整串亂數每次都一樣
不能當成一個表/軸看?
: : 亂數表是每場戰鬥進場才隨機產生的
: 初始的seed值是每場戰鬥進場才隨機產生
: : 然後該場戰鬥中的機率判定就是照這個固定的表來跑
: 依照隨機函式帶入初始的seed值 以及後續seed遞迴的值 所回傳值進行判定
: : 同一場戰鬥/代理中
: : 亂數表是不變的
: 初始seed是不變的
: : 所以代理在[某種程度上]可以重現機率判定
: : 但並不是完全不變
: : 隊伍裡面有技能/天賦是機率或是隊伍練度高了打怪變快
: : 都可能導致亂數表偏移
: 都可能導致帶入隨機函數的seed值不一樣所回傳的值不一樣
就偏移 你這樣說讓不懂的人看不懂比較厲害?
: : 例如原本你錄到的代理亂數表是
: : 編號 01 02 03 04 05 06 07 08 09 10 11 12
: : 亂數 11 73 50 62 38 99 14 34 26 81 56 30
: : (這張表的數字不重要,重要的是判定結果)
: : 例如這場戰鬥你用12F檔攻擊
: : 不管你用他檔多久,重點是你每用他檔一次傷害就會進行一次機率判定
: seed就會進行一次遞迴運算 這會導致原本要帶入隨機函式的seed值遞迴項次不一樣
: : 這會消耗掉一個亂數表上的亂數
: : 但是隊伍練度提升了,怪死的比較早
: : 結果12F少扛一次攻擊,那之後所有機率判定用的亂數就會全部提前一個
: 使遞迴的seed值提前一個
: : 當判定時用的數字不一樣就會影響結果
沒有原始碼 無法證明後面到底怎麼實作的
再說不需要遞迴新的亂數種子
亂數的實現方法本來就已經包含
只要最一開始設定就可以
也符合代理的要求的重現機率判定結果
目前能觀測到的結果
其他幹員因為各種原因而導致多用一個/少用一個
讓後續的結果偏移掉
也可以靠用其它幹員消耗亂數把你要的結果連接起來
隨便寫個python
這是模擬 黑 二技 機率50%
import random
random.seed(100)
for loop in range(0, 10):
random_number = round(random.random()*100)
if random_number > 50:
critical = 0
else:
critical = 1
print("序號:{:02d}, 亂數:{:02d}, 判定結果:{}"
.format(loop, random_number, critical))
執行結果 (序號加給人看的)
序號:00, 亂數:15, 判定結果:1
序號:01, 亂數:45, 判定結果:1
序號:02, 亂數:77, 判定結果:0
序號:03, 亂數:71, 判定結果:0
序號:04, 亂數:73, 判定結果:0
序號:05, 亂數:43, 判定結果:1
序號:06, 亂數:80, 判定結果:0
序號:07, 亂數:53, 判定結果:0
序號:08, 亂數:08, 判定結果:1
序號:09, 亂數:46, 判定結果:1
種子固定 產生的亂數也固定
整場下來 整個亂數序列 = 亂數表
當表看人類方便理解也方便操作
上面模擬代理紀錄結果是前兩次成功爆擊 但接下來三次沒有
實戰中讓黑繼續可以連續爆擊的方法
用其它幹員把中間沒爆擊的亂數序列消耗掉
效果等於黑可以跳過沒爆擊的那幾個亂數
變成
import random
random.seed(100)
for loop in range(0, 10):
random_number = round(random.random() * 100)
if not any(x == loop for x in [2, 3, 4, 6, 7]):
if random_number > 50:
critical = 0
else:
critical = 1
print("序號:{:02d}, 亂數:{:02d}, 判定結果:{}"
.format(loop, random_number, critical))
序號:00, 亂數:15, 判定結果:1
序號:01, 亂數:45, 判定結果:1
序號:05, 亂數:43, 判定結果:1
序號:08, 亂數:08, 判定結果:1
序號:09, 亂數:46, 判定結果:1
現在只觀測黑的情況下就是連續爆擊5次
也符合實戰測試結果
作者: tliu257 (伴時)   2020-07-14 18:04:00
樓下披薩貓推看不懂= =
作者: plzza0cats (西黑百夫長)   2020-07-14 18:21:00
看不懂== 有文組看得懂的方式嗎?
作者: harryron9 (兩個世界)   2020-07-14 18:26:00
亂數表這個名詞就是讓文組看得懂的方式了(?
作者: keika03 (keika03)   2020-07-14 18:27:00
喔喔原來是這樣子,嗯我現在完全搞懂了<--代理指揮貌
作者: kuria610478 (kuria)   2020-07-14 19:06:00
太棒了,我逐漸理解一切.jpg
作者: li1015 (123)   2020-07-14 19:38:00
作者: fd90312 (天天喝開水)   2020-07-14 19:56:00
娘子快跟我出來看真正的刀客塔怎麼玩遊戲的

Links booklink

Contact Us: admin [ a t ] ucptt.com