当前位置: 首页 > news >正文

湖南平台网站建设公司app开发公司哪家好

湖南平台网站建设公司,app开发公司哪家好,网站建设 参照 标准规范,广州公司注册费用及流程做了一个彩票程序,为了复式投注颇费了点脑筋,网上找了半天,才知道这个公式,比如36选7,如果买10个号,公式就是: 10!/ (10-7)!/ 7! 顺手做了一个测试程序&…

做了一个彩票程序,为了复式投注颇费了点脑筋,网上找了半天,才知道这个公式,比如36选7,如果买10个号,公式就是:

10!/ (10-7)!/ 7!

 

顺手做了一个测试程序:

  1. using System;
  2. public class Test{
  3.     public static void Main(string[] args){
  4.         int a = 5;  // 选择了几 
  5.         int b = 2;
  6.         try{
  7.             if(args.Length == 1){
  8.                 b = int.Parse(args[0]);
  9.             } else if(args.Length >= 2){
  10.                 a = int.Parse(args[0]);
  11.                 b = int.Parse(args[1]);
  12.             }
  13.         }catch{
  14.             Console.WriteLine("请正确输入");
  15.             return;
  16.         }
  17.         
  18.         int d = GetCount(a, b);
  19.         Console.WriteLine("{0},{1},{2}", a,b,d);
  20.     }
  21.     
  22.     //buyNum : 购买的数字个数 
  23.     //perNum : 每注要求的数字个数 
  24.     // 返回值为 : buyNum!/(buyNum-perNum)!/perNum! 
  25.     public static int GetCount(int buyNum, int perNum){
  26.         if(perNum == buyNum)
  27.             return 1;
  28.             
  29.         if(perNum > buyNum){
  30.             throw new Exception("后者必须比前者小!");
  31.         }else if(perNum <= 0){
  32.             throw new Exception("后者不能小于0!");
  33.         }
  34.         
  35.         // 这3行能提高一点效率,并降低一部分溢出的可能 
  36.         int diff = buyNum - perNum;
  37.         if (diff > perNum)
  38.             perNum = diff;
  39.             
  40.         int result = 1;
  41.         for(int i=perNum + 1;i<=buyNum;i++){
  42.             result *= i;
  43.         }
  44.         
  45.         for(int i=1;i<=buyNum - perNum;i++){
  46.             result /= i;
  47.         }
  48.         return result;
  49.         /*
  50.          8个号码选7=   8注
  51.          9个号码选7=  36注
  52.         10个号码选7= 120注
  53.         11个号码选7= 330注
  54.         12个号码选7= 792注
  55.         */
  56.     }
  57. }

下面是生成复式投注时,列出组合号码的列表的代码:

  1. /// <summary>
  2. /// 从数组中查找s个数字的组合,并返回全部组合(根据复式彩票投注的号码,返回对应的全部号码组列表)
  3. /// </summary>
  4. /// <param name="arr">数组(购买的数字列表)</param>
  5. /// <param name="s">大于0的整数(每注要求的数字个数)</param>
  6. /// <returns></returns>
  7. List<List<int>> GetCountList(int[] arr, int s)
  8. {
  9.     if (s < 1)
  10.         throw new Exception("选择个数不能小于1!");
  11.     if (arr == null || arr.Length == 0 || arr.Length < s)
  12.         throw new Exception("数组不能为空 或 小于必选个数!");
  13.     if (arr.Length == s)
  14.     {
  15.         #region 数组长度等于s时,直接返回1个组合
  16.         List<List<int>> l_ret = new List<List<int>>();
  17.         List<int> l_item = new List<int>();
  18.         foreach (int item in arr)
  19.         {
  20.             l_item.Add(item);
  21.         }
  22.         l_ret.Add(l_item);
  23.         #endregion
  24.         return l_ret;
  25.     }
  26.     if (s == 1)
  27.     {
  28.         #region 从数组中查找1个数字的组合,直接把数组各元素返回
  29.         List<List<int>> l_ret = new List<List<int>>();
  30.         foreach (int item in arr)
  31.         {
  32.             List<int> l_item = new List<int>();
  33.             l_item.Add(item);
  34.             l_ret.Add(l_item);
  35.         }
  36.         #endregion
  37.         return l_ret;
  38.     }
  39.     List<List<int>> l_arrTmp = new List<List<int>>();
  40.     for (int i = 0; i < arr.Length - s; i++)
  41.     {
  42.         // 后面的数任意取s-1个
  43.         int[] tmp = GetArray(arr, i);
  44.         List<List<int>> l_arrTmp1 = GetCountList(tmp, s - 1);
  45.         foreach (List<int> item in l_arrTmp1)
  46.         {
  47.             item.Insert(0, arr[i]);
  48.             l_arrTmp.Add(item);
  49.         }
  50.     }
  51.     List<int> l_lastItem = new List<int>();
  52.     for (int i = arr.Length - s; i < arr.Length; i++)
  53.     {
  54.         l_lastItem.Add(arr[i]);
  55.     }
  56.     l_arrTmp.Add(l_lastItem);
  57.     return l_arrTmp;
  58. }
  59. /// <summary>
  60. /// 把arr数组中,位置为beg之后的元素全部放入一个新数组返回(不包含beg元素)
  61. /// </summary>
  62. /// <param name="arr"></param>
  63. /// <param name="beg"></param>
  64. /// <returns></returns>
  65. private static int[] GetArray(int[] arr, int beg)
  66. {
  67.     int[] tmp = new int[arr.Length - (beg + 1)];
  68.     for (int i = beg + 1; i < arr.Length; i++)
  69.         tmp[i - (beg + 1)] = arr[i];
  70.     return tmp;
  71. }

 

 

 

 

 

 

http://www.yayakq.cn/news/600591/

相关文章:

  • 网站运营策划方案视频网站开发应用到哪些技术
  • 绍兴网站建设制作网站维护与建设实训心得
  • 个人做网站开发天津市建设工程合同备案网站
  • 上海网站建设排行蓝盟it外包
  • 可以登录国外网站吗wordpress动态导航
  • 一般网站的宽度是多少像素项目概述
  • 网站建设完成后交付方式网站建设职能
  • 网站小视频怎么做代理个人怎么做动漫短视频网站
  • discu论坛网站模板建设电商网站的总结
  • 网站建设忄金手指专业东莞网络推广外包
  • 百度不收录新网站服务器域名ip网址大全
  • 上海平台网站建设公司排名友情链接格式
  • 企业 办公 网站模板下载种子搜索神器
  • 滑县网站建设login to view all v2.0 wordpress
  • 如何查询网站开发商网站改版 更换域名
  • 高端设计网站平台防恶意竞价点击软件
  • 公司网站 模板优化seo培训班
  • 最有效的网站推广方法兰州手机网站制作
  • 网站开发的pc或移动端模型评测网站怎么做
  • 个人可以做网站推广想做跨境电商怎么入门
  • html创建站点的步骤租用网站服务器价格
  • 南京房地产网站建设电玩网站
  • 服务器搭建网站跑不满宽带吉林市百姓网免费发布信息网
  • 建设网站网站建设公司做网站不难吧
  • 个性flash网站wordpress调用产品图片
  • 网站制作公司费用制作网站哪家专业
  • 蓟县网站建设公司佛山免费网站建站模板
  • 深圳优化网站兰州互联网公司
  • 软件技术有学做网站吗网页qq直接登陆
  • 做网站必须会去掉自豪的wordpress