避免重复的随机值

2024-04-26 15:27:57 发布

您现在位置:Python中文网/ 问答频道 /正文

this post之后,我可以生成具有固定和的随机整数。但是,我希望避免任何重复的数字(例如下面的示例中的20):

import numpy as np

_sum = 100
n = 5
rnd_array = np.random.multinomial(_sum, np.ones(n)/n, size=1)[0]
rnd_array

>>> array([20, 24, 20, 21, 15])

我怎样才能做到这一点?你知道吗


Tags: importnumpy示例asnpones数字整数
1条回答
网友
1楼 · 发布于 2024-04-26 15:27:57

random.sample返回唯一值的列表(see the docs)。它的调用方式如下:

sample = random.sample(range(100), 5)

编辑:为了使用它来获得固定和,我建议阅读this thread,其中重要的代码是:

from random import*
def f(n,s):
  r=min(s,1)
  x=uniform(max(0,r-(r-s/n)*2),r)
  return n<2and[s]or sample([x]+f(n-1,s-x),n)

相关问题 更多 >