美文网首页
iOS彩票类排列组合算法

iOS彩票类排列组合算法

作者: iOS_Programmer | 来源:发表于2017-06-27 11:11 被阅读0次

1. 从一个范围内获取一组不重复的随机数,返回这个数组:

头文件:

/*

获取随机数

@param count获取随机数的个数

@param from随机数的最小值

@param to最大值

@return一组随机数

*/

+ (NSMutableArray*)getRandomArrayOfCount: (NSInteger)count rangeFrom:(NSInteger)from to:(NSInteger)to;

实现:

+ (NSMutableArray*)getRandomArrayOfCount:(NSInteger)count rangeFrom:(NSInteger)from to:(NSInteger)to {

if(to-from+1< count) {

VDLog(@"个数超出取值范围");

return nil;

}

NSMutableArray*array = [NSMutableArray new];

for(; ; ) {

NSString*object = [NSString stringWithFormat:@"%ld", from+arc4random()%(to-from+1)];

if(array.count==0) {

[array addObject:object];

continue;//数组元素个数为空,添加随机数,跳出本次循环

}

if([array containsObject:object]) {

continue;//数组内包含本次循环的随机数,跳出本次循环

}

[array addObject:object];

if(array.count== count) {

return array;//个数达到要求,循环结束

}

}

}

2.组合算法

头文件:

/**

计算出排列组合个数

例如从11个中选取5个,totalNum就是11,pickNum就是5

@param picNum目标个数

@param totalNum抽取对象个数

@return所有的排列组合的个数

*/

+ (NSInteger)getAllNumOfPossibleWithPicNum:(NSInteger)picNum totalNum:(NSInteger)totalNum;

实现:

+ (NSInteger)getAllNumOfPossibleWithPicNum:(NSInteger)picNum totalNum:(NSInteger)totalNum {

if(picNum > totalNum) {

return 0;

}

else{

NSInteger num1 = [self factorialWithStartNumber:totalNum - picNum +1 endNumber:totalNum];

NSInteger num2 = [self factorialWithStartNumber:1 endNumber:picNum];

returnnum1/num2;

}

}

/**

阶乘

@param startNumber起始数

@param endNumber结束数

@return阶乘结果

*/

+ (NSInteger)factorialWithStartNumber:(NSInteger)startNumber

endNumber:(NSInteger)endNumber

{

NSInteger result =1;

for(; startNumber <= endNumber; startNumber ++) {

result = result * startNumber;

}

returnresult;

}

相关文章

  • iOS彩票类排列组合算法

    1. 从一个范围内获取一组不重复的随机数,返回这个数组: 头文件: /*获取随机数@param count获取随机...

  • PHP彩票复式排列组合算法

    如下需求需要将用户选择的01,02,03,04这4个号码按照两个数为一组的组合下注,并且按照顺序,每个组合不会因为...

  • iOS swift 排列组合 算法

    排列组合的算法有很多,例如递归、穷举,下面我们用位运算的方式来实现全组合的算法 - 原理: 我们以[1, 2, 3...

  • iOS排列组合算法

    问题1、求长度为N的字符串的所有排列,如字符串abc所有排列为:abc,acb,bac,bca,cab,cba。问...

  • 排列组合-js

    排列组合 数学相关知识:5分钟彻底了解排列组合 参考:程序员必备算法——排列组合 排列有序,组合无序 3选2 :排...

  • 搜索-组合

    刷题学习的第一类算法,由深度优先搜索DFS引申出的,排列组合算法。在一个给定长度n的数组中取出k个数,做组合或者排...

  • iOS 加密算法 CommonCrypto框架①【待补充】

    iOS 加密算法 iOS CommonCrypto框架① iOS 加密算法 iOS CommonCrypto框架②...

  • iOS 内存管理-基础篇

    iOS内存管理主要有GC标记清除算法和引用计数方法两类:GC标记清除算法Garbage Collection,垃圾...

  • 排列组合类

  • iOS算法总结-堆排序

    iOS算法总结-堆排序 iOS算法总结-堆排序

网友评论

      本文标题:iOS彩票类排列组合算法

      本文链接:https://www.haomeiwen.com/subject/fwoscxtx.html