【发布时间】:2012-05-05 12:36:37
【问题描述】:
如果我需要将例如 7 分成随机数量的随机大小的元素,我该怎么做?
所以有时我会得到 [3,4],有时会得到 [2,3,1],有时会得到 [2,2,1,1,0,1]?
我想这很简单,但我似乎无法得到结果。这是我试图在代码方面做的事情(不起作用):
def split_big_num(num):
partition = randint(1,int(4))
piece = randint(1,int(num))
result = []
for i in range(partition):
element = num-piece
result.append(element)
piece = randint(0,element)
#What's next?
if num - piece == 0:
return result
return result
编辑:每个结果数字都应小于初始数字,并且零的数量应不小于分区数。
【问题讨论】:
-
指定随机数元素的含义。你的意思是每个子集的长度都有相同的被选中的概率吗?或者你的意思是每个子集都有相同的被选中的概率?这些意味着非常不同的东西。
-
应该返回 [7] 吗?那么 [0,0,0,0,0,7] 呢?它们可能吗?
-
对不起,我必须澄清一下,不,不 7s..
-
对你可以有多少个零有任何限制吗?
-
哇,好问题!是的,不超过分区数..
标签: python math random integer-division