我需要在大小为 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/