我是靠谱客的博主 无私春天,最近开发中收集的这篇文章主要介绍C/C++怎样生成确定范围的随机数(如[-1,1]),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

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即可。

当然上边说的"随机数"只是在我们要求简单的情况下可取,这个你懂的!


最后

以上就是无私春天为你收集整理的C/C++怎样生成确定范围的随机数(如[-1,1])的全部内容,希望文章能够帮你解决C/C++怎样生成确定范围的随机数(如[-1,1])所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(46)

评论列表共有 0 条评论

立即
投稿
返回
顶部