David Asked:2020-01-20 19:21:54 +0000 UTC2020-01-20 19:21:54 +0000 UTC 2020-01-20 19:21:54 +0000 UTC 在C中用随机数填充数组 772 学习数组,我想到了一个问题,如何创建一个数组并用绝对随机的值填充它?网上有资源提供了解决这个问题的代码,可惜没有解释,但是我想了解是什么函数负责这个问题,有多少不同的方法以及最好的方法是什么,以便这真的是随机的。 c 1 个回答 Voted Best Answer Harry 2020-01-20T20:00:19Z2020-01-20T20:00:19Z 如果是 C++,那么现在标准中包含了一个可靠且高效的库<random>。如果在 C 语言中,那么您只需要使用内置生成器rand()或编写自己的生成器,例如基于 Knuth。当然,这些不是绝对随机数,而是伪随机数。 您的问题不是很精确 - 例如,矩阵中的数字分布应该是什么?统一,正常还是什么? 它通常看起来像 int r[N]; for(int i = 0; i < N; ++i) r[i] = rand(); 好吧,或者说,对于从A到B(但B-A+1不应超过RAND_MAX)范围内的随机数 - r[i] = rand()%(B-A+1) + A; 如果你澄清你的问题 - 你可以澄清答案:)
如果是 C++,那么现在标准中包含了一个可靠且高效的库
<random>
。如果在 C 语言中,那么您只需要使用内置生成器rand()
或编写自己的生成器,例如基于 Knuth。当然,这些不是绝对随机数,而是伪随机数。您的问题不是很精确 - 例如,矩阵中的数字分布应该是什么?统一,正常还是什么?
它通常看起来像
好吧,或者说,对于从
A
到B
(但B-A+1
不应超过RAND_MAX
)范围内的随机数 -如果你澄清你的问题 - 你可以澄清答案:)