iOS 有如下四种随机数方法,下面以产生 [0,100) 的随机数为例:

1. srand((unsigned)time(0));  //不加这句每次产生的随机数不变

int i = rand() % 100;

2. srandom(time(0));

int i = random() % 100;

3. int i = arc4random() % 100;

4. int i = arc4random_uniform(100)

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

arc4random()和arc4random_uniform(u_int32_t)是一个真正的伪随机算法,不需要生成随机种子,因为第一次调用的时候就会自动生成。而且范围是rand()的两倍。

在iPhone中,RAND_MAX是0x7fffffff (2147483647),而arc4random()或arc4random_uniform(u_int32_t)返回的最大值则是 0x100000000 (4294967296)。

精确度比较:arc4random_uniform(u_int32_t) = arc4random()  >  random()  >  rand()。

iOS 中生成随机数的4种方法(rand、random、arc4random、arc4random_uniform)相关推荐

  1. ios 中生成随机数

    ios 中生成随机数 ios 有如下三种随机数方法: 1.    srand((unsigned)time(0));  //不加这句每次产生的随机数不变         int i = rand() ...

  2. java 生成随机数_Java 生成随机数的 N 种方法

    原标题:Java 生成随机数的 N 种方法 www.baeldung.com/java-generating-random-numbers 1.引言 本文将探讨用 Java 生成随机数的不同方法. 2 ...

  3. python生成随机数方法_详解用python生成随机数的几种方法

    今天学习了用python生成仿真数据的一些基本方法和技巧,写成博客和大家分享一下. 本篇博客主要讲解如何从给定参数的的正态分布/均匀分布中生成随机数以及如何以给定概率从数字列表抽取某数字或从区间列表的 ...

  4. C#生成随机数的三种方法

    随机数的定义为:产生的所有数字毫无关系. 在实际应用中很多地方会用到随机数,比如需要生成唯一的订单号. 在C#中获取随机数有三种方法: 一.Random 类 Random类默认的无参构造函数可以根据当 ...

  5. IOS中Json解析的四种方法

    2019独角兽企业重金招聘Python工程师标准>>> 作为一种轻量级的数据交换格式,json正在逐步取代xml,成为网络数据的通用格式. 有的json代码格式比较混乱,可以使用此& ...

  6. 【转】IOS中Json解析的四种方法

    原文网址:http://blog.csdn.net/enuola/article/details/7903632 作为一种轻量级的数据交换格式,json正在逐步取代xml,成为网络数据的通用格式. 有 ...

  7. Java 生成随机数的 N 种方法

    (给ImportNew加星标,提高Java技能) 编译:ImportNew/覃佑桦 www.baeldung.com/java-generating-random-numbers 1.引言 本文将探讨 ...

  8. java 生成随机数_不会生成随机数?我们来看看java生成随机数的10种方法

    1.引言 本文将探讨用 Java 生成随机数的不同方法. 2.Java API Java API 提供了几种随机数生成方法.让我们一起来了解一下. 2.1.java.lang.Math Math 类中 ...

  9. ios json包含html,IOS中Json解析的四种方法

    发现自己有很多文档,所以现在整理一下,以防忘了... 作为一种轻量级的数据交换格式,json正在逐步取代xml,成为网络数据的通用格式. 有的json代码格式比较混乱,可以使用此"http: ...

最新文章

  1. 1022.在线视频—IT售前营销讲座(三)售前情报、策划和资源协调
  2. Docker 官方公共仓库 Docker Hub 遭攻击,恐19 万用户信息泄露;Intel 10核心新品要现身了?...
  3. python-字符串数据类型-0222
  4. 鱼池正式宣布支持EIP-1559
  5. linux小红帽镜像系统,红帽 Red Hat Linux 系统镜像iso下载(汇总.百度云)
  6. 数据恢复基础和进阶教程(二)
  7. 无线网络的几种认证与加密方式
  8. 干货丨如何优雅地设计并控制一台协作机械臂
  9. OpenGrok简单使用
  10. 28岁华为员工工资表曝光,牛逼的人注定会牛逼​!
  11. Elasticsearch设置ip访问
  12. Censored! POJ - 1625(AC自动机 + dp +高精度模板)
  13. BUU-RSA [RoarCTF2019]babyRSA(威尔逊定理)
  14. 用Tina-TI软件仿真并分析RC积分电路和微分电路
  15. 斯隆奖获得者李博:从博弈论出发,和「偶像」并肩的感觉很好 | 青源专栏
  16. 安卓开发文档!花三分钟看完这篇文章你就懂了!帮你突破瓶颈
  17. 慧玩趣游H5游戏盒子源码出售
  18. OBS 插件推流以及日志模块
  19. 和12岁小同志搞创客开发:有意思的激光切割技术
  20. 达梦的异构数据库同步软件DMHS的简单安装

热门文章

  1. prometheus搭建
  2. Vue.nextTick进阶分析
  3. 客户化软件时代的前夜 ZT
  4. 微信小程序基础篇-模板与配置
  5. java代码规范(转载整合)
  6. 细思极恐啊,哈哈哈哈哈哈
  7. 如何高效自动检测电池产品性能?
  8. 用python 实现数据反序列化处理 以及 算法的学习
  9. 自我反省,自我批评、解剖,对近期行为的反思
  10. 超爽的对战游戏2.0版本来了 非常有趣