在该程序当中一共生成了三组随机数:
第一组随机数用于表示抽奖盒子当中的0-9 10 个随机小球
第二组随机数表示1-10 这10个人随机从抽奖盒子当中所拿到的10个不同的位置处的小球
第三组随机数表示1-10 这10个人已经拥有的随机数字
当某一个人所拥有的随机数和从盒子当中所抽取到的随机数字相同的时候,则表示其中奖,若没有匹配则没有中奖
package testjava;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Random;
public class Test3 {
public static void main(String[] args) {
// 构建抽奖盒子
List<Integer> list=new ArrayList<Integer>();
int [] box=new int[10];
Random random=new Random(15);
while(list.size()<10)
{
int r=random.nextInt(10);
if(list.contains(r))
continue;
list.add(r);
}
int i=0;
System.out.println("盒子当中的十个随机数为:");
for (Integer integer : list)
{
System.out.print(integer+",");
box[i]=integer;
i++;
}
System.out.println();
//设定1-10十个人所选择的随机数的位置,即将10个固定位置的随机数打乱位置分配给10个人,以此来模拟10个人的随机抽奖操作
Random random3=new Random(8);
List<Integer> arrayNumber=new ArrayList<Integer>();
while(arrayNumber.size()<10)
{
int number=random3.nextInt(10);
if(arrayNumber.contains(number))
continue;
arrayNumber.add(number);
}
System.out.println("10个人依次选择的数字下标为:");
for (Integer integer : arrayNumber) {
System.out.print(integer+",");
}
System.out.println();
System.out.println("10个人所抽中的数字分别为:");
Map<String, Integer> choseNumber=new HashMap<String,Integer>();
for(int j=0;j<10;j++)
{
choseNumber.put("person"+j, box[arrayNumber.get(j)]);
}
for(int j=0;j<10;j++)
{
System.out.print(choseNumber.get("person"+j)+",");
}
//设定10个抽奖人已经拥有的随机数
Random random2=new Random(10);
List<Integer> numbers=new ArrayList<Integer>();
while(numbers.size()<10)
{
int number=random2.nextInt(10);
if(numbers.contains(number))
continue;
numbers.add(number);
}
// 设定10个抽奖人
Map<String, Integer> persons=new HashMap<String, Integer>();
for(int j=0;j<10;j++)
{
persons.put("person"+j,numbers.get(j));
}
System.out.println();
System.out.println("10个抽奖人所拥有的随机数分别为:");
for(int j=0;j<10;j++)
{
System.out.print(persons.get("person"+j)+",");
}
// 对所拥有的字符串和已经抽中的字符串对象进行匹配操作,来判断当前对象是否中奖
for(int j=0;j<10;j++)
{
if(persons.get("person"+j)==choseNumber.get("person"+j))
{
System.out.println("当前中奖人为:person"+j+",中奖编号为:"+persons.get("person"+j));
}
}
}
}
程序运行结果: