您的位置:首页 > 编程语言

抽奖:随机生成100个数,从中抽出1等奖5个,二等奖分两次抽出10个,三等奖分3次抽出30个 具体的代码,控制台实现就行,随机的100个数,随便100个,抽出的号码不能重复!

2016-05-12 09:25 627 查看
package choujiang;

import java.util.ArrayList;

import java.util.HashSet;

import java.util.List;

import java.util.Random;

import java.util.Set;

public class wardness {

public static void main(String[] args)

{ // TODO Auto-generated method stub

Random rand = new Random();

//定义随机数产生器

List<Integer> list_One = new ArrayList<Integer>();

//定义一等奖数字集合

List<Integer> list = null;

//用list时

list = new ArrayList<Integer>();

//定义100个随机数 集合

for(int i = 0; i < 100;)

{ //产生100个3位数 的随机不重复数字

if(check(rand.nextInt(899) + 100,list)) { i++; }

//用set时
Set<Integer> set = new HashSet<Integer>();
while(set.size() < 100)
{ set.add(rand.nextInt(899) + 100); }
list = new ArrayList<Integer>(set);
for(int k = 0; k < 5;)
{//产生5个随机一等奖
if(check(rand.nextInt(100),list))
{ k++; } }
for(int a = 0; a < list_One.size();a++)
{ System.out.println(list_One.get(a)); } }
}
/**
验证该数字是否在集合中
@param i *
@param list
@return */
public static boolean check(int i,List<Integer> list)
{ if(list.size() == 0)
{ list.add(i); }
else
{ for(int j = 0; j < list.size(); j++)
{ if(i == list.get(j))
{ return false; } }
list.add(i); }
return true; }
/**
抽取随机数作为中奖的下标(重载)
@param i
@param list
@param list_One
@return */
public static boolean check(int i,List<Integer> list,List<Integer> list_One)
{ if(list.size() == 0)
{ list_One.add(list.get(i)); }
else
{ for(int j = 0; j < list.size(); j++){ if(i == list.get(j))
{ return false; } }
list_One.add(list.get(i)); } return true; }
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: