java吧 关注:1,188,877贴子:12,599,469
  • 29回复贴,共1

憋了半天,只想到产生一个随机数,产生多个随机数还没憋出来,然

只看楼主收藏回复

憋了半天,只想到产生一个随机数,产生多个随机数还没憋出来,然后还要统计每个数出现的次数,再统计每个数出现的概率,求大佬帮忙!



来自Android客户端1楼2019-06-11 12:45回复
    循环200次,在循环里判断,成功就加一


    IP属地:广东来自Android客户端2楼2019-06-11 12:53
    回复
      //产生多个随机数,然后还要统计每个数出现的次数,再统计每个数出现的概率,求大佬帮忙!
      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


      IP属地:甘肃3楼2019-06-11 13:17
      回复
        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 可能有简单的方法,去百度下


        4楼2019-06-11 13:26
        收起回复
          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)+"%");
          }


          5楼2019-06-11 14:24
          回复
            循环


            IP属地:黑龙江6楼2019-06-11 14:38
            回复
              定义长度为十的数组a
              定义int s
              循环一:循环200次
              s = 产生零到一之间的随机数并乘10取整
              a[s] += 1;
              循环二:循环十次 i=0 i<10 i++
              Print(i 的出现概率为 a[i]/200)


              IP属地:陕西来自Android客户端7楼2019-06-12 05:28
              收起回复


                IP属地:陕西9楼2019-06-12 21:48
                收起回复
                  看到这个、大概能推断你的能力咋样了,强烈劝退!!!!!!!


                  IP属地:广东来自iPhone客户端10楼2019-06-12 22:09
                  回复
                    这都不会?劝退。。。。


                    来自Android客户端11楼2019-06-17 18:59
                    回复
                      循环产生200个随机数,然后用map集合装起来,0-9作为键,出现的次数作为值,这样应该可以了吧,还是我想的太简单


                      IP属地:湖南来自Android客户端12楼2019-06-17 22:00
                      回复
                        new Random().ints(200,0,10).forEach(e->{}),然后在里面用键索引计数法统计频率就行了


                        IP属地:河南来自Android客户端13楼2019-06-24 08:25
                        回复