看板 KanColle 關於我們 聯絡資訊
稍微說一下,關於機率的問題 下面有人說取樣是以毫秒來取的,我想這不太可能。 我本身也有在寫程式,基本上以毫秒取是不太可能的。 舉個例子: 一分鐘擲骰子一次跟一秒鐘擲骰子一次,哪個人會先手酸這不言而喻。 今天電腦的處理速度有限,用毫秒來取意味著負擔會很大 如果是單機遊戲還好,但如果是像艦娘這種就會掛掉。 而且flash是一種很肥大的程式語言 想想便可知24*60*60*100*人數是多麼大的數字,如果這樣作 我看開放人數要先少 1/100才行。 一般而言,不管是哪個程式語言只要你沒刻意去指定的話都是以時間為變數, 而為了減少負擔,大部分都會以分或秒來改變機率一次,而且會用個變數確保 一分鐘或一秒鐘以內不會再取。 所以隔壁棚的P&D才會流行所謂的"墊子法"(XX分時升技會成功) 接下來要討論機率的問題,究竟是先決定會造出戰艦OR重巡 還是直接就決定會出哪艘,如果是前者那墊子法就會很有效,後者就算用墊子法也沒差 聽起來有點複雜,我舉個例子: 根據巴哈的Q&A出戰艦的機率是35% 第一種 丟骰子-重巡(65%)or戰艦(35%)-丟骰子-決定艦娘 基本上如果是這樣墊子法可以固定第一個變數,會一直出特定艦種但會出誰不知道 第二種 丟骰子-決定艦娘 出同隻艦娘的機率很高,但我認為決定艦娘的變數不只一個,可能有好幾個 這樣即使固定了其中一個你也無法固定剩下的幾個。 或許有人會說第一種決定艦種不會有兩個以上的變數嗎,我想大概是不會的 如前面所講,程式設計師不喜歡增加程式的無謂負擔,變數是用的越少越好。 再來我認為用第一種機率很高,一來程式碼維護方便,二來搞活動也方便, 再來,遊戲出現的艦種會根據配方不同而出現不同的結果,用第一個會比第二個來的好寫 (我個人認為拉) 懶人包: 如果你想造BB或CV,我建議以分鐘為單位造,沒出就等下一分鐘,有出就連續造 再出的機率會很高。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.135.12.134
ChiKK:你的手酸理論,除非是資源無限且不吃網速才會成立吧 10/06 14:45
ChiKK:而且用分秒都是人去定義的,對電腦來說都是一次動作不是? 10/06 14:46
ChiKK:而且前端用flash呈現,好像跟後台用什麼寫沒關聯… 10/06 14:48
可能我不是講得很清楚,當同時有很多人按下建造,這時如果再取變數,伺服器的 負擔會很大,我們都怕下雨時水淹過堤防,處理量太大,伺服器會不穩
attacksoil:不是很懂怎麼得到懶人包結論的耶 10/06 14:48
attacksoil:如果真的是以分鐘分鐘單位擲骰子 那不是應該該分鐘內 10/06 14:49
attacksoil:全部都是相同艦種? 可是顯然不是啊 10/06 14:49
理論是很高機率,我內文有提到,因為可能多摻了幾個變數誰也不知道。
Kenqr:亂數種子通常是取電腦的時間 電腦的時間是精確到毫秒的 10/06 14:56
Kenqr:另外亂數種子並不需要每次取亂數都重新產生一次 10/06 14:56
每次建造都A=MATH.RANDOM()想必伺服器會爆炸的,另外我否定的是 每次取變數間隔的時間,不是電腦可以精準到哪裡。 ※ 編輯: y2468101216 來自: 220.135.12.134 (10/06 15:11)
seedpk5079:推Kenqr 10/06 15:07
BoXeX:一般來說取亂數是以秒為單位沒錯啦 10/06 15:11
BoXeX:但如K大說的,種子根本不用每次重取....... 10/06 15:11
attacksoil:我的意思就是參了幾個變數不知道 所以(ry 10/06 15:13
BoXeX:取亂數不過是去亂數表挖下一個值而已.... 10/06 15:14
BoXeX:而且如果人數很多,我還可以根本不用亂數 10/06 15:18
BoXeX:1~10000下去每個人輪,然後每次抽就依材料找一下對應... 10/06 15:19
BoXeX:方法實在太多了,而這篇文的前提要成立的機率也不是很高 10/06 15:20
aresa:東西都在玩家電腦算的吧,怎麼可能丟回伺服器算WWW 10/06 15:20
BoXeX:抽選機率的東西給伺服器算這點倒是很正常啦... 10/06 15:21
aresa:當然是HASH一下送回去驗證,沒那麼難吧@@ 10/06 15:21
aresa:我自己寫的server就沒這麼搞毛,不然封包加密是加爽der 10/06 15:22
BoXeX:雖然我是覺得機會不大,但也不能否認你的說法 10/06 15:23
BoXeX:反正就是可能性太多,各種說法成立的機率都太低 10/06 15:24
BoXeX:一切看程式設計師爽怎麼寫,不是拿自己習慣下去說就高機率對 10/06 15:25
onionandy:給aresa 你按建造或開發時系統會卡一下 這時就回傳了 10/06 15:29
onionandy:客戶端是拉結果 因為這東西在客戶端算會出事的 10/06 15:30
jerry78424:艦kore封包有加密?那怎麼會有46cm連裝砲醬.... 10/06 15:32
kaseno:那個是伺服器端沒作二次驗證的關係吧 也有開場艦娘島風啊 10/06 15:33
Kenqr:假如隔一分鐘才取一次亂數 那我在一分鐘內一直用同樣的配方 10/06 15:33
Kenqr:就一定會造出同樣的船 可是實際上並非如此 10/06 15:33
aresa:看來我犯了拿自己的東西套到別人的東西的錯了XD 10/06 15:34
noir:抽選機率如果是玩家端在計算 你會看到一堆人100%命中46砲 10/06 15:37
Kenqr:戰鬥傷害之類的 計算量很大 有可能偷懶直接在玩家端算 10/06 15:38
Kenqr:造艦或開放之類的就不太可能在玩家端算了 10/06 15:38
Kenqr: 發 10/06 15:39
attacksoil:電腦網路lag的時候 造艦or撿到艦娘時會lag很明顯 10/06 15:41
dderfken:改成取變數區間 後在骰子取區間中變數如何? 10/06 15:58
litcurler:以時間(日.時.分.秒.)為基準的變數? 10/06 16:29
onionandy:對電腦來說 時間大概都是拿timestamp來算 10/06 16:52
睡一覺起來後看大家的討論得很有深度,釣魚大成功(拖走 學到了不少東西,感謝各位XD ※ 編輯: y2468101216 來自: 220.135.12.134 (10/06 17:55)