qileilove

          blog已經轉移至github,大家請訪問 http://qaseven.github.io/

          java 語言實現的隨機數生成算法

          package MyMath;
          import java.util.Random;
          //生成隨機數  調用的是系統的方法
          public class random {
          public static void main(String args[])
          {
          Random random=new Random(5);
          for(int i=0;i<10;i++)
          {
          System.out.println(random.nextInt());
          }
          }
          }
            引用java 類庫的實現方法
            下面自己寫隨機,,了解一下種子數,,其實對同一個種子生成的隨機數是相同的,,但是種子數是不對更新的
          package MyMath;
          public class random1 {
          public static void main(String args[])
          {
          double []r=new double[2];
          r[0]=5.0;
          for(int i=0;i<10;i++)
          {
          System.out.println(rand1(r));
          }
          }
          public static double rand1(double []r)
          {
          double temp1,temp2,temp3,p,base;
          base=256.0;
          int  a=17,b=139;
          temp1=r[0]*17+139;
          temp2=(int)(temp1/256);
          temp3=temp1-temp2*base;
          r[0]=temp3;
          p=temp3/256;
          return p;
          //基本思想 就是   遞推法  r[i]=mod(a*r[i-1],base);  隨機數 p=r[i/base;
          //這個隨機數 確實是隨機的  但是缺陷就是它并不符合 正態分布  種子的選取會影響后來的分布的
          }
          }


           引用一些公式就實現了符合正態分布的
          public class random2 {
          public static void main(String args[])
          {
          double []r=new double[2];
          r[0]=5.0;
          for(int i=0;i<10;i++)
          {
          System.out.println(randZT(2.0,3.5,r));
          }
          }
          //符合正態分布的隨機算法
          /*
          *
          *
          */
          public static double rand1(double []r)
          {
          double temp1,temp2,temp3,p,base;
          base=256.0;
          int  a=17,b=139;
          temp1=r[0]*17+139;
          temp2=(int)(temp1/256);
          temp3=temp1-temp2*base;
          r[0]=temp3;
          p=temp3/256;
          return p;
          //基本思想 就是   遞推法  r[i]=mod(a*r[i-1],base);  隨機數 p=r[i/base;
          //這個隨機數 確實是隨機的  但是缺陷就是它并不符合 正態分布  種子的選取會影響后來的分布的
          }
          public static double randZT(double u,double t,double []r)
          {
          int i;
          double total=0.0;
          double result;
          for(i=0;i<12;i++)
          {
          total+=rand1(r);
          }
          result=u+t*(total-6.0);
          return result;
          }
          }

          posted on 2013-10-16 10:51 順其自然EVO 閱讀(242) 評論(0)  編輯  收藏


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          <2013年10月>
          293012345
          6789101112
          13141516171819
          20212223242526
          272829303112
          3456789

          導航

          統計

          常用鏈接

          留言簿(55)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 莱州市| 宽城| 青铜峡市| 崇左市| 长海县| 浠水县| 东山县| 清苑县| 眉山市| 阜宁县| 新龙县| 盐边县| 沾益县| 大方县| 太康县| 周宁县| 深水埗区| 正镶白旗| 五寨县| 廉江市| 抚松县| 鄂温| 信丰县| 乃东县| 漳浦县| 兴海县| 五河县| 福泉市| 德令哈市| 穆棱市| 通州市| 鹿邑县| 揭西县| 南澳县| 来宾市| 龙山县| 当阳市| 温州市| 灵寿县| 子长县| 浦县|