我知道如何在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出现两次.
我想生成0到1000之间永远不会重复的唯一随机数(即6不会出现两次),但这并不是像以前的值的O(N)搜索那样.这可能吗?
我试过用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) 我已经搜索了一段时间并且一直在努力寻找这个,我正在尝试生成几个随机的,唯一的数字是C#.我正在使用System.Random,我正在使用DateTime.Now.Ticks种子:
public Random a = new Random(DateTime.Now.Ticks.GetHashCode());
private void NewNumber()
{
MyNumber = a.Next(0, 10);
}
Run Code Online (Sandbox Code Playgroud)
我NewNumber()经常打电话,但问题是我经常会重复数字.有些人建议因为我每次都是随机声明它,它不会产生随机数,所以我把声明放在我的函数之外.有什么建议或比使用更好的方法System.Random?谢谢
我有这个:
#include <iostream>
using namespace std;
int main()
{
int a[256];
int b;
int k;
for (int i = 0; i < 256; i ++){
b = rand()%256;
k = 0;
for (int j = 0; j< i; j ++)
{
if (a[j] == b){k = 1;}
}
if (k == 0){a[i] = b;}
if (k==1){i--;}
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
这将生成一个0到255之间的整数数组.每个整数只在数组中出现一次.我的问题是这段代码需要很长时间才能执行,因为对于每个新的随机整数,我检查整数是否已经在数组中.所以我必须等到0到255之间的所有整数都显示为随机数.我的问题是:
有没有更好的方法来做到这一点?