Use*_*own 0 python random generator
我试图创建一个生成器,它将寻找1到m范围内的n个随机整数.下面的代码完全相同,但它有时会返回先前打印过的数字的两倍.有谁知道我怎么编辑它?另一件事,但更设计的是,我如何订购我的打印,以便数字有序?
import random
def hwset(m,n):
i=0
for i in range(0,n):
print random.randrange(1,m+1,1)
Run Code Online (Sandbox Code Playgroud)
如果你想n
在1和1之间的所有整数中产生一个数字样本m
,请将该random.sample()
函数与一个xrange()
对象一起使用(range()
如果你在Python 3上,则使用它):
def hwset(m, n):
return random.sample(xrange(1, m + 1), n)
Run Code Online (Sandbox Code Playgroud)
如果您希望对这些数字进行排序,只需对结果进行排序:
sorted_hwset = sorted(hwset(m, n))
Run Code Online (Sandbox Code Playgroud)
演示:
>>> import random
>>> def hwset(m, n):
... return random.sample(xrange(1, m + 1), n)
...
>>> hwset(100, 5)
[25, 58, 2, 29, 57]
>>> hwset(100, 5)
[84, 55, 80, 65, 47]
>>> sorted(hwset(100, 5))
[1, 25, 77, 81, 92]
>>> sorted(hwset(100, 5))
[34, 46, 59, 66, 76]
Run Code Online (Sandbox Code Playgroud)