-
A:rand() 生成的数字是随机的,但就个位数而言,是否随机取决于你的取值范围,比如取值范围是 0-18,它们之间出现每个数字的概率是一样的,但就个位数而言,9 的概率明显小于其他数字。
B:了解了上述问题后,它提出的解决方案是将取值范围划分为10段,每段对应0到9之间的一个数字,如0-18,可以分成对应的数字0,对应的数字1,......
rand() 返回 0-rand max(rand max > = 32767),这对于精度要求不高的程序来说概率差不大,可以这样写。
-
rand()%10 返回 0 9 表示总共 10 个段,这就是书中所说的 srand() 生成 10 个段。
另外,这句话是对算法的改进,因为你也知道 rand()%10 生成一个个位数,也就是书中提到的低十进制数,随机性不好,所以应该改成 rand()% (rand max 10)。
-
总结。 以下是使用 rand() 和 srand() 函数生成三个 [16, 64] 整数以确定是否存在两个相等的数字**(C++ 语言)的示例: cppcopy 代码 include include using namespace std; int main() else return 0;在上面的**中,我们首先使用 srand(time(null)) 函数来设置随机数种子,使得每次运行程序时生成的随机数都不同。
然后,使用 rand() 函数在三个 [16, 64] 之间生成随机整数,以确定是否存在两个相等的数字,最后输出结果。
使用随机函数宽笨 rand( ) 和 srand( ) 生成三个 [16,64] 屏蔽整数,仔细伴随这三个数字的输出,确定这三个整数中是否存在两个相等的数字,有输出“是”,没有输出“否”。
以下是使用 rand() 和 srand() 函数生成三个 [16, 64] 整数以确定是否存在两个相等的数字**(C++ 语言)的示例: cppcopy 代码 include include using namespace std; int main() else return 0;在上面的**中,我们首先使用 srand(time(null)) 函数来设置随机数种子,使得每次运行程序时生成的随机数都不同。 然后,使用 rand() 函数在三个 [16, 64] 之间生成随机整数,以确定是否存在两个相等的数字,最后输出结果为早期。
亲爱的,我看不出你发来的东西,如果你有任何问题,请用文字详细描述,好吗? 谢谢!
-
让我们看一下下面对 rand() 和 srand() 的解释。
1.在标准 C 库中,函数 rand() 可以在 0 rand max 之间生成一个随机数,其中 rand max 是 中定义的整数,与系统相关。
该函数没有输入参数,由表达式 rand() 直接引用; 例如,您可以使用以下语句打印两个随机数:
printf("random numbers are: %i %i",rand(),rand())
因为 rand() 函数是按照指定的顺序生成整数的,所以每次执行上述语句时都会打印相同的两个值,所以 C 语言的随机性并不是真正的随机性,有时被称为伪随机性。
3.为了让程序在每次执行时为新序列生成一个随机值,我们通常通过向随机数生成器提供新的随机种子来做到这一点。 函数 srand() (可以从中播种用于随机数生成器的种子。
只要种子不同,rand() 函数就会产生不同的随机数序列。 srand() 称为随机数生成器的初始值设定项。
所以在你的第一个例子中,种子不起作用。
第二个例子是一般使用随机数生成。
方法一:使用srand函数; srand 函数可以以两种不同的方式使用:直接输入随机数种子并使用系统时间初始化随机数种子; >>>More