1. java中有一个随机函数 Math.random()可以实现生成[0,1)之间的一个数,且生成每一个数之间的概率可以视为相等。

      1. int testTimes = 20000000;
      2. int count = 0;
      3. for (int i = 0; i < testTimes; i++) {
      4. if (Math.random()<0.75){
      5. count++;
      6. }
      7. }
      8. System.out.println((double)count/(double)testTimes);//0.7500332
    2. 改造成:[0,N)之间,生成每一个数之间的概率为相等;

      1. int count = 0;
      2. int testTimes = 20000000;
      3. for (int i = 0; i < testTimes; i++) {
      4. if (Math.random()*8<5){
      5. count++;
      6. }
      7. }
      8. System.out.println((double)count/(double)testTimes);//0.6250673
      9. System.out.println((double)5/(double)8);//0.625
    3. e

      // 取整处理
      int K = 9;
      int testTimes = 20000000;
      int[] counts = new int[K];
      for (int i = 0; i < testTimes; i++) {
       int ans = (int)(Math.random()*K);
       counts[ans]++;
      }
      for (int i = 0; i < K; i++) {
       System.out.println(i+"这个数,出现了"+counts[i]+"次");
      }
      
    4. [0,x]出现的概率为x,(x<1),如何实现[0,x]出现的概率为x^2