符合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 distribution
implements 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新手,请大佬对有问题的地方评论指点

上一篇:Deep Learning from Scratch(深度学习入门鱼书)手写总结(一)
下一篇:C语言生成符合柯西、指数分布(连续型)的随机数(手写)

发表评论

最新留言

路过按个爪印,很不错,赞一个!
[***.219.124.196]2025年05月02日 16时58分47秒