每次产生不一样的随机数方法

有的是后我们需要计算机产生一些随机的数字,但是当我们运行的时候会发现他每次产生的随机数可能会是一样的,这是因为计算机产生的是伪随机数。

计算机的运行过程是一个确定的过程,每一条指令都是确定,因此从根本上来讲,计算机产生不了真正意义上的随机数。

举个简单的例子,当我们要产生十个随机的数,计算机可以循环快速的给出0、1、2、3、4、5、6、7、8、9、0、1……这样的一个数列,这个数列并不是随机的,而是有规律的(所以才叫做伪随机),只有我们人为地介入时(比如说我们按下鼠标,键盘等等)这是随机的,然后得出的数字就是随机数了,这个过程我们挑选出来的数字好像是随机的,但并非完全随机。

and()函数就是给出一列数值(乱序且固定的数值),所以属于伪随机数。只是机器执行到rand()函数的时间点是随机的,才让我们感觉执行结果是随机的一样。


要产生每次都不同的随机数要先产生一个随机种子srand(unsigned int);一般是填 time(0); srand((unsigned int)time(0));

rand();就可以了。 配合 % 和 + 可以让随机数符合自己想要的范围。

如果要取一个 0 - 99的数;就用 rand() % 100


如取50 - 99之间的数, 就用 rand() % 50 + 50

随机产生一些1—100之间的整数,直到产生的数为50为止。
int main(int argc,char *argv[] )
{
    srand((unsigned int)time(0));
    while(1)
    {
        if(rand()%100 == 50)
        {
            exit(1);
        }
        else
        {
            printf("%d\n",rand()%100);
        }
    }

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值