【メモ】ニンジャスレイヤーTCGにおいて1コスのキャラクターカードを何枚入れるべきかについて
動機
ニンジャスレイヤーTCGのデッキ構築において、初手(先手想定、5枚)に必ず来て欲しいカード(具体的には1コスのキャラクターカード)を何枚デッキに入れればいいかを知りたかったので、計算してみた。
結論
50枚のデッキ中に22枚以上入れれば、95%以上の確率で初手に来る。
20枚ならおよそ93%、24枚ならおよそ97%。
1コスのカードはだいたい4積みしたいカードだと思われるので、6スロット24枚をデッキに入れておけば、とりあえず初手に何も出来ないことは ほぼ無くせそう。
なお、24枚の中に0コスのカード(具体的にはクローンヤクザ)を含めるか否かについてだが、アグロデッキ想定であれば含めないほうが良さそう。これはアグロデッキならばエテルを毎ターン使い切りたいからである(初手に0コスのカードがあり1コスのカードはない場合、動けないという最悪の事態は避けられるが、使えるはずだった1エテルを無駄にしている
計算に使ったプログラム
import Control.Monad (forM_)
import Text.Printf (printf)
probNotToDraw :: (Integral a, Fractional b) => a -> a -> a -> b
probNotToDraw deck cards draw
| cards <= 0 || draw <= 0 = 1
| deck <= cards = 0
| otherwise = (1 - fromIntegral cards / fromIntegral deck) * probNotToDraw (deck - 1) cards (draw - 1)
probToDraw :: (Integral a, Fractional b) => a -> a -> a -> b
probToDraw deck cards draw = 1 - probNotToDraw deck cards draw
main :: IO ()
main = do
forM_ ([0..50] :: [Int]) $ \n -> do
let p = probToDraw 50 n 5 :: Double
printf "%d,\t%.7f\n" n p
0, 0.0000000
1, 0.1000000
2, 0.1918367
3, 0.2760204
4, 0.3530395
5, 0.4233613
6, 0.4874323
7, 0.5456786
8, 0.5985067
9, 0.6463035
10, 0.6894372
11, 0.7282576
12, 0.7630963
13, 0.7942679
14, 0.8220695
15, 0.8467821
16, 0.8686704
17, 0.8879835
18, 0.9049557
19, 0.9198064
20, 0.9327408
21, 0.9439507
22, 0.9536144
23, 0.9618975
24, 0.9689535
25, 0.9749240
26, 0.9799392
27, 0.9841185
28, 0.9875710
29, 0.9903958
30, 0.9926825
31, 0.9945119
32, 0.9959561
33, 0.9970794
34, 0.9979384
35, 0.9985827
36, 0.9990551
37, 0.9993926
38, 0.9996262
39, 0.9997819
40, 0.9998811
41, 0.9999405
42, 0.9999736
43, 0.9999901
44, 0.9999972
45, 0.9999995
46, 1.0000000
47, 1.0000000
48, 1.0000000
49, 1.0000000
50, 1.0000000
この記事が気に入ったらサポートをしてみませんか?