※ 引述《shyin7089 (希音)》之铭言:
: ※ 引述《z897899878 (ascdge)》之铭言:
: : https://goo.gl/CC8GY5
: : https://imgur.com/zCpLjrS.jpg
: : https://imgur.com/r3fidv7.jpg
: 结论:我觉得与其要用这张收头,还不如乖乖用大奇,这张顶多算是让对手进斩杀线的手
: 段,毕竟还有其他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