`
horace20
  • 浏览: 17525 次
  • 性别: Icon_minigender_1
  • 来自: 成都
文章分类
社区版块
存档分类
最新评论

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++大学教程

    1.7 C语言与C++的历史--------------------------------------------------6 1.8 C++标准库---------------------------------------------------------7 1.9 Java、Internet与万维网-------------------------...

    软件课程设计 试验报告 代码 演示

    1基础题_2.由计算机生成简单的四则运算题 1.1 需求分析: 本题主要是要求设计一个可以自动生成四则运算的测试器,并且完全由用户决定出加、减、乘、除哪一种运算题,以及出一位数还是两位数的运算题,同时还要对...

    洗牌发牌模拟系统课程设计报告--C语言

    用随机数开发一个洗牌和发牌模拟程序。... 只能使用C/C++语言,源程序要有适当的注释,使程序容易阅读  学生可自动增加新功能模块(视情况可另外加分)  写出课程设计报告,具体要求见相关说明文档

    你必须知道的495个C语言问题

    第1章 声明和初始化 基本类型 1.1 我该如何决定使用哪种整数类型? 1.2 为什么不精确定义标准类型的大小? 1.3 因为C语言没有精确定义类型的大小,所以我一般都用typedef定义int16和int32。然后根据实际的...

    C++大学教程,一本适合初学者的入门教材(part1)

    第1章 计算机与C++编程简介 1.1 简介 1.2 什么是计算机 1.3 计算机组成 1.4 操作系统的变革 I.5 个人计算、分布式计算与客户/a匠务器计算 l. 6 机器语言、汇编语言和高级语言 1.7 C语言与C++的历史 1.8 C++...

    《你必须知道的495个C语言问题》

    《你必须知道的495个C语言问题》结构清晰,讲解透彻,是各高校相关专业C语言课程很好的教学参考书,也是各层次C程序员的优秀实践指南。 -----------------------------------------------------------------------...

    C++大学教程,一本适合初学者的入门教材(part2)

    第1章 计算机与C++编程简介 1.1 简介 1.2 什么是计算机 1.3 计算机组成 1.4 操作系统的变革 I.5 个人计算、分布式计算与客户/a匠务器计算 l. 6 机器语言、汇编语言和高级语言 1.7 C语言与C++的历史 1.8 C++...

    C语言FAQ 常见问题列表

    如果空指针的内部表达不是 0 会怎么样? o 6.4 NULL 是什么, 它是怎么定义的? o 6.5 在使用非全零作为空指针内部表达的机器上, NULL 是如何定义的? o 6.6 如果 NULL 定义成 #define NULL ((char *)0) 难道不就...

    Qt Creator 的安装和hello world 程序+其他程序的编写--不是一般的好

    3.输入完按下Enter 键确认即可,然后在子菜单中加入“新建(&N)”,确定后, 效果如下图。 4.我们在下面的动作编辑窗口可以看到新加的“新建”菜单。 5.双击这一条,可打开它的编辑对话框。我们看到Icon 项,这里可以...

    c语言编写单片机技巧

    1. C语言和汇编语言在开发单片机时各有哪些优缺点? 答:汇编语言是一种用文字助记符来表示机器指令的符号语言,是最接近机器码的一种语言。其主要优点是占用资源少、程序执行效率高。但是不同的CPU,其汇编语言...

    C 语言编程常见问题解答.chm

    5.2l 怎样判断一个程序是用C编译程序环是用C++编译程序编译的? 5.22 预处理指令#pragma有什么作用? 5.23 #line有什么作用? 5.24 标准预定义宏_FILE_有什么作用? 5.25 怎样在程序中打印源文件名? 5.26 ...

    C语言编程要点

    5.21. 怎样判断一个程序是用C编译程序还是用C++编译程序编译的? 89 5.22. 预处理指令#pragma有什么作用? 89 5.23. #line有什么作用? 90 5.24. 标准预定义宏__FILE__有什么作用? 90 5.25. 怎样在程序中打印源文件名? ...

    你必须知道的495个C语言问题(PDF)

    部表达不是0 会怎么样? . . . . . . . . . . . . . . . . . . . . . . . 22 5.4 NULL 是什么, 它是怎么定义的? . . . . . . . . . . . . . . . . . . 23 5.5 在使用非全零作为空指针内部表达的机器上, NULL 是如何...

    papillon-ndl:巴比龙核数据库

    使用此机制可以为用户提供更大的灵活性,从而可以选择他们所选择的随机数生成器,并且可以将库与随机数生成过程完全断开,从而使发行版知道如何对自己进行采样,但不知道或不假设关于随机数生成的任何事情。...

    数据结构与算法分析C描述第三版

     10.4.1 随机数生成器   10.4.2 跳跃表   10.4.3 素性测试   10.5 回溯算法   10.5.1 公路收费点重建问题   10.5.2 博弈   小结   练习   参考文献  第11章 摊还分析   11.1 一个无关的...

    PaperTest Q&amp;A笔试综述

    1.C语言基础问题… 26 GoogLe+@http://dwz.cn/fada5 CsdN@http://dwz.cn/as2ik 1)关于 const的问题 26 2)浅复制与深复制.…. 3)逆波兰表达式 4)C语言变长参数0 a品 27 5)调用约定… 27 6)寄存器 28 ...

Global site tag (gtag.js) - Google Analytics