1)C++中的rand()函数可以得到一个0-RNDMAX之间的随机数,Randmax是一个宏,你可以把它理解成65535;
2)使用rand()函数必须添加头文件,代码如下:
#include <cstdlib>
3) 得到0或1的随机数代码如下:
int num=rand()%2;
因为对2求余的结果不是0就是1,因此雹察上面这腊如句代码就得到了一个0或1的随轮肆启机数。
C语言中生成1个0到1的随机数可以执行语句:float b=rand()/(RAND_MAX+1.0)
解析:
标准C库中函数rand()可以生成0~RAND_MAX之间的一个随机数,其中RAND_MAX 是stdlib.h 中定义的一个整数,它与系统有关。rand()函数没有输入参数,直接通过表达式rand()来引用;
用函数rand取得的随机数除以(RAND_MAX+1.0),即可确保得到的结果在0到1之间。ISO IEC 9899 2011 (C11)标准中未规定 RAND_MAX 的具体数值。但该标准规定了RAND_MAX 的值应至少为32767。编程的时候,不应该对 RAND_MAX 的具体数值做任何假设。
扩展资料:
相关说明:
1、因为rand()函数是按指定的顺序来产生整数,因此每次执行上面的语句都手明打印相同的两个值,所以说C语言的随机并不是真正意义上的随机。
2、为了使程序在每次执行时都能生成一个新序列的随机值,我们通常通过为随机数生成器提供一粒新的随机种子。函数 srand()(来自stdlib.h)可以为随机数生成器播散种子。只要种子不同rand()函数就会产生不同的随机数序列。srand()称为随机数生成器的初始化器。
3、随机种子(Random Seed)是计算机专业槐薯埋术语,一种以随机数作为对象的以真随机数(种子)为初始条件的随机数。一般计算机的随机数都是伪随机数,以一个真随机数(种子)作为初始条件,然后用一定的算法不停迭代产生随机数。铅蚂
参考资料来源:百度百科-随机函数
参考资料来源:百度百科-RAND_MAX
#include <iostream>using namespace std
int main(){
char key[64]
int seed
cout <<升埋和 "请输入一个数字"<<endl
cin >> seed
srand(seed) 吵盯 //输入一个随机种子
for (int i = 0 i<64 i++){
key[i] = (char)(rand() % 2 + '0')
//rand()随机生成数字然后模2,再强制转换类型
}
cout << "密钥为: " << endl
for (int i = 0 i<64 i++){
cout << key[i]
}
cout << endl
system("pause"液枝)
return 0
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)