C++随机数

和自甴很熟 提交于 2020-02-11 17:19:40

C++中的随机数(伪随机)产生不像其他语言直接通过Random函数生成,需要使用 cstdlib库中rand()函数。

产生  [a,n)  的随机数通用公式:a + rand() % n;其中的a是起始值,n是整数的范围。

一般为了产生不重复的随机数,会使用srand()函数设置种子,会以时间为种子。

srand((int)time(0));//产生随机数种子,srand()函数

 例1

void Bank::Setaccount()
{
    srand((int)time(0));//产生随机数种子,srand()函数
    long tempcard = 0;
    for(int i = 0; i < 11; i++){
        tempcard  += tempcard*10 + rand() % 10;//要取得[0,n)  就是rand() %n     表示 从0到n-1的数
        /*其他的随机数的范围通式
        产生一定范围随机数的通用表示公式是:
        要取得[0,n)  就是rand()%n     表示 从0到n-1的数
        要取得[a,b)的随机整数,使用(rand() % (b-a))+ a;
        要取得[a,b]的随机整数,使用(rand() % (b-a+1))+ a;
        要取得(a,b]的随机整数,使用(rand() % (b-a))+ a + 1;
        通用公式:a + rand() % n;其中的a是起始值,n是整数的范围。
        要取得a到b之间的随机整数,另一种表示:a + (int)b * rand() / (RAND_MAX + 1)。
        要取得0~1之间的浮点数,可以使用rand() / double(RAND_MAX)。
        */
        if (tempcard < 0) i--;
    }
    account = tempcard;
    cout << "您的账号是: " << account << endl;

}

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!