c++如何随机生成0和1

c++如何随机生成0和1,第1张

可以通过对随机数的结果对2求余来得到0和1。

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

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12384795.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存