山科java实验4-3 写一个彩票的模拟程序:30选7。

写一个彩票的模拟程序:30选7。随机(1~30之间)生成7个随机数,注意不能重复。然后从键盘输入7个数,对比7个数是否与随机数有相同的。最后显示“中了几个号”。同时,如果中了7个号,显示一等奖;如果中了6个号,显示二等奖;如果中了5个号,显示三等奖。要求:首先在注释中写出程序的实现思想,特别是程序所使用的数据结构,然后写出Java实现代码。【说明:键盘输入可以使用Scanner类】

package zuoye3;
import java.util.*;
//由题中说的随机数不能重复可知这符合集合的特性
//利用集合内元素不能重复的特点插入7个不同的数字,然后迭代遍历统计猜中数字
public class Main {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Set<Integer> cp = new TreeSet<Integer>();
		Random rand = new Random();
		while(cp.size()<7)
		{
			cp.add(rand.nextInt(30)+1);//生成[1,31)区间的随机整数
		}
		Scanner scan = new Scanner(System.in);
		int num = 0;
		for(int i = 0;i < 7;i++) 
		{
			int m = scan.nextInt();
			Iterator<Integer> it = cp.iterator();
			while(it.hasNext())
			{
				if(m == it.next())
					num++;
			}
		}
		if(num==7)
			System.out.println("你中了一等奖!");
		else if(num==6)
			System.out.println("你中了二等奖!");
		else if(num==5)
			System.out.println("你中了三等奖!");
		else 
			System.out.println("很遗憾,你并没有中奖!");
		scan.close();
	}
}

 

VB6.0实现彩票367号程序,功能:生成14个过滤条件值保存DB,查询指定期的前X期开出的个数,七期随机号法,统计每个号码出球规律,"随机下注数据,从定号码中遍历组合,在中号码列表中继续筛等。   程序主窗口中的TAB标签项卡实属不错,你可把它用在你的应用程序中。   注:统一起见,下标全部从1用起,0下标不用命名中的Sum这里统一为 个数 的意思,Total一般的数值变量,尽量统一使用Long型,因为Long型的取值范围大,而且速度快一些,只是内存多一点。   1000个数   Quick最快,循环只有500多次   Bucket第二,循环只有999次   过滤操作具体执行过程   一个条件一个条件的全部过滤所有   一次一注号码轮流进行一个条件一个条件的过滤,一次一个条件过滤全部,保留下来的进行下一轮过滤,那容错就几乎无法实现了,如果要实现容错机制的话,应该是一注号码要通过全部过滤条件,然后可利用容错,符合条件和容错就保留下来,鉴于保存所有号码的数组是二维的,那么就直接对保存的二维数组进行各个条件过滤,不可能每次用一个一维数组保存,再用这个一维来过滤。用一个一维数组来记录容错情况,也就是符合多少个条件,比如14个条件,设定了容错率为6,那么只要有8个或以上过滤条件符合,就保留下来。放到一个新的二维数组中奇号个数,0-7   参数:二维数组(),存放一注号码,7个   返回值:奇号的个数,一个Variant数组,里面分别是每注的奇数的个数   UBound(Num, 1) 第一维是注数
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值