如何生成4个随机数,这4个和必须是100
答
我认为,这是最简单的方法来做到这一点:
1.生成1之间3个随机数到100
2.计算总和
3.并生成4号 - 添加计算的总和100
+0
如果前三个数字的总和是115,该怎么办? –
+0
再次生成...意味着检查天气总和小于100,如果不再生成它。或者我们可以很好地取负值 –
+0
在重复的情况下,执行可能需要很长时间,但是如果我们接受否定数字,那么它很好。但接受的答案是有一个伟大的逻辑。但感谢您的建议和尝试.... –
答
BOOL flag = false;
int r,r1,r2,r3;
while (!flag) {
r = arc4random_uniform(100);
r1 = arc4random_uniform(100);
r2 = arc4random_uniform(100);
r3 = arc4random_uniform(100);
if (r+r1+r2+r3 == 100) {
flag = true;
}
}
NSLog(@"%d %d %d %d",r,r1,r2,r3);
提示:仅生成从0-100 3张的随机数,如果总3更比100,再次生成,第4个是100减去其他3:D我想听到更好的主意,我想 – Tj3n
选中此链接(http://math.stackexchange.com/questions/1276206/method-of-生成随机数,即总和为100是这个真正的随机)。它可以帮助你找到一个合适的算法。 – Saraswati