版权声明:本文为CSDN博主「candyliuxj」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/candyliuxj/article/details/4396666

一、rand()和srand()的关系

  rand()和srand()要一起使用,其中srand()用来初始化随机数种子,rand()用来产生随机数。

  因为默认情况下随机数种子为1,而相同的随机数种子产生的随机数是一样的,失去了随机性的意义,所以为使每次得到的随机数不一样,用函数srand()初始化随机数种子。srand()的参数,用time函数值(即当前时间),因为两次调用rand()函数的时间通常是不同的,这样就可以保证随机性了。

二、产生一定范围随机数的通用表示公式

  要取得[a,b)的随机整数,使用 (rand() % (b-a))+ a  (结果值含a不含b)。
  要取得[a,b]的随机整数,使用 (rand() % (b-a+1))+ a  (结果值含a和b)。
  要取得(a,b]的随机整数,使用 (rand() % (b-a))+ a + 1  (结果值不含a含b)。

  (总的来说,通用公式:a + rand() % n ;其中的a是起始值,n是整数的范围)

   要取得a到b之间的随机整数,另一种表示 a + (int)b * rand() / (RAND_MAX + 1)

  要取得0~1之间的浮点数,可以使用 rand() / double(RAND_MAX)

最新文章

  1. 列表组件抽象(2)-listViewBase说明
  2. 自定义View之onMeasure()
  3. python迭代器与生成器
  4. ERP客户关系渠管理(二十)
  5. tree 查询出数据遍历tree
  6. SAP初级书籍(PM相关)
  7. JS 公共方法
  8. android 访问SMS短信收件箱
  9. uva 10056
  10. VIM 拼写/spell check
  11. My way on Linux - [虚拟化&云计算] - 云计算概述&KVM虚拟化基础
  12. [Angular Tutorial] 6-Two-way Data Binding
  13. node源码详解(四) —— js代码如何调用C++的函数
  14. 九度OJ 1017 还是畅通工程
  15. Jersey+mybatis实现web项目第一篇
  16. mysql中出现Unknown column 'qwe' in 'field list'的错误
  17. springboot的lombok
  18. 题解-AtCoder Code-Festival2017qualA-E Modern Painting
  19. 【emWin】例程十三:字库放到外部存储器
  20. mysql的多表查询join

热门文章

  1. springmvc之静态资源访问不到 -记一次惨痛的经历
  2. Gin-Go学习笔记五:Gin-Web框架 文件的操作
  3. uni-app通过判断接口403跳转登录页面的问题
  4. android studio学习----Failed to resolve: com.android.support:design:22.1.1
  5. 使用 Spring 配置动态数据源实现读写分离
  6. apache2.4
  7. 使用Qemu运行Ubuntu文件系统 —— 搭建SVE学习环境(2)
  8. Sigmoid函数与Softmax函数的理解
  9. 中国网络安全行业分类及全景图2019H1
  10. pycharm与github的使用