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;

}

}

   

最新内容请见作者的GitHub页:http://qaseven.github.io/

  

时间: 2024-07-28 12:43:31

java 语言实现的随机数生成算法的相关文章

既然java语言提供了排序算法的封装,为什么我们还要自己写冒泡

问题描述 既然java语言提供了排序算法的封装,为什么我们还要自己写冒泡 一个关于排序的问题:既然java语言提供了排序算法的封装,为什么我们还要自己写冒泡排序?什么时候用到冒泡排序? 解决方案 目的是为了让你学习,冒泡排序是最容易理解的排序算法. 解决方案二: Java语言写的各种排序算法[未完] 解决方案三: java封装好的是快排吧,首先快排是不稳定排序,只是平均时间复杂度最低而已.简单排序中直接插入最好,快速排序最快,当文件为正序时,直接插入和冒泡均最佳.当数据量过大时堆排序的优势又体现

java语言中哪一种排序算法用的最多?

问题描述 java语言中哪一种排序算法用的最多? java语言中哪一种排序算法用的最多?快速排序既然效率高,为什么我们还要用冒泡呢?冒泡的好处是什么? 解决方案 不能说快速排序一定效率高,对于有序的序列,归并排序的效率就更高.对于大量小整数的排序,基数排序不但效率高,而且占用内存少.各种排序有不同的使用场合.所以都要学习,而不是问哪种常用. 解决方案二: 冒泡排序是用来理解排序的思路的,快速排序是默认的java排序,但是稳定性极差,建议你去百度八大排序,从快速插入排序开始,系统的学习理解排序.

Go 语言的垃圾回收算法被吹过头?与Java比如何?

Go语言正在构建的垃圾收集器(GC),似乎并不像宣传中那样的,技术上迎来了巨大突破.那么,与Java语言作对比之后,该怎么选择呢? 写在前面 最近,我读到一些大肆宣传Go语言最新垃圾回收器的文章,这些文章对垃圾回收器的描述让我感到有些厌烦.这些文章有些是来自Go项目.他们宣称GC技术正迎来巨大突破. 下面Go团队在2015年8月发布的新垃圾回收器的启动声明:https://blog.golang.org/go15gc Go正在构建一个划时代垃圾回收器,2015年,甚至到2025年,或者更久--G

Java语言编码规范(Java Code Conventions)

编码|规范   1 介绍(Introduction)1.1 为什么要有编码规范(Why Have Code Conventions)编码规范对于程序员而言尤为重要,有以下几个原因:- 一个软件的生命周期中,80%的花费在于维护- 几乎没有任何一个软件,在其整个生命周期中,均由最初的开发人员来维护- 编码规范可以改善软件的可读性,可以让程序员尽快而彻底地理解新的代码- 如果你将源码作为产品发布,就需要确任它是否被很好的打包并且清晰无误,一如你已构建的其它任何产品 为了执行规范,每个软件开发人员必须

学习java语言思想 了解java语言优势

虽然Java技术是那么的诱人,前景也似乎非常光明,但是不是已经有了C.C++等广泛应用并且大获成功的语言了吗?微软不是又在大力推广他们的.Net技术吗?LISP.Prolog等人工智能语言在北美洲.欧洲的金融领域不是也有很大的应用吗?学习Java编程,是不是一个明智的选择呢? 带着这些问题,让我们来看看Java的优势. 1.免费! Sun免费提供用来开发Java应用程序的一切,你不必付任何的版税.或许你会将信将疑:资本家搞共产了?实际上,Sun在Java上的收益确实不大,远远比不过垄断Java应

Java语言编码规范

编码|规范 1 介绍(Introduction) 1.1为什么要有编码规范 编码规范对于程序员而言尤为重要,有以下几个原因: - 一个软件的生命周期中,80%的花费在于维护- 几乎没有任何一个软件,在其整个生命周期中,均由最初的开发人员来维护- 编码规范可以改善软件的可读性,可以让程序员尽快而彻底地理解新的代码- 如果你将源码作为产品发布,就需要确任它是否被很好的打包并且清晰无误,一如你已构建的其它任何产品 为了执行规范,每个软件开发人员必须一致遵守编码规范. 1.2版权声明 本文档反映的是Su

Java语言编码规范 选择自 hk

编码|规范 1 介绍(Introduction) 1.1为什么要有编码规范 编码规范对于程序员而言尤为重要,有以下几个原因: - 一个软件的生命周期中,80%的花费在于维护- 几乎没有任何一个软件,在其整个生命周期中,均由最初的开发人员来维护- 编码规范可以改善软件的可读性,可以让程序员尽快而彻底地理解新的代码- 如果你将源码作为产品发布,就需要确任它是否被很好的打包并且清晰无误,一如你已构建的其它任何产品 为了执行规范,每个软件开发人员必须一致遵守编码规范. 1.2版权声明 本文档反映的是Su

使用Java语言进行Unicode代理编程

早期 Java 版本使用 16 位 char 数据类型表示 Unicode 字符.这种设计方 法有时比较合理,因为所有 Unicode 字符拥有的值都小于 65,535 (0xFFFF), 可以通过 16 位表示.但是,Unicode 后来将最大值增加到 1,114,111 (0x10FFFF).由于 16 位太小,不能表示 Unicode version 3.1 中的所有 Unicode 字符,32 位值 - 称为码位(code point) - 被用于 UTF-32 编码模式. 但与 32

详解Java语言中内存泄漏及如何检测问题

Java的一个重要优点就是通过垃圾收集器(Garbage Collection,GC)自动管理内存的回收,程序员不需要通过调用函数来释放内存.因此,很多程序员认为Java不存在内存泄漏问题,或者认为即使有内存泄漏也不是程序的责任,而是GC或JVM的问题.其实,这种想法是不正确的,因为Java也存在内存泄露,但它的表现与C++不同. 随着越来越多的服务器程序采用Java技术,例如JSP,Servlet, EJB等,服务器程序往往长期运行.另外,在很多嵌入式系统中,内存的总量非常有限.内存泄露问题也