[我正在将一个人口编号分成不同的矩阵,并希望现在使用随机数来测试我的代码.]
快速提问的人,感谢您的帮助 -
如果我使用;
100*rand(9,1)
Run Code Online (Sandbox Code Playgroud)
使这9个数字加到100的最佳方法是什么?
我想要0到100之间的9个随机数,加起来为100.
是否有内置命令执行此操作,因为我似乎无法找到它.
第一次来到Stackoverflow.我希望有人可以帮助我搜索算法.
我需要在给定范围内生成N个随机数,总计达到给定的总和!
例如:Generatare 3总计11的数字.
范围:
此考试的生成数字可以是:2,5,4.
我已经搜索了很多,无法找到我需要的解决方案.
有可能像这样生成类似于N个常数和unsing模数的数: 产生随机数,其中和是常数 但是我无法用范围完成.
或者通过生成N个随机值,将它们相加,然后将常数和除以随机和,然后将每个随机数乘以此处提出的商.
主要问题,为什么我不能采用这些解决方案是我的每个随机值都有不同的范围,我需要使用范围均匀分布值(例如,没有频率出现在最小值/最大值,如果我切断值,则会发生这种情况它小于/大于最小/最大值).
我还想到了一个灵魂,取一个随机数(在那个例子中,值1,2或3),生成该范围内的值(在最小值/最大值或最小值与其余值之间,取决于哪个更小) ),减去我给定金额的数量,并保持这一点,直到一切都分配完毕.但那将是非常无效的.我真的可以使用一种修复算法运行时的方法.
我正试着用Java运行.但是那个Info不是那个importend,除非有人已经准备好了解决方案.我只需要一个算法的描述或想法.
如何生成1到n个随机数(大于0的正整数),它们总和恰好是n?
如果n = 10,则示例结果:
10
2,5,3
1,1,1,1,1,1,1,1,1,1
1,1,5,1,1,1
Run Code Online (Sandbox Code Playgroud)
每个排列应该具有相同的发生概率,但是,我不需要它在数学上是精确的.因此,如果由于某些模误差导致概率不同,我不在乎.
有没有这个算法?我只找到了数值固定的算法(即,给我精确的m个随机数,总计n).