博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ios随机数
阅读量:6150 次
发布时间:2019-06-21

本文共 1337 字,大约阅读时间需要 4 分钟。

ios 随机数生成

字数612 阅读3037 评论1 
  • 最近一直使用随机数,为了以后方便查阅,总结一下:
    • 在C中提供了rand()、srand()、random()、arc4random()几个函数。
使用 arc4random 生成随机数
  • 1.1 获取一个随机整数范围在:[0,100)包括0,不包括100
    int x = arc4random() % 100;
  • 1.2 获取一个随机数范围在:[100,200],包括100,包括200
    int y =100 +  (arc4random() % 101);
  • 1.3抽取方法

    • 获取一个随机整数,范围在[from,to],包括from,包括to
    -(int)getRandomNumber:(int)from to:(int)to{  return (int)(from + (arc4random() % (to – from + 1))); }

使用 rand() 生成随机数

  • 注意:

    • 在标准的C库中函数rand()可以生成0~RAND_MAX之间的一个随机数,其中RAND_MAX 是stdlib.h 中定义的一个整数,它与系统有关。
    • rand()函数没有输入参数,直接通过表达式rand()来引用;
      printf("Random numbers are: %i %i\n",rand(),rand());
    • 伪随机数:
      • 因为rand()函数是按指定的顺序来产生整数,因此每次执行上面的语句都打印相同的两个值,所以说C语言的随机并不是真正意义上的随机,有时候也叫伪随机数
    • 为了使程序在每次执行时都能生成一个新序列的随机值,
      • 我们通常通过为随机数生成器提供一粒新的随机种子。函数 srand()(来自stdlib.h)可以为随机数生成器播散种子。只要种子不同rand()函数就会产生不同的随机数序列。
      • srand()称为随机数生成器的初始化器。
  • 用rand()随机生成在[x,y]内的整数

    /*k即为所求范围内随机生成的数,rand()%a的结果最大为a-1*/int k= x+rand()%(y-x+1)

比较

  • rand()和random()实际并不是一个真正的伪随机数发生器,在使用之前需要先初始化随机种子,否则每次生成的随机数一样。

  • arc4random() 是一个真正的伪随机算法,不需要生成随机种子,因为第一次调用的时候就会自动生成。而且范围是rand()的两倍。在iPhone中,RAND_MAX是0x7fffffff (2147483647),而arc4random()返回的最大值则是 0x100000000 (4294967296)。

  • 精确度比较:arc4random() > random() > rand()。

//  1. rand(),不加这句每次产生的随机数不变srand((unsigned)time(0));         int i = rand() % 100; // 2. random() srandom(time(0)); int i = random() % 100; // 3. arc4random() int i = arc4random() % 100 ;

转载地址:http://hggya.baihongyu.com/

你可能感兴趣的文章
Olap学习笔记
查看>>
Codeforces Round #431 (Div. 1)
查看>>
如何进行数组去重
查看>>
将标题空格替换为 '_' , 并自动复制到剪切板上
查看>>
List Collections sort
查看>>
Mysql -- You can't specify target table 'address' for update in FROM clause
查看>>
使用局部标准差实现图像的局部对比度增强算法。
查看>>
2017-2018-1 20165313 《信息安全系统设计基础》第八周学习总结
查看>>
《代码敲不队》第四次作业:项目需求调研与分析
查看>>
菜鸡互啄队—— 团队合作
查看>>
HttpWebRequest的GetResponse或GetRequestStream偶尔超时 + 总结各种超时死掉的可能和相应的解决办法...
查看>>
SparseArray
查看>>
第二章
查看>>
android背景选择器selector用法汇总
查看>>
[转]Paul Adams:为社交设计
查看>>
showdialog弹出窗口刷新问题
查看>>
java
查看>>
Vue.js连接后台数据jsp页面  ̄▽ ̄
查看>>
关于程序的单元测试
查看>>
mysql内存优化
查看>>