zoukankan      html  css  js  c++  java
  • 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应用+手游就业班就业班学费,赠送基础班全套课程。

  • 相关阅读:
    【笔记】求数据前n个主成分以及对高维数据映射为低维数据
    使用sklearn中的fetch_mldata的错误情况以及可能可行的解决方法
    【笔记】求数据的对应主成分PCA(第一主成分)
    【笔记】主成分分析法PCA的原理及计算
    【笔记】如何确定梯度计算的准确性以及调试梯度下降法
    【笔记】随机梯度下降法
    【笔记】线性回归中的梯度下降法(实现以及向量化并进行数据归一化)
    AttributeError: module 'numpy' has no attribute 'num'
    灵雀云CTO陈恺:从“鸿沟理论”看云原生,哪些技术能够跨越鸿沟?
    容器云在证券行业的探索与实践
  • 原文地址:https://www.cnblogs.com/gojava/p/3528504.html
Copyright © 2011-2022 走看看