//产生多个随机数,然后还要统计每个数出现的次数,再统计每个数出现的概率,求大佬帮忙! int[] a = new int[200]; int[] b = new int[10]; for (int i = 0; i < 200; i++) { int x = (int) Math.round(Math.random() * 9); a[i] = x; b[x] = b[x] + 1; } for (int i : a) { System.out.print(i); } System.out.println("\n数组a长度:"+a.length); for (int l : b) { System.out.println(l); } System.out.println("数组b长度:"+b.length); 22434814457376431419103736614536073416233466762128532867031323331964344146552512374984084910338447053485983676230071518572824659249163613211586902420169570854327663675309268415316295141626173618683466 数组a长度:200 12 25 20 30 26 17 29 15 15 11 数组b长度:10
import java.util.Random; public class T2 { public static void main(String[] args) { //创建随机数对象 Random r = new Random(); //定义10个变量,记录随机数出现次数 int num1 = 0; int num2 = 0; int num3 = 0; int num4 = 0; int num5 = 0; int num6 = 0; int num7 = 0; int num8 = 0; int num9 = 0; int num10 = 0; //循环200次,获取200个随机数 for (int x = 0; x < 200; x++) { int y = r.nextInt(10); //switch,case 方法来确定出现的随机数,并记录次数,也可以用if...else if.来判断记录次数 switch (y) { case 0: num1++; break; case 1: num2++; break; case 2: num3++; break; case 3: num4++; break; case 4: num5++; break; case 5: num6++; break; case 6: num7++; break; case 7: num8++; break; case 8: num9++; break; case 9: num10++; break; default: break; } } // 将得到的次数除以总循环次数,就是概率了,*1.0是为了得到小数,这样更精确 System.out.println("0的概率: "+num1*1.0/200); System.out.println("1的概率: "+num2*1.0/200); System.out.println("2的概率: "+num3*1.0/200); } } .......刚学到sql 可能有简单的方法,去百度下
Map<Integer, Integer> map = new HashMap<>(); Random ran = new Random(); for (int i = 0; i < 200; i++) { int num = ran.nextInt(10); if(map.containsKey(num)){ Integer temp = map.get(num).intValue()+1; map.put(num, temp); }else{ map.put(num, 1); } } for (Integer key : map.keySet()) { System.out.println("数字"+key+"出现的次数是"+map.get(key)+"次,概率是"+ new BigDecimal(map.get(key)*100).divide(new BigDecimal(200),2,RoundingMode.HALF_UP)+"%"); }