-
彩票算法
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; }
-
彩票算法 编程python_[蓝桥杯][算法提高VIP]阮小二买彩票-题解(Python代码)
2021-02-05 14:15:26解题思路:利用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]))
-
彩票软件中热温冷算法的实现情况
2019-09-24 18:42:27彩票软件中热温冷算法的实现情况 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
2020-02-07 14:53:15蓝桥杯 算法提高 彩票 Python 为丰富男生节活动,贵系女生设置彩票抽奖环节,规则如下: 1、每张彩票上印有7个各不相同的号码,且这些号码的取值范围为[1, 33]; 2、每次在兑奖前都会公布一个由七个互不相同的... -
彩票调度:彩票调度是操作系统中进程的概率调度算法。 每个过程都分配有一定数量的彩票,并且调度程序将...
2021-02-04 13:47:34彩票调度:彩票调度是操作系统中进程的概率调度算法。 每个过程都分配有一定数量的彩票,并且调度程序将随机抽取一张彩票以选择下一个过程 -
双色球大乐透彩票模拟算法以及apk包.zip
2020-07-31 08:49:06纯手工编写的基于java语言的彩票出球算法,喜欢买双色球和大乐透彩票的朋友,可以下载玩玩,资源包中包含java代码的出球算法以及模拟选号,还有Android的apk包,用Android手机的朋友可以直接下载安装使用,每次想买... -
类彩票选号算法
2015-07-08 19:05:10彩票选号,例如36选7,从36个数字中随机选取7个,这在算法上如何实现呢? 最简单的想法就是,每次都从1~36随机选取一个数,一共选7次,不就可以了吗? 但这样会有一个问题——重复,彩票选号是不能重复的。 ... -
python 彩票预测算法_Python爬虫之爬取彩票并简单统计
2020-12-24 04:32:34一、背景在网上闲逛的日子总归是无聊的,百度...二、网页分析今天爬取的是中国彩票网(中彩网)中的福彩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++){ ... -
python彩票预测算法软件_python用遗传算法 神经网络 模糊逻辑控制算法对彩票乐透数据进行预测...
2021-01-14 10:41:50原文链接:http://tecdat.cn/?p=3014前言预测是通过基于来自过去...预测分析通过分类,深度学习能够在例如图像中的像素和人的名称之间建立相关性。你可以称之为静态预测。出于同样的原因,暴露于足够的正确数据,深... -
中彩票比被雷劈还难?那是你没掌握算法……
2019-10-08 14:55:50全文共3030字,预计学习时长6分钟靠玩彩票谋生的可能性有多大?2005年,麻省理工学院的一群学生一起组成了一个博彩组织。他们确定了想赌的游戏,计算了赔率,并获得了数百万... -
蓝桥杯 算法提高 彩票--C语言
2020-07-28 14:01:05题目 1521: [蓝桥杯][算法提高VIP]彩票 时间限制: 1Sec 内存限制: 128MB 提交: 292 解决: 175 题目描述 为丰富男生节活动,贵系女生设置彩票抽奖环节,规则如下: 1、每张彩票上印有7个各不相同的号码,且这些号码的... -
双色球、大乐透彩票注数算法
2016-06-25 18:29:06在实际开发过程中,一些算法是我们经常用到的,下面就列举一些彩票注数的算法! 用排列组合算法,计算彩票总注数 C-Combination 组合数 A-Arrangement 排列数 N-元素的总个数 M-参与选择的元素个数 C m n=... -
彩票 (蓝桥杯~算法提高 )
2019-09-26 10:59:31为丰富男生节活动,贵系女生设置彩票抽奖环节,规则...兑奖规则如下:特等奖:要求彩票上的7个号码都出现在中奖号码中;一等奖:要求彩票上的6个号码出现在中奖号码中;二等奖:要求彩票上的5个号码出现在中奖号码中... -
《操作系统导论》实验五:模拟彩票调度算法
2020-05-18 21:19:33通过程序 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个蓝号...
-
拓展-10【Promises/A+规范与源码重写】
-
龙芯生态应用开发基础:C语言精要
-
自述文件:练习编写readme.md-源码
-
27 后台开发2
-
深究字符编码的奥秘,与乱码说再见
-
Operating System
-
C语言
-
用Hadoop进行分布式数据处理第2部分:进阶
-
Amoeba 实现 MySQL 高可用、负载均衡和读写分离
-
工程制图 AutoCAD 2012 从二维到三维
-
性能调优攻略
-
学习记录:python schedule定时任务
-
Python--字典(dict)
-
JavaWeb-E-mall:JavaWeb的线上商城项目,使用到了Java,HTML,CSS,JavaScript等技术-源码
-
mahfuznow-termux-源码
-
android核心组件(1)常用布局,adapter,handler,UI
-
libFuzzer视频教程
-
flow-bin:Flow的二进制包装器-JavaScript的静态类型检查器-源码
-
人的“模式识别”与设计的认知效率
-
Xamarin天气-源码