`

ios随机数,and()、random()、arc4random()

    博客分类:
  • ios
 
阅读更多

原文:http://bj007.blog.51cto.com/1701577/544006

我的摘要:

1、iphone有几个内嵌的随机数发生器,如rand()、random()、arc4random()

其精确程度为

arc4random()  >  random()  >  rand()

可以由其原型进行推断

 

int rand();

long random();

u_int32_t arc4random();

 

2、rand()和random()在使用之前需要先初始化随机种子,即调用

srandom(time(NULL));

arc4random()不需要生成随机种子,因为第一次调用的时候就会自动生成。

 

3、在iPhone中,RAND_MAX是0x7fffffff (2147483647),而arc4random()返回的最大值则是 0x100000000 (4294967296),从而有更好的精度。

 

4、几个调用arc4random()的示例:

 

1)、通过arc4random() 获取0到x之间的整数的代码如下:

int value = arc4random() % (x+1);

2)、获取1到x之间的整数的代码如下:

int value = (arc4random() % x) + 1;

其中,根据预算优先级括号实际是不需要的,但还是应该对括号格外小心。

3)、如果想生成一个浮点数,可以在项目中定义如下宏:

#define ARC4RANDOM_MAX      0x100000000

然后就可以使用arc4random() 来获取0到100之间浮点数了(精度是rand()的两倍),代码如下:

double val = floorf(((double)arc4random() / ARC4RANDOM_MAX) * 100.0f);    


分享到:
评论

相关推荐

    ios-arc4random.zip

    在iOS和macOS中,`arc4random`家族的函数包括`arc4random()`, `arc4random_uniform()`, 和 `arc4random_buf()`,它们提供了生成不同类型的随机数的能力。 1. **arc4random()**: 这是最基础的函数,返回一个32位无...

    iOS一次产生多个随机数的DEMO

    在iOS中,我们可以使用C语言的`rand()`函数或者更现代的`arc4random()`函数来生成随机数。`rand()`函数返回一个0到`RAND_MAX`之间的伪随机整数,而`arc4random()`函数则提供了一个更为安全和高效的选择,它返回一个0...

    ios-某个范围取随机数.zip

    在Objective-C中,可以使用`arc4random_uniform()`函数来生成一个指定范围内的随机数。这个函数返回的是一个无符号32位整数,但我们可以根据需求进行调整。例如,如果你想在1到100之间生成随机数,可以这样做: ```...

    浅谈iOS中三种生成随机数方法

    总之,当在iOS开发中需要生成随机数时,`arc4random()`通常是首选,因为它既高效又易于使用。如果对随机数质量有更高要求,可以考虑使用`random()`,但记得初始化种子。避免使用未初始化的`rand()`,因为它可能会...

    RandomNumber

    在Objective-C中,我们可以使用`arc4random_uniform()`函数来生成指定范围内的随机数。这个函数返回的是一个均匀分布的随机整数,且小于给定的上限。例如,要生成1到10之间的随机整数,代码如下: ```objc int ...

    ios 在一定范围随机选取demo

    `arc4random_uniform()`需要一个上限参数,生成的随机数会小于这个上限,因此我们不需要像`rand()`那样处理`RAND_MAX`。 对于实际的iOS应用,通常会将这种随机数生成逻辑封装在一个方法里,以便在多个地方复用。...

    ios-抽奖程序.zip

    通常,我们会选择`arc4random_uniform()`函数,因为它能提供均匀分布的无偏随机数。例如,如果我们有10个奖项,可以生成0到9之间的随机数来决定抽中的奖项。 ```swift let randomNumber = arc4random_uniform(10) `...

    iOS抽奖 Lottery demo

    在iOS中,可以使用Swift内置的randomElement()方法或者arc4random_uniform()函数来生成随机数。同时,为了确保抽奖的公平性,开发者需要考虑如何正确处理概率权重,以确保不同奖项出现的概率符合预期。 在实际开发...

    IOS 开发之PickerView文字和随机数的使用

    此外,如果要在PickerView中展示随机数,可以使用`arc4random()`函数生成一个0到某个正整数之间的随机数。例如,要生成0到9之间的随机数,可以使用`arc4random() % 10`。在实际应用中,可能需要结合业务逻辑将这些...

    随机密码生成ios工程

    在iOS应用中,我们可以使用内置的`arc4random_uniform()`函数或者`SecRandomCopyBytes()` API来生成随机数,以此为基础构建复杂的密码。`arc4random_uniform()`适用于简单的随机数生成,而`SecRandomCopyBytes()`则...

    UIios打地鼠

    为了使地鼠随机出现在屏幕上的不同位置,可以使用随机数生成函数,如arc4random_uniform()。 至于用户交互部分,当用户点击到地鼠时,游戏需要检测碰撞。在UIKit中,我们可以利用hitTest:withEvent:方法来检测用户...

    iOS Demo 心形雪花

    3. **随机生成位置**:心形雪花的生成位置是随机的,这涉及到Swift中的`arc4random_uniform()`函数或`RandomNumberGenerator`协议。开发者可能使用这些工具来生成随机的x和y坐标,确保雪花在屏幕上的分布均匀且不...

    抽奖大转盘iOS

    iOS中的arc4random_uniform函数可以用来生成指定范围内的随机整数。 6. **多线程**:如果抽奖动画涉及到较长的计算或者网络请求,为了保证用户体验,开发者可能会使用GCD(Grand Central Dispatch)或Operation...

    iOS猜数字字母游戏源码

    Swift提供了stdlib库,其中的arc4random_uniform函数可以用于生成指定范围内的随机整数。游戏逻辑可能包括设置一个目标数字,然后让用户猜测,直到猜对为止,期间可能还有错误提示或次数限制。 猜字母的部分可能...

    iOS 福袋装入金币

    我们可以使用`arc4random_uniform()`函数来获取指定范围内的随机整数,以此决定装入福袋的金币数量。这个过程可以结合用户交互或者系统事件来触发,增加游戏的随机性和趣味性。 3D抛物线的实现可能需要利用SceneKit...

    IOS抽奖轮盘

    iOS中,可以使用`arc4random_uniform()`函数来生成指定范围内的随机整数,确保每次抽奖的公正性。 5. **手势识别** 为了响应用户的触摸操作,我们需要在视图上添加手势识别器,如`UIPanGestureRecognizer`,监听...

    ios-随机本地生成验证码.zip

    1. **随机数生成**:在iOS中,可以使用`arc4random_uniform()`函数来生成指定范围内的随机整数。这个函数是C语言级别的,但在Objective-C或Swift中同样适用。例如,要生成0到9之间的随机数字,可以这样写: ```...

    ios-摇号,抽签.zip

    Objective-C或Swift都提供了内置的随机数生成函数,如`arc4random_uniform()`,用于确保结果的随机性。 - 结合数据模型,随机数可以用来选取获胜者或确定抽签顺序。 6. **音频反馈**: - 为了增强用户体验,可以...

    抽奖转盘ios

    此外,为了实现点击启动按钮后的随机停止效果,开发者可能使用了arc4random_uniform函数来生成一个随机数,这个数用于确定转盘应该在哪个奖项上停止。同时,为了保证用户体验,转盘在停止时不能立即静止,而是需要有...

Global site tag (gtag.js) - Google Analytics