相关疑难解决方法(0)

如何获得随机数

我希望在1到100之间得到20个随机数,但这个数字不应重复....

更新: 如果我有20个名字,其中任意5个随机逐个选择,但名称来一次不再被调用.....

.net c# random

0
推荐指数
2
解决办法
1763
查看次数

获得10000多个独特的随机数(性能)

可能重复:
创建无重复的随机数序列

我想写一个只使用数字作为短字符串的URL缩短器.

我不想数数,我希望下一个新数字是随机的(或伪随机).

首先,思想算法看起来像这样(伪代码):

do 
{
 number = random(0,10000)
}
while (datastore.contains(number))

datastore.store(number, url)
Run Code Online (Sandbox Code Playgroud)

此实现的问题是:由于数据存储区包含更多数字,因此循环将多次执行的可能性越大.性能会随着时间的推移而降低.

是否有更好的方法来获取尚未使用的随机数?

random algorithm performance

0
推荐指数
1
解决办法
553
查看次数

生成一个rand()%25,其中每个数字只能出现一次

我正在尝试使用数组来修正一个程序,它可以获得0到24之间的随机数,但它们只能出现一次.我知道如何生成随机数,我只是坚持如何检查数字中是否已存在数字.我尝试生成一个新的rand()%25并将其与数组中的占位符进行比较,如果它不存在则将新的随机数放在那里,但它不起作用.

 void MultiU (){
         int size = 5;
         int array[5];
        srand(time(0));

        for (int index = 0; index < size; index++){
           exists[index] = rand() %25;
          }
    }
Run Code Online (Sandbox Code Playgroud)

我是使用数组和rand()进行编程的新手.我希望有人可以指导我朝着正确的方向前进.

c++ arrays

0
推荐指数
2
解决办法
1457
查看次数

如何生成唯一的随机数(不重复)?

我正在尝试编写一个随机选择数字并将它们添加到列表中的代码random_numbers,但是如果已经生成了一个随机数,则代码会检测到并用另一个数字替换该数字,直到每个数字都不同。

import random
random_numbers = []
for x in range(11):
Run Code Online (Sandbox Code Playgroud)

这部分生成一个随机整数并将其附加到列表中random_numbers

    random_numbers.append('[q' + str(random.randint(1, 11)) + ']')
Run Code Online (Sandbox Code Playgroud)

这部分应该遍历列表并检查生成的随机数是否已经生成,并替换它:

    for item in range(len(random_numbers)):
        if random_numbers[x] == random_numbers[item]:
            random_numbers[x] = '[q' + str(random.randint(1, num_of_qs_in_file)) + ']'

print(random_numbers)
Run Code Online (Sandbox Code Playgroud)

输出会有所不同,但几乎总是列表多次具有相同的整数。有人可以帮忙吗?

python random for-loop

0
推荐指数
1
解决办法
9376
查看次数

标签 统计

random ×3

.net ×1

algorithm ×1

arrays ×1

c# ×1

c++ ×1

for-loop ×1

performance ×1

python ×1