用java设计程序。问题描述:公司总人数为100,计划能随机抽出每一个获奖者,一等奖10%,二等奖
用java设计程序。问题描述:公司总人数为100,计划能随机抽出每一个获奖者,一等奖10%,二等奖20%,三等奖30%,为了扩大抽奖面,前面已经得奖人不能重复获奖。请为公...
用java设计程序。问题描述:公司总人数为100,计划能随机抽出每一个获奖者,一等奖10%,二等奖20%,三等奖30%,为了扩大抽奖面,前面已经得奖人不能重复获奖。请为公司设计一个应用程序,能仿真公平抽奖
设计的算法只需要考虑抽取10%的一等奖 展开
设计的算法只需要考虑抽取10%的一等奖 展开
1个回答
展开全部
调试好了 直接用 public static void main(String[] args) { Random rand = new Random();//定义随机数产生器 List list_One = new ArrayList();//定义一等奖数字集合 List list = null; //用list时 /*list = new ArrayList();//定义100个随机数 集合 for(int i = 0; i < 100;){//产生100个3位数 的随机不重复数字 if(check(rand.nextInt(899) + 100,list)){ i++; } }*/ //用set时 Set set = new HashSet(); while(set.size() < 100){ set.add(rand.nextInt(899) + 100); } list = new ArrayList(set); for(int k = 0; k < 5;){//产生5个随机一等奖 if(check(rand.nextInt(100),list,list_One)) 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 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 list,List 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; }
追问
交个朋友吧
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询