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