擅长:python、mysql、java
<p>生成相加到某个数的数字的一般方法如下:</p>
<pre><code>import random
bob = 6
numbers = sorted(random.sample(range(100+bob), 2))
bob1 = numbers[0]
bob2 = numbers[1] - numbers[0]
bob3 = 100 + bob - numbers[1]
</code></pre>
<p>它在<code>0</code>和<code>100 + bob</code>之间选择两个切点并分配数字,如图所示:</p>
<p><a href="https://i.stack.imgur.com/kKSLz.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/kKSLz.png" alt="enter image description here"/></a></p>
<p>这也将确保所有三个数字具有相同的分布(模拟1m试验):</p>
^{pr2}$
<p>与独立生成的数字相反:</p>
<pre><code>mean 50.050665 27.863753 28.085582
std 29.141171 23.336316 23.552992
</code></pre>
<p>以及它们的直方图:</p>
<p><a href="https://i.stack.imgur.com/pXz8m.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/pXz8m.png" alt="enter image description here"/></a></p>