• java 语言实现的随机数生成算法


    ----------------------疯狂软件java培训分享---------------------

      广州疯狂软件学院拥有三大课程体系包括:java课程,android课程,ios课程,疯狂软年终钜惠,报名java就业班,免费赠送基础班,名额有限,本月火热报名中,欢迎有志之士电话或者QQ咨询。

      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;

      }

      }

      疯狂软件java培训、ios培训新年钜惠,报名Java就业班免费赠送java基础班,报名iOS就业班免费赠送iOS基础班,本月火速抢座中,为回报广大新老学员,值此新年之际推出报读就业班赠送基础班的活动

      -----------------------------------2014年初活动--------------------------------------

      疯狂软件Java学习班方向:

      1.报读JavaEE就业班赠送基础班课程。

      2.开班一次性(一个月内)交清JavaEE就业班学费,赠送基础班全套课程。

      疯狂软件iOS学习班方向:

      1.报读iOS应用+手游就业班赠送iOS基础班课程。

      2.开班一次性(一个月内)交清iOS应用+手游就业班就业班学费,赠送基础班全套课程。

  • 相关阅读:
    lintcode254- Drop Eggs- easy
    lintcode462- Total Occurrence of Target- easy
    lintcode63- Search in Rotated Sorted Array II- medium
    lintcode62- Search in Rotated Sorted Array- medium
    lintcode74- First Bad Version- medium
    lintcode75- Find Peak Element- medium
    lintcode160- Find Minimum in Rotated Sorted Array II- medium
    lintcode159- Find Minimum in Rotated Sorted Array- medium
    lintcode447- Search in a Big Sorted Array- medium
    VS2005、vs2008+WinXPDDK+DDKWizard配置驱动开发环境 分类: VC++ 2015-01-05 09:38 448人阅读 评论(0) 收藏
  • 原文地址:https://www.cnblogs.com/gojava/p/3528504.html
Copyright © 2020-2023  润新知