c - 随机数创建

标签 c random

我需要在大小为 5000 arr[5000] 的数组中生成 100 随机索引。我认为 rand() 会使用更多 CPU,所以我不想将它循环 100 次。我只想调用它一次并想要具有随机数组索引的机制。我的想法是为前 20 个索引设置随机值,并生成一个偏移量并继续添加到生成的随机值。即如果 10 是前 20 个索引的随机值,那么如果偏移量是 6 那么我的随机数将是 10,16,22,28 ...等等 你认为这是个好主意吗?你能推荐其他的吗?谢谢。

最佳答案

这是一个可怕的想法,结果值根本不是“随机的”。

只需执行一个循环并为您需要的每个数字调用 rand()。它不会“使用更多 CPU”(超过什么?),它会没事的。

另外,当然要注意 rand() 充其量只是一个典型的伪随机生成器,但仍然比您的方法要好。

关于c - 随机数创建,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14219337/

相关文章:

c - 程序fork 4个子进程,每个子进程都会做不同的操作

c - 为什么下面的代码中不是 a==0 呢?

带组的 SQL 随机样本

javascript - 为什么我的脚本中会遇到这个 if 语句? JS

python - 如何将随机数分配给变量?

C - GTKUibuilder - Glade - g_signal_connect 错误

c++ - 正则表达式匹配空格,但不在 "strings"

java - 回调作为 C 结构的参数 - Java 包装器生成

ios - 基于另一个 String iOS 生成一个唯一的数字字符串

php - MySQL从300行中快速选择20行