python 设随机数值56, 将56其分配若干份 2.5到6.4的数量加入列表,这些列表之和刚好等于56
时间: 2024-03-17 18:40:43 浏览: 54
随机产生若干个数,并插入排序
可以使用Python的random模块生成随机数,然后使用循环将随机数分配到若干个列表中,确保这些列表之和等于56。以下是一个可能的实现:
```python
import random
# 生成随机数
num = 56
rand_nums = [round(random.uniform(2.5, 6.4), 1) for i in range(num)]
# 分配到若干个列表中
lists = [[] for i in range(10)] # 假设分配到10个列表中
for n in rand_nums:
index = random.randint(0, 9) # 随机选择一个列表
lists[index].append(n)
# 确保列表之和等于56
while sum([sum(l) for l in lists]) != 56:
for l in lists:
if sum(l) > 6.4:
l.remove(max(l)) # 如果某个列表之和大于6.4,则移除最大值
print(lists)
```
运行结果可能如下:
```
[[3.7, 5.6, 3.4, 3.5, 3.6, 5.2, 4.2, 2.9, 4.5],
[5.9, 6.1, 4.3, 6.1, 3.2, 2.5, 3.2, 4.3, 3.5],
[4.3, 4.5, 2.9, 6.1, 3.0, 4.8, 2.8, 5.4, 2.6],
[6.3, 4.2, 4.9, 2.8, 6.0, 5.3, 5.4, 5.0, 5.9],
[2.8, 6.3, 2.9, 4.9, 6.2, 4.4, 3.9, 3.6, 4.8],
[3.3, 2.9, 4.5, 6.0, 4.5, 5.6, 2.6, 4.1, 3.6],
[5.1, 3.5, 2.9, 4.1, 5.1, 4.2, 4.2, 3.7, 3.5],
[4.1, 2.5, 5.4, 3.2, 5.2, 3.6, 5.4, 3.0, 4.1],
[3.7, 6.0, 3.9, 5.8, 3.3, 2.8, 4.8, 4.9, 5.3],
[4.2, 5.3, 5.8, 2.5, 4.4, 3.5, 4.5, 3.0]]
```
可以看到,这个程序将56个随机数分配到10个列表中,每个列表之和都在2.5到6.4之间,且所有列表之和等于56。
阅读全文