作者y2468101216 (芸)
看板KanColle
標題Re: [求助] 主力隊配法
時間Sun Oct 6 14:37:00 2013
稍微說一下,關於機率的問題
下面有人說取樣是以毫秒來取的,我想這不太可能。
我本身也有在寫程式,基本上以毫秒取是不太可能的。
舉個例子:
一分鐘擲骰子一次跟一秒鐘擲骰子一次,哪個人會先手酸這不言而喻。
今天電腦的處理速度有限,用毫秒來取意味著負擔會很大
如果是單機遊戲還好,但如果是像艦娘這種就會掛掉。
而且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
1F:→ ChiKK:你的手酸理論,除非是資源無限且不吃網速才會成立吧 10/06 14:45
2F:→ ChiKK:而且用分秒都是人去定義的,對電腦來說都是一次動作不是? 10/06 14:46
3F:→ ChiKK:而且前端用flash呈現,好像跟後台用什麼寫沒關聯… 10/06 14:48
可能我不是講得很清楚,當同時有很多人按下建造,這時如果再取變數,伺服器的
負擔會很大,我們都怕下雨時水淹過堤防,處理量太大,伺服器會不穩
4F:推 attacksoil:不是很懂怎麼得到懶人包結論的耶 10/06 14:48
5F:→ attacksoil:如果真的是以分鐘分鐘單位擲骰子 那不是應該該分鐘內 10/06 14:49
6F:→ attacksoil:全部都是相同艦種? 可是顯然不是啊 10/06 14:49
理論是很高機率,我內文有提到,因為可能多摻了幾個變數誰也不知道。
7F:→ Kenqr:亂數種子通常是取電腦的時間 電腦的時間是精確到毫秒的 10/06 14:56
8F:→ Kenqr:另外亂數種子並不需要每次取亂數都重新產生一次 10/06 14:56
每次建造都A=MATH.RANDOM()想必伺服器會爆炸的,另外我否定的是
每次取變數間隔的時間,不是電腦可以精準到哪裡。
※ 編輯: y2468101216 來自: 220.135.12.134 (10/06 15:11)
9F:推 seedpk5079:推Kenqr 10/06 15:07
10F:推 BoXeX:一般來說取亂數是以秒為單位沒錯啦 10/06 15:11
11F:→ BoXeX:但如K大說的,種子根本不用每次重取....... 10/06 15:11
12F:推 attacksoil:我的意思就是參了幾個變數不知道 所以(ry 10/06 15:13
13F:→ BoXeX:取亂數不過是去亂數表挖下一個值而已.... 10/06 15:14
14F:→ BoXeX:而且如果人數很多,我還可以根本不用亂數 10/06 15:18
15F:→ BoXeX:1~10000下去每個人輪,然後每次抽就依材料找一下對應... 10/06 15:19
16F:→ BoXeX:方法實在太多了,而這篇文的前提要成立的機率也不是很高 10/06 15:20
17F:推 aresa:東西都在玩家電腦算的吧,怎麼可能丟回伺服器算WWW 10/06 15:20
18F:→ BoXeX:抽選機率的東西給伺服器算這點倒是很正常啦... 10/06 15:21
19F:→ aresa:當然是HASH一下送回去驗證,沒那麼難吧@@ 10/06 15:21
20F:→ aresa:我自己寫的server就沒這麼搞毛,不然封包加密是加爽der 10/06 15:22
21F:→ BoXeX:雖然我是覺得機會不大,但也不能否認你的說法 10/06 15:23
22F:→ BoXeX:反正就是可能性太多,各種說法成立的機率都太低 10/06 15:24
23F:→ BoXeX:一切看程式設計師爽怎麼寫,不是拿自己習慣下去說就高機率對 10/06 15:25
24F:推 onionandy:給aresa 你按建造或開發時系統會卡一下 這時就回傳了 10/06 15:29
25F:→ onionandy:客戶端是拉結果 因為這東西在客戶端算會出事的 10/06 15:30
26F:→ jerry78424:艦kore封包有加密?那怎麼會有46cm連裝砲醬.... 10/06 15:32
27F:→ kaseno:那個是伺服器端沒作二次驗證的關係吧 也有開場艦娘島風啊 10/06 15:33
28F:→ Kenqr:假如隔一分鐘才取一次亂數 那我在一分鐘內一直用同樣的配方 10/06 15:33
29F:→ Kenqr:就一定會造出同樣的船 可是實際上並非如此 10/06 15:33
30F:推 aresa:看來我犯了拿自己的東西套到別人的東西的錯了XD 10/06 15:34
31F:推 noir:抽選機率如果是玩家端在計算 你會看到一堆人100%命中46砲 10/06 15:37
32F:推 Kenqr:戰鬥傷害之類的 計算量很大 有可能偷懶直接在玩家端算 10/06 15:38
33F:→ Kenqr:造艦或開放之類的就不太可能在玩家端算了 10/06 15:38
34F:→ Kenqr: 發 10/06 15:39
35F:→ attacksoil:電腦網路lag的時候 造艦or撿到艦娘時會lag很明顯 10/06 15:41
36F:推 dderfken:改成取變數區間 後在骰子取區間中變數如何? 10/06 15:58
37F:→ litcurler:以時間(日.時.分.秒.)為基準的變數? 10/06 16:29
38F:推 onionandy:對電腦來說 時間大概都是拿timestamp來算 10/06 16:52
睡一覺起來後看大家的討論得很有深度,釣魚大成功(拖走
學到了不少東西,感謝各位XD
※ 編輯: y2468101216 來自: 220.135.12.134 (10/06 17:55)