我知道如何在Python中生成一个范围内的随机数.
random.randint(numLow, numHigh)
Run Code Online (Sandbox Code Playgroud)
而且我知道我可以把它放在循环中以生成n个这些数字
for x in range (0, n):
listOfNumbers.append(random.randint(numLow, numHigh))
Run Code Online (Sandbox Code Playgroud)
但是,我需要确保该列表中的每个数字都是唯一的.除了一系列条件语句之外,还有一种生成n个唯一随机数的直接方法吗?
编辑:重要的是列表中的每个数字都与其他数字不同.
所以
[12,5,6,1] =好
但
[12,5,5,1] =不好,因为数字5出现两次.
我试过用random.randint(0, 100),但有些数字是一样的.是否有方法/模块来创建列表唯一的随机数?
def getScores():
# open files to read and write
f1 = open("page.txt", "r");
p1 = open("pgRes.txt", "a");
gScores = [];
bScores = [];
yScores = [];
# run 50 tests of 40 random queries to implement "bootstrapping" method
for i in range(50):
# get 40 random queries from the 50
lines = random.sample(f1.readlines(), 40);
Run Code Online (Sandbox Code Playgroud) 我用Google搜索了很多但却找不到它.我想知道random.sample()方法的用法以及它给出了什么?什么时候应该使用它和一些示例用法.
TreeSet myNumbers = new TreeSet();
Random randGen = new Random();
for (int i = 1; i <= 16; i++) {
// number generation here
int randNum = randGen.nextInt(16 - 1) + 1;
for (;;) {
if (myNumbers.add(randNum))
break;
else
randNum = randGen.nextInt();
}
Toast.makeText(getApplicationContext(), "" + randNum, 100).show();
}
Run Code Online (Sandbox Code Playgroud)
我想生成1到16之间的随机数,并且不应重复相同的数字.
上面的代码给出了如下输出:
2, 5, 7, 9, 1, 4, 10.4109446, -448831, 98824724, 11, 13, ...
Run Code Online (Sandbox Code Playgroud)
我不知道为什么它给了我不在1-16范围内的随机数,请帮帮我.