ピクミンブルームで、「苗をいくつ取得したら、確率的にはデコゲット種類数がいくつになるか」を求めるシミュレーションプログラムを書いてみました。
なお、今回は花札24種類の場合のみのシミュレーション結果を載せます。他の場合は、後述のプログラムを書き換えてご自由にお使いください。
苗取得回数が一定の値で固定の場合のシミュレーションはこちら:ピクミンブルーム 花札デコの苗26個で平均何種類の絵柄が手に入るか?【推移行列のn乗】
コンプリートまでの回数のシミュレーションはこちら:ピクミンブルーム 24種の花札デコをそろえるのに必要な回数【平均、中央値、最頻値、上位x%点】
花札デコ(24種類)の場合
x回苗取得時のデコゲット数の平均値と、上位10%~下位10%の値のグラフ
- x軸:何回、苗を取得したか
- y軸:デコゲット種類数
- 青線:デコゲット数の平均値
- オレンジ線:上位10%のときのデコゲット数
- 緑線:下位10%のときのデコゲット数
青線が平均値で、運が上位10%~下位10%の人はおおよそオレンジ線~緑線の間に収まることを意味します。
グラフの数表
- 小数第4位までの数字がx回苗取得時のデコゲット数の平均値
- ()内が、運が下位10%~上位10%のときのデコゲット数
です。
()内 Bottom 10.0 % ~ Top 10.0 %
0 回平均: 0.0 ( 0 ~ 0 )
1 回平均: 1.0 ( 1 ~ 1 )
2 回平均: 1.9583 ( 2 ~ 2 )
3 回平均: 2.8767 ( 2 ~ 3 )
4 回平均: 3.7569 ( 3 ~ 4 )
5 回平均: 4.6003 ( 4 ~ 5 )
6 回平均: 5.4087 ( 5 ~ 6 )
7 回平均: 6.1833 ( 5 ~ 7 )
8 回平均: 6.9257 ( 6 ~ 8 )
9 回平均: 7.6371 ( 6 ~ 9 )
10 回平均: 8.3189 ( 7 ~ 10 )
11 回平均: 8.9723 ( 8 ~ 10 )
12 回平均: 9.5984 ( 8 ~ 11 )
13 回平均: 10.1985 ( 9 ~ 12 )
14 回平均: 10.7735 ( 9 ~ 12 )
15 回平均: 11.3246 ( 10 ~ 13 )
16 回平均: 11.8528 ( 10 ~ 14 )
17 回平均: 12.3589 ( 11 ~ 14 )
18 回平均: 12.844 ( 11 ~ 15 )
19 回平均: 13.3088 ( 11 ~ 15 )
20 回平均: 13.7543 ( 12 ~ 16 )
21 回平均: 14.1812 ( 12 ~ 16 )
22 回平均: 14.5903 ( 13 ~ 16 )
23 回平均: 14.9824 ( 13 ~ 17 )
24 回平均: 15.3581 ( 13 ~ 17 )
25 回平均: 15.7182 ( 14 ~ 18 )
26 回平均: 16.0633 ( 14 ~ 18 )
27 回平均: 16.3939 ( 14 ~ 18 )
28 回平均: 16.7109 ( 15 ~ 19 )
29 回平均: 17.0146 ( 15 ~ 19 )
30 回平均: 17.3056 ( 15 ~ 19 )
31 回平均: 17.5846 ( 16 ~ 20 )
32 回平均: 17.8519 ( 16 ~ 20 )
33 回平均: 18.1081 ( 16 ~ 20 )
34 回平均: 18.3536 ( 16 ~ 20 )
35 回平均: 18.5888 ( 17 ~ 21 )
36 回平均: 18.8143 ( 17 ~ 21 )
37 回平均: 19.0304 ( 17 ~ 21 )
38 回平均: 19.2374 ( 17 ~ 21 )
39 回平均: 19.4359 ( 18 ~ 21 )
40 回平均: 19.626 ( 18 ~ 21 )
41 回平均: 19.8083 ( 18 ~ 22 )
42 回平均: 19.9829 ( 18 ~ 22 )
43 回平均: 20.1503 ( 18 ~ 22 )
44 回平均: 20.3107 ( 18 ~ 22 )
45 回平均: 20.4644 ( 19 ~ 22 )
46 回平均: 20.6118 ( 19 ~ 22 )
47 回平均: 20.7529 ( 19 ~ 22 )
48 回平均: 20.8882 ( 19 ~ 23 )
49 回平均: 21.0179 ( 19 ~ 23 )
50 回平均: 21.1421 ( 19 ~ 23 )
51 回平均: 21.2612 ( 20 ~ 23 )
52 回平均: 21.3753 ( 20 ~ 23 )
53 回平均: 21.4847 ( 20 ~ 23 )
54 回平均: 21.5895 ( 20 ~ 23 )
55 回平均: 21.6899 ( 20 ~ 23 )
56 回平均: 21.7862 ( 20 ~ 23 )
57 回平均: 21.8784 ( 20 ~ 23 )
58 回平均: 21.9668 ( 20 ~ 23 )
59 回平均: 22.0515 ( 21 ~ 23 )
60 回平均: 22.1327 ( 21 ~ 24 )
61 回平均: 22.2105 ( 21 ~ 24 )
62 回平均: 22.2851 ( 21 ~ 24 )
63 回平均: 22.3565 ( 21 ~ 24 )
64 回平均: 22.425 ( 21 ~ 24 )
65 回平均: 22.4907 ( 21 ~ 24 )
66 回平均: 22.5535 ( 21 ~ 24 )
67 回平均: 22.6138 ( 21 ~ 24 )
68 回平均: 22.6716 ( 21 ~ 24 )
69 回平均: 22.7269 ( 21 ~ 24 )
70 回平均: 22.78 ( 21 ~ 24 )
71 回平均: 22.8308 ( 22 ~ 24 )
72 回平均: 22.8795 ( 22 ~ 24 )
73 回平均: 22.9262 ( 22 ~ 24 )
74 回平均: 22.9709 ( 22 ~ 24 )
75 回平均: 23.0138 ( 22 ~ 24 )
76 回平均: 23.0549 ( 22 ~ 24 )
77 回平均: 23.0943 ( 22 ~ 24 )
78 回平均: 23.132 ( 22 ~ 24 )
79 回平均: 23.1682 ( 22 ~ 24 )
80 回平均: 23.2029 ( 22 ~ 24 )
81 回平均: 23.2361 ( 22 ~ 24 )
82 回平均: 23.2679 ( 22 ~ 24 )
83 回平均: 23.2984 ( 22 ~ 24 )
84 回平均: 23.3276 ( 22 ~ 24 )
85 回平均: 23.3557 ( 22 ~ 24 )
86 回平均: 23.3825 ( 22 ~ 24 )
87 回平均: 23.4082 ( 22 ~ 24 )
88 回平均: 23.4329 ( 22 ~ 24 )
89 回平均: 23.4565 ( 23 ~ 24 )
90 回平均: 23.4792 ( 23 ~ 24 )
91 回平均: 23.5009 ( 23 ~ 24 )
92 回平均: 23.5217 ( 23 ~ 24 )
93 回平均: 23.5416 ( 23 ~ 24 )
94 回平均: 23.5607 ( 23 ~ 24 )
95 回平均: 23.579 ( 23 ~ 24 )
96 回平均: 23.5965 ( 23 ~ 24 )
97 回平均: 23.6133 ( 23 ~ 24 )
98 回平均: 23.6295 ( 23 ~ 24 )
99 回平均: 23.6449 ( 23 ~ 24 )
100 回平均: 23.6597 ( 23 ~ 24 )
101 回平均: 23.6739 ( 23 ~ 24 )
102 回平均: 23.6875 ( 23 ~ 24 )
103 回平均: 23.7005 ( 23 ~ 24 )
104 回平均: 23.713 ( 23 ~ 24 )
105 回平均: 23.7249 ( 23 ~ 24 )
106 回平均: 23.7364 ( 23 ~ 24 )
107 回平均: 23.7474 ( 23 ~ 24 )
108 回平均: 23.7579 ( 23 ~ 24 )
109 回平均: 23.768 ( 23 ~ 24 )
110 回平均: 23.7777 ( 23 ~ 24 )
111 回平均: 23.7869 ( 23 ~ 24 )
112 回平均: 23.7958 ( 23 ~ 24 )
113 回平均: 23.8043 ( 23 ~ 24 )
114 回平均: 23.8125 ( 23 ~ 24 )
115 回平均: 23.8203 ( 23 ~ 24 )
116 回平均: 23.8278 ( 23 ~ 24 )
117 回平均: 23.8349 ( 23 ~ 24 )
118 回平均: 23.8418 ( 23 ~ 24 )
119 回平均: 23.8484 ( 23 ~ 24 )
120 回平均: 23.8547 ( 23 ~ 24 )
7種類デコの場合
x回苗取得時のデコゲット数の平均値と、上位10%~下位10%の値のグラフ
- x軸:何回、苗を取得したか
- y軸:デコゲット種類数
- 青線:デコゲット数の平均値
- オレンジ線:上位10%のときのデコゲット数
- 緑線:下位10%のときのデコゲット数
グラフの数表
- 小数第4位までの数字がx回苗取得時のデコゲット数の平均値
- ()内が、運が下位10%~上位10%のときのデコゲット数
()内 Bottom 10.0 % ~ Top 10.0 %
0 回平均: 0.0 ( 0 ~ 0 )
1 回平均: 1.0 ( 1 ~ 1 )
2 回平均: 1.8571 ( 1 ~ 2 )
3 回平均: 2.5918 ( 2 ~ 3 )
4 回平均: 3.2216 ( 2 ~ 4 )
5 回平均: 3.7613 ( 3 ~ 5 )
6 回平均: 4.224 ( 3 ~ 5 )
7 回平均: 4.6206 ( 4 ~ 6 )
8 回平均: 4.9605 ( 4 ~ 6 )
9 回平均: 5.2519 ( 4 ~ 6 )
10 回平均: 5.5016 ( 4 ~ 7 )
11 回平均: 5.7157 ( 5 ~ 7 )
12 回平均: 5.8991 ( 5 ~ 7 )
13 回平均: 6.0564 ( 5 ~ 7 )
14 回平均: 6.1912 ( 5 ~ 7 )
15 回平均: 6.3067 ( 5 ~ 7 )
16 回平均: 6.4058 ( 6 ~ 7 )
17 回平均: 6.4907 ( 6 ~ 7 )
18 回平均: 6.5634 ( 6 ~ 7 )
19 回平均: 6.6258 ( 6 ~ 7 )
20 回平均: 6.6793 ( 6 ~ 7 )
21 回平均: 6.7251 ( 6 ~ 7 )
22 回平均: 6.7643 ( 6 ~ 7 )
23 回平均: 6.798 ( 6 ~ 7 )
24 回平均: 6.8269 ( 6 ~ 7 )
25 回平均: 6.8516 ( 6 ~ 7 )
26 回平均: 6.8728 ( 6 ~ 7 )
27 回平均: 6.891 ( 6 ~ 7 )
28 回平均: 6.9065 ( 7 ~ 7 )
29 回平均: 6.9199 ( 7 ~ 7 )
30 回平均: 6.9313 ( 7 ~ 7 )
プログラム
Coupon = 24 #デコ種類数
have = 0 #すでに持っているデコ数
lim = 120 #苗取得回数の上限値
luck_range = [0.1, 0.9] #上位10%~90%の運の場合のデコゲット種類数
を適宜変更し、グラフ描画の際は#目盛り幅(step)は適宜変更
の部分も変えてください。
import numpy as np
import matplotlib.pyplot as plt
import math
Coupon = 24 #デコ種類数
have = 0 #すでに持っているデコ数
lim = 120 #苗取得回数の上限値
A=[0]*(Coupon+1)
for i in range(0,Coupon+1):
A[i] = [0]*(Coupon+1)
for i in range(0,Coupon+1):
for j in range(0,Coupon+1):
if i==j:
A[j][i] = i/Coupon
elif i==j-1:
A[j][i] = (Coupon-i)/Coupon
x = [i for i in range(Coupon+1)]
y = [0]*(Coupon+1)
ave = [0]*(lim+1)
xx = [i for i in range(lim+1)]
PerU = [0]*(lim+1)
PerD = [0]*(lim+1)
luck_range = [0.1, 0.9] #上位10%~90%の運の場合のデコゲット種類数
for jj in range(0,lim+1):
B = np.linalg.matrix_power(A, jj)
for ii in range(0,Coupon+1):
if ii >= have:
y[ii] = B[ii][have]
ave[jj] = sum([i*j for (i,j) in zip(x,y)])
if sum(y[0:ii]) <= 1-luck_range[0] and sum(y[0:ii+1]) > 1-luck_range[0]:
PerU[jj] = ii
if sum(y[0:ii]) <= 1-luck_range[1] and sum(y[0:ii+1]) > 1-luck_range[1]:
PerD[jj] = ii
plt.plot(xx, ave, label= "average")
plt.plot(xx, PerU, label= 'top {} %'.format(100*luck_range[0]))
plt.plot(xx, PerD, label= 'bottom {} %'.format(100-100*luck_range[1]))
plt.xticks(np.arange(0, lim+1, step=10)) #x軸の範囲や目盛り幅。目盛り幅(step)は適宜変更
plt.yticks(np.arange(0, Coupon+1, step=2)) #y軸の範囲や目盛り幅。目盛り幅(step)は適宜変更
plt.grid(linestyle="--")
plt.legend()
plt.show()
print()
print()
print("()内 ","Bottom", round(100-100*luck_range[1],4),"% ~", "Top", 100*luck_range[0], "%")
print()
for i in range(0,lim+1):
print(i, "回平均:", round(ave[i],4), " (", PerD[i], "~", PerU[i],")")
コメント