
符合28个概率分布函数的随机数生成的Java代码实现(更新中)
发布日期:2021-05-15 08:18:00
浏览次数:17
分类:精选文章
本文共 5505 字,大约阅读时间需要 18 分钟。
接口:
public interface hanshu { void rand_lianxu_print(double a1,int []num,int n); void choose_hanshu(int n,int []num,int m); double Beta_Distribution(double alpha, double beta);//(1) int Binomial_Distribution(double probaility, int N);//(2) double Cauchy_Distribution(double a1,double x0, double lamda);//(3)参数:随机数(0-1) double Chisquare_Distribution(int k, double mean, double sigama);//(4) double Constantreal_Distribution(int i);//(5)--- double Enumerated_Distribution(int i);//(6)--- double Exponential_Distribution(double a1);//(7) double F_Distribution(int n1, int n2,double normol_mean,double normol_sigama);//(8) double Gamma_Distribution(int i);//(9)-- int Geometric_Distribution(double probaility);//(10)参数:k次成功的概率中介 double Gumbel_Distribution(double a1, double k, double miu, double sigma);//(11) int Hypergeometric_Distribution(int N, int n,int m);//(12) double Laplace_Distribution(double beta);//14 double Levy_Distribution(int i);//(15)--- double Logistic_Distribution(double a1);//16参数:随机数(0-1) double MultivariateNormal_Distribution(int i);//(17)--- double Nakagami_Distribution(double possiblity,int r);//(18) double Normal_Distribution(double mean, double sigama);//(19) double Pareto_Distribution(int xmin,int k);//(20) int Pascal_Distribution(double possiblity,int r);//(21) int Possion_Distribution(int lamda);//(22)参数:lamda double T_Distribution(int n1, double normol_mean,double normol_sigama);//(23) double Triangular_Distribution(int a,int b, int c, double a1);//(24) double UniformInteger_Distribution(int i);//(25)--- double UniformReal_Distribution(int i);//(26)--- double Weibull_Distribution(double a, double b);//(27) double Zipf_Distribution(double a1);//28参数:随机数(0-1)}
主类:
import org.w3c.dom.ls.LSInput;import java.util.Arrays;import java.util.Scanner;import static java.lang.Math.log;import java.lang.Math.*;public class distributionimplements hanshu{ private static final int Max = 1 << 10; public static void main(String[] args) { distribution z = new distribution(); int []num={0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0};//求频率个数 double x; Scanner in = new Scanner(System.in); System.out.println("请输入您要产生的随机数个数?"); int rand_num = in.nextInt(); System.out.println("请输入随机数符合的分布函数?(输入序号即可)"); System.out.println("1、Beta_Distribution;2、Binomial_Distribution3、Cauchy_Distribution"); int hanshu_choose = in.nextInt(); z.choose_hanshu(hanshu_choose,num,rand_num);//选择函数进行处理 //输出随机数个数 for(int i=0;i 1.0){ u = Math.random(); v = Math.random(); x = Math.pow(u,1/alpha); y = Math.pow(v,1/beta); } return x/(x+y); } @Override public double Normal_Distribution(double mean, double sigama){ int i ; double x=1.0,y; for (i=0;i<12;i++){ x+=Math.random(); } x = x-6.0; y = mean+x*sigama; return y; } @Override public double Chisquare_Distribution(int k, double mean, double sigama){ double dv = 0.0; for (int i=0;i 0){ if(Math.random() r){ break; } } return k; } @Override public double Triangular_Distribution(int a,int b, int c, double a1){ if(a1>=a&&a1<=c){ return a+(a1*(b-a)*(c-a)/2); } else if (a1>=c&&a1<=b){ return b-(a1*(b-a)*(b-c)/2); } else return 0; } @Override public double Constantreal_Distribution(int i){return 1.0;} @Override public double Enumerated_Distribution(int i){return 1.0;} @Override public double Levy_Distribution(int i){return 1.0;} @Override public double MultivariateNormal_Distribution(int i){return 1.0;} @Override public double UniformInteger_Distribution(int i){return 1.0;} @Override public double UniformReal_Distribution(int i){return 1.0;} //验证随机数并返回区间概率 @Override public void rand_lianxu_print(double a1,int []num,int n){ double i= -5.0; int j=0; if (a1>0){ System.out.println(a1); } while(i<5.1){ if(a1>=i&&a1<=i+0.5){ num[j]++; break; } j++; i = i+0.5; } } @Override public void rand_lianxu_print_1(double a1,int []num,int n,double c){ double i= 0.5,k,k1; int j=0; if (a1>0){ System.out.println(a1+"hahahahaha"); } while(i<10){ k = Math.log(i+0.5/(0.5-i)); k1 = Math.log(i+0.55/(0.55-i)); System.out.println(k+"k"); System.out.println(k1+"k1"); if(a1>=k&&a1<=k1){ num[j]++; break; } j++; i = i+0.05; } } @Override public double rand_lianxu_print_2(double a1){ return 1/(1+Math.exp(-a1)); } @Override public void choose_hanshu(int n,int []num,int m){ Scanner in = new Scanner(System.in); switch (n){ case 1: System.out.println("请输入参数alpha和beta"); double alpha = in.nextDouble(); double beta = in.nextDouble(); double x; for(int i=0;i
持续更新中。
Java新手,请大佬对有问题的地方评论指点
发表评论
最新留言
路过按个爪印,很不错,赞一个!
[***.219.124.196]2025年05月02日 16时58分47秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
SecSolar:为代码“捉虫”,让你能更专心写代码
2021-05-14
微信JS-SDK DEMO页面和示例代码
2021-05-14
GridView自定义删除操作
2021-05-14
一张图搞定RPC框架核心原理
2021-05-14
Scala中的包
2021-05-14
他来了他来了,他带着云栖大会的免费门票走来了
2021-05-14
获取linux 主机cpu类型
2021-05-14
pwntools编写技巧
2021-05-14
How2Heap笔记(三)
2021-05-14
pycharm使用(新建工程、字体修改、调试)
2021-05-14
Python学习笔记——元组
2021-05-14
无法打开文件“opencv_world330d.lib”的解决办法
2021-05-14
算法训练 未名湖边的烦恼(递归,递推)
2021-05-14
什么是接口
2021-05-14
记录-基于springboot+vue.js实现的超大文件分片极速上传及流式下载
2021-05-14
JavaScript高级程序设计第四版学习记录-第九章代理与反射
2021-05-14
Allegro中如何消除器件本身Pin间距报错
2021-05-14
Flask--简介
2021-05-14