C/C++怎样生成确定范围的随机数(如[-1,1])

博客介绍了三种随机数生成函数。一是生成[-1,1]的随机数,二是生成low到up之间的随机正整数,三是生成low到up之间的随机实数,还给出了生成特定范围随机数的示例,并提及简单情况下的随机数获取情况。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、生成[-1,1]的随机数

float GetRand()
{
    return 2 .0 * rand() / RAND_MAX - 1.0;
}

    注意那个2.0不能写成2了,那样的话,你就真……
2、生成low到up(low < up)之间的随机正整数

unsigned int GetRandomInteger(int low, int up)
{
   unsigned int uiResult;
 
   if (low > up)
   {
      int temp = low;
      low = up;
      up = temp;
   }
 
   uiResult = (rand() % (up - low + 1)) + low;
 
   return uiResult;
}

    这里不用多说,很简单。
3、生成low到up之间的随机实数

float GetRandomReal(float low, float up)
{
   float fResult;
   
   if (low > up)
   {
      int temp = low;
      low = up;
      up = temp;
   }
   
   fResult = low + (up - low) * rand() / (RAND_MAX + 1);
   
   return fResult;
}

    这里我举个例子予以说明,假设我们欲取得[-50, 100]之间的随机数,即low=-50,up=100。语句
(up - low) * rand() / (RAND_MAX + 1)
是不是获得的正式0到150之间的随机数,再加上-50不是就获得-50到100之间的随机数了吗!其实这里取不到边界值,要取边界值很简单,RAND_MAX不加1即可。
    当然上边说的"随机数"只是在我们要求简单的情况下可取,这个你懂的!
--------------------- 
作者:KPLives 
来源:优快云 
原文:https://blog.youkuaiyun.com/horace20/article/details/6659538 
版权声明:本文为博主原创文章,转载请附上博文链接!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值