美文网首页
C++中rand()函数的用法

C++中rand()函数的用法

作者: 读书悟到 | 来源:发表于2020-10-24 21:26 被阅读0次

    1、rand()不需要参数,它会返回一个从0到最大随机数的任意整数,最大随机数的大小通常是固定的一个大整数。

    2、如果你要产生0~99这100个整数中的一个随机整数,可以表达为:int num = rand() % 100;

        这样,num的值就是一个0~99中的一个随机数了。

    3、如果要产生1~100,则是这样:int num = rand() % 100 + 1; 

    4、总结来说,可以表示为:int num = rand() % n +a;

        其中的a是起始值,n-1+a是终止值,n是整数的范围。

    5、一般性:rand() % (b-a+1)+ a ;    就表示  a~b 之间的一个随机整数。

    6、若要产生0~1之间的小数,则可以先取得0~10的整数,然后均除以10即可得到“随机到十分位”的10个随机小数。

        若要得到“随机到百分位”的随机小数,则需要先得到0~100的10个整数,然后均除以100,其它情况依 此类推。

    限制随机数的范围

    有时程序需要一个特定范围内的随机数。要将随机数的范围限制在 1 和某个最大值 max 之间的整数,可以使用以下公式:

    number = rand() % max + 1;

    例如,要生成 1〜6 的随机数来代表骰子的点数,则可以使用以下语句:

    dice = rand() % 6 + 1;

    这里简单介绍一下其工作原理。求余数运算符(%)可以获得整除之后的余数。当使用通过 rand 函数返回的正整数除以6时,余数将是 0〜5 的数字。因为目标是 1〜6 的数字,所以只需要给余数加 1 即可。

    这个想法可以扩展到任意范围内的随机数,其通用公式如下:

    number = (rand()%(maxValue - minValue +1)) + minValue;

    在上述公式中,minValue 是范围内的最小值,而 maxValue 则是范围内的最大值。例如,要获得 10〜18 的随机数,可以使用以下代码给变量 number 赋值:

    const int MIN_VALUE = 10;

    const int MAX_VALUE = 18;

    number = rand() % (MAX_VALUE - MIN_VALUE + 1) + MIN_VALUE;

    在上述代码中,(MAX_VALUE - MIN_VALUE + 1)的值为 9,这是目标范围内整数的个数。余数运算符(%)返回的值是 0〜8 的数字,再用它加上 MIN_VALUE(也就是 10),即可获得 10〜18 的随机数。

    相关文章

      网友评论

          本文标题:C++中rand()函数的用法

          本文链接:https://www.haomeiwen.com/subject/ibvwmktx.html