Moe*_*der 7 c random algorithm
在C中,如何获得n个数组(在我的情况下每个0x00-0xFF),其中总和在给定范围内0..k
?
在几乎复制C++多个随机数加起来等于一定数量针对特定款项,但对我来说总和可之间的任何东西0..k
.
您需要指定所需的随机数分布。
如果没有进一步的要求,我会建议以下之一:
(1)
如果随机数范围有上限m ,请使用min(ka[1]-... m)作为间隔的上限。
缺点:你会得到很多小数字,而只有几个大数字。
(2)
缺点:这种方式不太可能获得大量数据。如果需要整数,则由于舍入误差,数字之和与k之间可能存在差距。
我认为使用选项(2)你会得到“更好”的数字,但如上所述,这取决于要求。