object-c 随机数总结
生活随笔
收集整理的這篇文章主要介紹了
object-c 随机数总结
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
解決幾個典型的問題:
如何生成一個 Objective-C 的隨機(jī)數(shù)?
使用arc4random()
具體而言,產(chǎn)生一個0-n-1之間的隨機(jī)數(shù),使用arc4random_uniform(),從而避免模偏差
NSUInteger r = arc4random_uniform(N);0?到?1?之間的隨機(jī)浮點(diǎn)數(shù)(double)
如果你要生成一個隨機(jī)?double?或?float,另一個很好的選擇是功能較模糊的?rand48?家族,包括?drand48(3)。
? ?srand48(time(0));
? ? for (int i = 0; i < 10; i++) {
? ? ? ? double r = drand48();
? ? ? ? NSLog(@"%f[%d]", r, i);
? ? }
?
不像?arc4random?函數(shù),?rand48?函數(shù)在產(chǎn)生隨機(jī)數(shù)之前需要種子的初始值。這個種子函數(shù)?srand48(time(0))?應(yīng)該只運(yùn)行一次。
如何從一個?NSArray?選擇一個隨機(jī)元素?
NSArray *arr = @[@1, @2, @3, @5, @0];if ([arr count] > 0) {id obj = arr[arc4random_uniform((u_int32_t)[arr count])];NSLog( @"%@", obj);}如何隨機(jī)排序一個?NSArray?
NSArray *arr = @[@1, @2, @3, @5, @0];NSMutableArray *a = [NSMutableArray arrayWithArray:arr];if ([arr count] > 1) {for (NSUInteger i = [arr count] - 1; i > 0; --i) {[a exchangeObjectAtIndex:i withObjectAtIndex:arc4random_uniform((u_int32_t)(i + 1))];}}NSLog(@"%@", a);生成一個隨機(jī)的小寫?NSString
如果你是對一個已知的,連續(xù)范圍的 Unicode 字符做處理,例如小寫字母 (U+0061?—?U+007A),你可以從?char?做一個簡單的換算:
NSString *letter = [NSString stringWithFormat:@"%c", arc4random_uniform(26) + 'a'];?
轉(zhuǎn)載于:https://www.cnblogs.com/lxgo/p/5279046.html
與50位技術(shù)專家面對面20年技術(shù)見證,附贈技術(shù)全景圖總結(jié)
以上是生活随笔為你收集整理的object-c 随机数总结的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 转自他人——————TLE之前,没有一个
- 下一篇: 《linux内核设计与实现》第一章