※ 引述《shyin7089 (希音)》之銘言:
: ※ 引述《z897899878 (ascdge)》之銘言:
: : https://goo.gl/CC8GY5
: :
: :
: 結論:我覺得與其要用這張收頭,還不如乖乖用大奇,這張頂多算是讓對手進斬殺線的手
: 段,畢竟還有其他3/3+X/X跟補血。
結果他是取總和固定時每個(X,Y,Z)三元組機率一樣的分布也是有可能的啊
code也不難,令N為共鳴次數
int N = 20;
int all = (N + 1) * (N + 2) / 2;
int target = (int) (Math.random() * all);
int x = -1, y = -1, z = -1;
int sum = 0;
for (int x_ = 1; sum < all; x_++) {
sum += x_;
if (sum > target) {
x = N - x_ + 1;
y = sum - target - 1;
z = N - x - y;
break;
}
}
簡化版:
int t=(int)(rand()*((N+1)(N+2)/2));
X=N-(int)((sqrt(1+8t)-1)/2);
Y=(int)(Math.random()*(N-X+1));
Z=N-X-Y;
當N=20時,20點糊到對面臉上機率=23/23兵兵機率=自己滿血奶0(x)機率=1/231