点名器:
班级里有N个学生,要求: 70%的概率随机到男生 30%的概率随机到女生
代码如下:
package MapDemo2;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Random;
public class test2 {
public static void main(String[] args) {
/*自动点名器
班级里有N个学生要求:
70%的概率随机到男生
30%的概率随机到女生
*/
//创建集合,用来存贮概率问题
ArrayList<Integer> list = new ArrayList<Integer>();
Collections.addAll(list,1,1,1,1,1,1,1);
Collections.addAll(list,0,0,0);
Collections.shuffle(list);
Random r=new Random();
int index=r.nextInt(list.size());
int n=list.get(index);
//创建两个集合分别用来存储男生姓名,和女生姓名
ArrayList<String> boylist=new ArrayList<>();
ArrayList<String> girllist=new ArrayList<>();
Collections.addAll(boylist,"男1","男2","男3","男4","男5","男6","男7","男8","男9","男10");
Collections.addAll(girllist,"女1","女2","女3","女4","女5");
if(n==1){
int index1=r.nextInt(boylist.size());
System.out.println(boylist.get(index1));
}else{
int index2=r.nextInt(girllist.size());
System.out.println(girllist.get(index2));
}
}
}
题目难点在于如何实现概率问题,我们可以先定义个集合用来实现概率,集合中7个1和3个0,分别用来实现70%和30%概率。