小弟不才在开发过程中使用到了一些简单的随机数在做一些彩票的应用可以使用到 如有更好的希望观看此文章的进行分享
- (NSMutableArray *)rulesBallCount:(Rules)rules
{
NSMutableArray *array = [[NSMutableArray alloc] init];
for (int i = 0; i <= 9; i ++) {
[array addObject:[NSString stringWithFormat:@"%d",i]];
}
return array;
}
/**
@功能: 生成随机号码
@参数: count 要随机几注
@返回值: 返回生成的数组
*/
- (NSArray *)randomBallNumber:(Rules)rules Count:(NSInteger)count
{
NSMutableArray *arrayNumber = [self rulesBallCount:rules];
NSMutableArray *array = [[NSMutableArray alloc] init];
// ============================
// 基本随机
// ============================
for (int i = 0; i < count; i ++) {
int countn = [arrayNumber count];
NSMutableArray *ar = [[NSMutableArray alloc] initWithArray:arrayNumber];
//存储每一行的球号
NSMutableArray *ballArray = [[NSMutableArray alloc] init];
for (int k = 0; k < 7; k++) {
int index = arc4random()%countn;
[ballArray addObject:[ar objectAtIndex:index]];
[ar removeObjectAtIndex:index];
countn--;
}
[ar release];
//当数组个数为0的时候直接添加随即球
if ([array count] == 0) {
[array addObject:ballArray];
}else
{
//验证球是否重复
int pcount = [array count];
//当变量等于yes时想数组里添加球号数组
BOOL qbool = YES;
for (int q = 0 ; q < pcount; q++) {
NSArray *resultArrayj = [[array objectAtIndex:q] sortedArrayUsingSelector:@selector(compare:)];
NSString *jsonj = [StaticTools arrayToJsonString:resultArrayj];
NSArray *resultArrayl = [ballArray sortedArrayUsingSelector:@selector(compare:)];
NSString *jsonball = [StaticTools arrayToJsonString:resultArrayl];
if ([jsonj isEqualToString:jsonball]) {
i--;
qbool = NO;
}
}
if (qbool == YES)
{
[array addObject:ballArray];
}
}
[ballArray release];
}
return [array autorelease];
}
/**
函数功能:
把一个数组转换为一个Json格式的字符串
参数说明:
array:需要进行转换的数组
返回值:
json格式的字符串
*/
+ (NSString *)arrayToJsonString:(NSArray *)array
{
CJSONSerializer *serializer = [[CJSONSerializer alloc] init];
NSString *jsonString = [serializer serializeArray:array]; // 把字典参数格式化为json格式的字符串
[serializer release];
return jsonString;
}
原文:http://blog.csdn.net/fobhappy/article/details/18966415