ios随机数
ios 随机数生成
- 最近一直使用随机数,为了以后方便查阅,总结一下:
- 在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 ;
ios随机数的更多相关文章
- iOS随机数-备
ios 有如下三种随机数方法: 1. srand((unsigned)time(0)); //不加这句每次产生的随机数不变 int i = rand() % 5; 2. s ...
- iOS 随机数(Fixed)
ios 有如下三种随机数方法: 1. srand((unsigned)time(0)); //不加这句每次产生的随机数不变 int i = rand() % 5; 2. ...
- ios随机数不重复
NSMutableArray* Valuearr=[NSMutableArray new]; int counN=9; for(int i=0;i<counN;i++) //创 ...
- iOS 随机数获取
//获取一个32位随机数 static const char _randomStr[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuv ...
- 笔记:iOS随机数与随机数据集
//0 到 N - 1 之间的随机整数 NSUInteger r = arc4random_uniform(N); //1 到 N 之间的随机整数 NSUInteger r = arc4random_ ...
- iOS——浅谈iOS中三种生成随机数方法
ios 有如下三种随机数方法:
- iOS中产生随机数的方法
利用arc4random_uniform()产生随机数 Objective-C 中有个arc4random()函数用来生成随机数且不需要种子,但是这个函数生成的随机数范围比较大,需要用取模的算法对随机 ...
- iOS中 三种随机数方法详解
ios 有如下三种随机数方法: //第一种 srand((unsigned)time(0)); //不加这句每次产生的随机数不变 int i = rand() % 5; //第二种 srandom(t ...
- ios 中生成随机数
ios 有如下三种随机数方法: 1. srand((unsigned)time(0)); //不加这句每次产生的随机数不变 int i = rand() % 5; 2. s ...
随机推荐
- 小例子解释wait与notify的区别
系统慢可能有很多种原因,硬件资源不足,语句不优化,结构设计不合理,缺少必要的运维方式.所有的这些问题都可以在阻塞与等待中看出端倪,发现并解决问题. 首先是下载开发工具,磨刀不误砍材工.点此下载 这是一 ...
- Mybatis一对多查询得不到多方结果
一对多查询:一个年级对应多个学生,现在要查询年级(带学生)信息. 查询结果: [main] INFO com.java1234.service.GradeTest - 查询年级(带学生)[main] ...
- CSS样式笔记
组合样式,CSS继承 .content { padding:0 0 0 5px; line-height: 30px; height: 30px; border: 1px solid #a6bee7; ...
- 【.NET】上传文件,生成缩略图
类名:Upload using System; using System.Collections; using System.ComponentModel; using System.Data; us ...
- Spire.XLS 在程序中直接打印excel
上代码 if (tbPrintSetBindingSource.Current == null) return; var item_TbPrintSet = tbPrintSetBindingSour ...
- PHP使用正则表达式验证电话号码(手机和固定电话)
这个还不错,很有用. tel='验证的电话号码'; $isMob="/^1[3-8]{1}[0-9]{9}$/"; $isTel="/^([0-9]{3,4}-)?[0 ...
- 【转】母函数(Generating function)详解 — TankyWoo(红色字体为批注)
母函数(Generating function)详解 - Tanky Woo 在数学中,某个序列的母函数(Generating function,又称生成函数)是一种形式幂级数,其每一项的系数可以提供 ...
- Firebug入门指南
据说,对于网页开发人员来说,Firebug是Firefox浏览器中最好的插件之一. 我最近就在学习怎么使用Firebug,网上找到一篇针对初学者的教程,感觉比较有用,就翻译了出来. ========= ...
- Linux 抓包命令
可使用如下命令,在Linux系统上进行抓包命令 tcpdump -n -i eth0 tcp port and host 192.168.9.45 -w ./filename.cap 说明: eth0 ...
- Queues 队列
1. Definiation What is a queue? A queue is a list. With a queue, inseration is done at one end (know ...