Objective-C: Get random number 获取随机数

转载自:http://hi.baidu.com/bunsman/blog/item/9c7cf79ba2261cacc9eaf4e4.html

参考:http://www.friendlydeveloper.com/2010/02/objective-c-get-random-number/comment-page-1/

-(int)getRandomNumber:(int)from to:(int)to {

return(int)(from + arc4random() % (to-from+1));

}

How to use:

Implement method above into your .m file

Add the following line to your .hfile:

1)

-(int)getRandomNumber:(int)from to:(int)to;


2) Call the method like:

intrandomNumber = [selfgetRandomNumber:9to:99];

//this gets you a random number between 9 and 99

关于生成多个不重复随机数的问题。

我的解决思路是,先创建一个MutableArray,放入随机数的取值范围,然后从0到[mutableArray count]生成的随机数index,去取mutable的值。取一个然后再remove掉。就可以得到不重复的随机数了。

示例代码:

//生成多个随机数

NSNumber*irandom1, *irandom2, *irandom3, *irandom4;

NSUIntegercapacity = [dataArraycount]-1;//dataArray是取值的源数组

NSMutableArray*container = [[NSMutableArrayalloc]initWithCapacity:capacity];

for(NSUIntegeri =0; i < [dataArraycount] ; i++) {

NSNumber*nsi = [NSNumbernumberWithInt:i];

[containeraddObject:nsi];

}

NSUIntegerindex = [setintValue];

[containerremoveObjectAtIndex:index];

index = (arc4random() % [containercount]);

irandom1 = [containerobjectAtIndex:index];

[containerremoveObjectAtIndex:index];

index = (arc4random() % [containercount]);

irandom2 = [containerobjectAtIndex:index];

[containerremoveObjectAtIndex:index];

index = (arc4random() % [containercount]);

irandom3 = [containerobjectAtIndex:index];

[containerremoveObjectAtIndex:index];

index = (arc4random() % [containercount]);

irandom4 = [containerobjectAtIndex:index];

[containerrelease];


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值