c语言中rand()函数用来生成随机数,范围是0-30000+的一个整数,如果不加任何设置,每次的确可以生成随机数,每次生成的数字也不一样,但是问题来了,我们来生成10个随机数测试一下,如图所示
c语言利用时间戳生成随机数
这是输出结果
c语言利用时间戳生成随机数
无论调试多少次,会发现十个数字永远是他们十个。
那么如何解决这个问题呢,我们可以使用MSDN来研究一下rand()函数
c语言利用时间戳生成随机数
这句里面的rand-max就是指的生成随机数的最大值也就是三万多的那个数,后面说的是在调用rand()函数前,需要使用srand函数来设置随机数的起点,我们来试一下看看结果,括号里面的数可以随便设置,跟之前的结果确实不同,但是还是一样的,只要srand里面的数字确定后,每次调试的结果都是相同的
c语言利用时间戳生成随机数
c语言利用时间戳生成随机数
所以问题的关键就来了,我们想要每次的rand生成的随机数不同,如果让srand里面的那个数也不停的变化,是不是就可以解决问题了呢,所以难道要套娃了吗???来试试
c语言利用时间戳生成随机数
这就是套娃结果,但是问题还是那个问题,每次调试都是这个结果,套娃失败!为什么呢,因为这里的K值是由rand生成,而前面我们也试过了,rand生成的K值也是固定的十个数,所以关键是要姐解决这个k值,如果k值每时每刻都不同,那么生成的随机数也就不可能相同了!所以这里的k值我们就用到了时间戳!!!!!不知道时间戳是啥可以百度一下!!就是一个随时间一直变化的一个值
如图所示:
c语言利用时间戳生成随机数
c语言利用时间戳生成随机数
srand里面的放上这句话就可以获得时间戳随机值,srand是设置随机数初始值的,所以放在循环外面就可以了,也就是设置一次就行了,这样每次的结果都不相同了。

后面不知道怎么描述了,写的有点乱了

更多相关文章

  1. Python查询迪斯尼\环球公园\海洋世界的等待时间
  2. 大数据最大的问题:数据清理太花时间
  3. 计算时间差,你的方式或许不是最佳实践!
  4. 带有过期时间的LRU实现(java版)
  5. 不看教程,可能更浪费你的时间
  6. 抽点时间写篇文章都是享受
  7. JDK 1.8 中的日期与时间 API 一览
  8. 4: zabbix5.0自动发现网站域名并监控访问状态和请求时间
  9. 分享 1 个一次性免费获得极客时间 2-3 个课程的办法

随机推荐

  1. TextView的android:maxHeight,android:min
  2. android游戏编程的学习笔记(以植物大战僵
  3. TextView 文字加图片显示效果
  4. android 使控件透明
  5. Android中对NFC的实现代码分布在如下几个
  6. android定位布局
  7. android layout_weight了解
  8. Android修改自己程序字体的方法详解
  9. Android:解决RadioGroup中RadioButton的图
  10. Android 常用组件,的常用类型