Bub*_*ter 1 python random integer sum
假设鲍勃 = 6
我想创建 3 个总和为 106 的随机整数(100 + bob 的原始整数。它可能是 10,但在本例中是 6)。
我有:
from random import *
bob = 6
bob1 = (randint(0,100))
bob2 = (randint(0,100))
bob3 = (randint(0,100))
print bob1
print bob2
print bob3
Run Code Online (Sandbox Code Playgroud)
我可以生成整数,但如何确保它们的总和 = 100 + 原始整数?(共 106 个)。如果总和不 = 106,那么我希望脚本继续执行,直到达到 106。
生成加起来等于某个数字的数字的一般方法如下:
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]
Run Code Online (Sandbox Code Playgroud)
0它选择和之间的两个分割点100 + bob并分配数字,如下所示:
这还将确保所有三个数字具有相同的分布(通过 1m 次试验进行模拟):
mean 34.700746 35.639730 35.659524
std 24.886456 24.862377 24.861724
Run Code Online (Sandbox Code Playgroud)
与相关生成的数字相反:
mean 50.050665 27.863753 28.085582
std 29.141171 23.336316 23.552992
Run Code Online (Sandbox Code Playgroud)
以及他们的直方图:
| 归档时间: |
|
| 查看次数: |
1854 次 |
| 最近记录: |