精华内容
下载资源
问答
  • 彩票算法

    千次阅读 2006-10-25 15:00:00
    福利彩票33选6 福利彩票的模拟:从1~33个数选取6个数作为一组,即为一张彩票;中奖号码也是类似这样的一组数,每一张彩票的号码和中奖号码的6个号进行比较,相同号码的个数,作为评奖的依据,相同号码的个数越...

    福利彩票33选6 福利彩票的模拟:从1~33个数中选取6个数作为一组,即为一张彩票;中奖号码也是类似这样的一组数,每一张彩票的号码和中奖号码中的6个号进行比较,相同号码的个数,作为评奖的依据,相同号码的个数越多,中奖级别越高,奖金越高。要求: 1. 从键盘输入或利用随机数自动生成的一组中奖号码。 2. 由系统随机生成若干张(50、100、500等)彩票,与给定的中奖号码进行比较,统计这些彩票的中奖情况(见表2-1)。 3. 中奖规定:一等奖猜对6个号码,二等奖猜对5个号码,三等奖猜对4个号码,四等奖猜对3个号码,五等奖猜对2个号码  提示: 1. 此题为线性表和排序算法的综合应用。 2. 可用顺序表存储备选号码。 3. 对中奖号码按大到小进行排序,不要求对每组彩票中的号码进行排序.

    下面是源代码:

    class RandObj
    {
     //用于存储号码数组得类
     private int[] randobj;

     public int[] getRandobj()
     {
      return randobj;
     }

     public void setRandobj(int[] ra)
     {
      this.randobj = ra;
     }
    }

    import java.util.*;
    public class  Rand
    {
     //产生一个随机数组
     public static int[] random(int sub)
     {
      int[] returnarray = new int[sub];
      for(int i=0;i<sub;i++)
      {
       returnarray[i]=getRand();
       for(int j=0;j<i;j++)
       {
        if(returnarray[i]==returnarray[j])
        {
         returnarray[i]=getRand();
         j=-1;
        }
       }
      }
      sort(returnarray);
      return returnarray;
     }

     public static boolean isExist(int[] value)
     {
      boolean bl = false;
      for(int i=0;i<value.length;i++)
      {
       for(int j=i+1;j<value.length;j++)
       {
        if(value[i]==value[j])
        {
         bl = true;
         break;
        }
       }
      }
      return bl;
     }
     //从1-33中随机选择一个数
     public static int getRand()
     {
      int a = (int)Math.round(33*Math.random())+1;
      if(a>33)a = 33;
      if(a<1)a = 1;
      return a;
     }
     //对数组进行排序
     public static void sort(int[] numarr)
     {
      int len = numarr.length;
      for(int i = 0;i<len;i++)
      {
       for(int j=i+1;j<len;j++)
       {
        if(numarr[j]<numarr[i])
        {
         int change = numarr[i];
         numarr[i] = numarr[j];
         numarr[j] = change;
        }
       }
      }
     }

     public static ArrayList getAllRandom(int num,int sub)
     {
      ArrayList list = new ArrayList();
      for(int i=0;i<num;i++)
      {
       RandObj obj = new RandObj();
       obj.setRandobj(random(sub));
       list.add(obj);
      }
      return list;
     }

     public static void main(String[] a)
     {
      int[] real = random(6);
      String str = "";
      for(int i = 0;i<real.length;i++)
      {
       str = str + Integer.toString(real[i])+" ";
      }
      System.out.println("中奖号码为"+str);
      System.out.println("-------------");
      ArrayList list = getAllRandom(100,6);
      Iterator iter = list.iterator();
      int j = 1;
      while(iter.hasNext())
      {
       RandObj obj = (RandObj)iter.next();
       int[] b = obj.getRandobj();
       str = "";
       for(int i = 0;i<b.length;i++)
       {
        str = str + Integer.toString(b[i])+" ";
       }
       if(isExist(b)){System.out.println("有重复值");}
       System.out.println("第"+(j++)+"个号码为"+str);
      }
      /*System.out.println("-------------");
      int[] zjnum = Rule.zj(list,real);
      for(j=0;j<zjnum.length;j++)
      {
       System.out.println(j+"等奖注数为"+zjnum[j]);
      }*/
     }
    }

    import java.util.*;
    class Rule
    {
     //判断中奖号码个数
     public static int compare(int[] choose,int[] real)
     {
      int samevalue = 0;
      int chooselen = choose.length;
      int reallen = real.length;
      for(int i=0;i<chooselen;i++)
      {
       for(int j=0;j<reallen;j++)
       {
        if(choose[i]==real[j])samevalue++;
       }
      }
      return samevalue;
     }
     //
     public static int[] zj(ArrayList list,int[] real)
     {
      int[] returnvalue = new int[6];
      Iterator iter = list.iterator();
      while(iter.hasNext())
      {
       RandObj obj = (RandObj)iter.next();
       int[] b = obj.getRandobj();
       int a = jb(compare(b,real));
       returnvalue[a]++;
      }
      return returnvalue;
     }
     //根据中奖号码个数确定中奖级别
     public static int jb(int value)
     {
      int r = 0;
      if(value==6) r = 1;
      if(value==5) r = 2;
      if(value==4) r = 3;
      if(value==3) r = 4;
      if(value==2) r = 5;
      return r;
     }
    }

    展开全文
  • 回溯算法中彩票生成算法的分析

    千次阅读 2012-04-06 15:37:05
    题目:生成一个四位的彩票,每位是从1到7的任意数字,要求是每位之间不能重复。 代码: #include #define MAXN 4 //设置每一注彩票的位数 #define NUM 7 //设置组成彩票的数字 int num[NUM]; int lottery...
    代码能力实在是不够,自己写不来不说,看个代码都看了好久,终于看明白了,决定写出来,这样或许会加深理解:
    题目:生成一个四位的彩票,每位是从1到7的任意数字,要求是每位之间不能重复。

    代码:

    #include <stdio.h>
    #define MAXN 4 //设置每一注彩票的位数 
    #define NUM 7 //设置组成彩票的数字 
    int num[NUM];
    int lottery[MAXN];
    int c=0;
    void combine(int n, int m)//最外层的循环,从i=n=7开始,每位数字个数>=位数,所以又i>=m。(一位的彩票至少要有一个数字)
    {
         int i,j;
         for(i=n;i>=m;i--)
         {
             lottery[m-1]=num[i-1]; //将第7个数字赋给彩票的第4位(从高位开始赋值) 
             if (m>1)	//如果后面还有空位没有赋值,则再次调用此函数,继续向后赋值 
                 combine(i-1,m-1);
                 //上面这句将彩票位数变为3位,每位6个数字;逐层调用,直到最后彩票成为一位,该为4个数字 
             else//m = 1;说明已经到达最后一位,输出前面3位和最后一位  
             {
                 for(j=MAXN-1;j>=0;j--)
                     printf("%3d",lottery[j]);
                 c++;
                 printf("\n");
             }
         }
    }
    int main()
    {
        int i,j;
        for(i=0;i<NUM;i++)  //设置彩票各位数字 
            num[i]=i+1;
        for(i=0;i<MAXN;i++)
            lottery[i]=0;
        combine(NUM,MAXN);    
    	printf("%d",c);
        getch();
        return 0;
    }
    

    原书中说这是回溯算法的一个例子,我个人感觉可能是因为这是逐层的调用自己,当一位的彩票使用完了之后,返回到之前一位,改变之,然后在继续改变后一位。

    展开全文
  • 算法提高 彩票

    2020-01-16 11:02:16
    算法提高 彩票 为丰富男生节活动,贵系女生设置彩票抽奖环节,规则如下: 1、每张彩票上印有7个各不相同的号码,且这些号码的取值范围为[1, 33]; 2、每次在兑奖前都会公布一个由七个互不相同的号码构成的中奖号码;...

    算法提高 彩票

    为丰富男生节活动,贵系女生设置彩票抽奖环节,规则如下:

    1、每张彩票上印有7个各不相同的号码,且这些号码的取值范围为[1, 33];

    2、每次在兑奖前都会公布一个由七个互不相同的号码构成的中奖号码;

    3、共设置7个奖项,特等奖和一等奖至六等奖。兑奖规则如下:

    特等奖:要求彩票上的7个号码都出现在中奖号码中;

    一等奖:要求彩票上的6个号码出现在中奖号码中;

    二等奖:要求彩票上的5个号码出现在中奖号码中;

    ……

    六等奖:要求彩票上的1个号码出现在中奖号码中; 注:不考虑号码出现的顺序,例如若中奖号码为23 31 1 14 19 17 18,则彩票12 8 9 23 1 16 7由于其中有两个号码(23和1)出现在中奖号码中,所以该彩票中了五等奖。

    现已知中奖号码和李华买的若干彩票的号码,请你写一个程序判断他的彩票中奖情况。

    输入格式:

    第一行一个正整数n,表示彩票数量,第二行7个整数,表示中奖号码,下面n行每行7个整数,描述n张彩票。

    输出格式:

    7个空格隔开的数字,第1个数字表示特等奖的中奖张数,第2个数字表示一等奖的中奖张数,第3个数字表示二等奖的中奖张数……第7个数字表示六等奖的中奖张数。

    输入样例:

    在这里给出一组输入。例如:

    3
    1 2 3 4 5 6 7
    11 12 13 14 15 16 17
    12 13 14 15 16 17 18
    8 7 10 9 31 30 29
    

    输出样例:

    在这里给出相应的输出。例如:

    0 0 0 0 0 0 1
    

    方法:

    新建两个数组num和prize,num用来存获奖的7个号码,prize用来存7个奖项的次数,每次输入循环一轮num的所有数,看是否相等,记录有一样的数次数。通过次数就可判断几等奖。

    代码:

    #include<iostream>
    #include<vector>
    using namespace std;
    int main()
    {
    	vector<int>prize(7),num(7);
    	int x;
    	cin >> x;
    	for (int j = 0; j < 7; j++)
    	{
    		cin >> num[j];
    	}
    	int t,cnt=0;
    	for (int i = 0; i < x; i++)
    	{
    		cnt = 0;
    		for (int j = 0; j < 7; j++)
    		{
    			cin >> t;
    			for (int k = 0; k < num.size(); k++)
    			{
    				if (t == num[k])
    				{
    					cnt++;
    					break;
    				}
    			}
    		}
    		if (cnt > 0)
    		{
    			prize[cnt - 1]++;
    		}
    	}
    	for (int i = prize.size()-1; i >=0; i--)
    	{
    		if (i != prize.size() - 1)
    			cout << ' ';
    		cout << prize[i];
    	}
        return 0;
    }
    
    展开全文
  • 解题思路:利用itertools的permutations方法,不清楚的可以学一学itertools。注意事项:1. 输入时需要转为int,方便后续的排序(若为str,则按照ASCII顺序排列,不符合题意);2. itertools.permutations方法在Python3...

    解题思路:

    利用itertools中的permutations方法,不清楚的可以学一学itertools。

    注意事项:

    1. 输入时需要转为int,方便后续的排序(若为str,则按照ASCII顺序排列,不符合题意);

    2. itertools.permutations方法在Python3中默认返回迭代器,需要手写转为集合,可用于删除重复项;

    3. (巨坑:input之后要写strip,否则91出错)。

    参考代码:

    import itertools

    temp = []

    n = str(input().strip())

    for i in n:

    temp.append(int(i))

    temp = set(itertools.permutations(temp))

    temp = [i for i in temp]

    temp.sort()

    for i in temp:

    print(''.join([str(j) for j in i]))

    展开全文
  • 彩票软件热温冷算法的实现情况 Delphi / Windows ...谁知道彩票软件热温冷是如何用算法来实现的?前10期内共出3期的为温码,小于3期的为冷码,大于3期的为热码!!! 这应该是简单的次数判断 转载于:http...
  • 基本算法4.2彩票

    千次阅读 2020-01-20 14:25:50
    基本算法4.2彩票 题目描述 有一种彩票的玩法是从1~49这49个整数挑选6个数字。小明为此研究出一个选号的策略,就是从 这49个数字选出一个子集S,S包含了k(k>6)个数字,然后从S再选择6个数字作为最终...
  • java 彩票走势图算法

    千次阅读 2018-09-23 20:11:42
    一、算法介绍 本博文主要写了彩票走势图的遗漏值、出现总次数、平均遗漏值、最大遗漏值、最大连出值的计算逻辑。 二、图文简介 [这是XX网双色球的彩票走势图,博主这里是将彩票数据分区展示,以双色球为例,分了...
  • 试题 算法提高 彩票

    2021-01-30 21:18:45
     特等奖:要求彩票上的7个号码都出现在中奖号码;  一等奖:要求彩票上的6个号码出现在中奖号码;  二等奖:要求彩票上的5个号码出现在中奖号码;  ……  六等奖:要求彩票上的1个号码出现在中奖号码;...
  • 蓝桥杯 算法提高 彩票 Python  为丰富男生节活动,贵系女生设置彩票抽奖环节,规则如下:  1、每张彩票上印有7个各不相同的号码,且这些号码的取值范围为[1, 33];  2、每次在兑奖前都会公布一个由七个互不相同的...
  • 彩票调度:彩票调度是操作系统进程的概率调度算法。 每个过程都分配有一定数量的彩票,并且调度程序将随机抽取一张彩票以选择下一个过程
  • 纯手工编写的基于java语言的彩票出球算法,喜欢买双色球和大乐透彩票的朋友,可以下载玩玩,资源包包含java代码的出球算法以及模拟选号,还有Android的apk包,用Android手机的朋友可以直接下载安装使用,每次想买...
  • 彩票选号算法

    千次阅读 2015-07-08 19:05:10
     彩票选号,例如36选7,从36个数字随机选取7个,这在算法上如何实现呢?   最简单的想法就是,每次都从1~36随机选取一个数,一共选7次,不就可以了吗? 但这样会有一个问题——重复,彩票选号是不能重复的。 ...
  • 一、背景在网上闲逛的日子总归是无聊的,百度...二、网页分析今天爬取的是中国彩票网(中彩网)的福彩3D这款彩票,在我初中的时候很喜欢买这个彩票,因为只需要在0~9的十个数字中选三个,相对于其余的选七八个数字来...
  • 简单的彩票出球算法

    2020-05-15 14:50:39
    通过剔除抽的号码来模拟彩票抽奖算法 //首先初始化红号和蓝号 int[] red = new int[36]; int[] blue = new int[16]; for(int i=0;i<36;i++){ red[i] = i+1; } for(int i=0;i<16;i++){ ...
  • 原文链接:http://tecdat.cn/?p=3014前言预测是通过基于来自过去...预测分析通过分类,深度学习能够在例如图像的像素和人的名称之间建立相关性。你可以称之为静态预测。出于同样的原因,暴露于足够的正确数据,深...
  • 全文共3030字,预计学习时长6分钟靠玩彩票谋生的可能性有多大?2005年,麻省理工学院的一群学生一起组成了一个博彩组织。他们确定了想赌的游戏,计算了赔率,并获得了数百万...
  • 题目 1521: [蓝桥杯][算法提高VIP]彩票 时间限制: 1Sec 内存限制: 128MB 提交: 292 解决: 175 题目描述 为丰富男生节活动,贵系女生设置彩票抽奖环节,规则如下: 1、每张彩票上印有7个各不相同的号码,且这些号码的...
  • 双色球、大乐透彩票注数算法

    千次阅读 2016-06-25 18:29:06
    在实际开发过程,一些算法是我们经常用到的,下面就列举一些彩票注数的算法! 用排列组合算法,计算彩票总注数 C-Combination 组合数 A-Arrangement 排列数 N-元素的总个数 M-参与选择的元素个数 C m n=...
  • 为丰富男生节活动,贵系女生设置彩票抽奖环节,规则...兑奖规则如下:特等奖:要求彩票上的7个号码都出现在中奖号码;一等奖:要求彩票上的6个号码出现在中奖号码;二等奖:要求彩票上的5个号码出现在中奖号码...
  • 通过程序 lottery.pylottery.pylottery.py,我们能够观察到彩票调度算法执行进程的情况。 命令行参数解释如下: −h-h−h: 查看帮助信息以及推出 −s-s−s: 随机数生成器的种子 −j-j−j: 系统的进程数量 −l-...
  • 彩票计算奖金的小算法

    千次阅读 2016-07-20 22:03:41
    最近呢做了一个奖金计算的小算法,页面不好看,但是能实现功能。首先呢我们要购买6个红号一个蓝号。接下来要了解一下中奖的规则: 六等奖:一个蓝号或1-2个红号加一个蓝号为:5元; 五等奖:3个红号加1个蓝号...

空空如也

空空如也

1 2 3 4 5 ... 11
收藏数 204
精华内容 81
关键字:

中彩票算法