同様にパレート分布にしたがう乱数を生成するプログラムを作り、同様にグラフを書きな
さい。なお、パレート分布の確率密度関数は、
f=2(1/x)^3 x>=1
f=0 x<1
が問題です。グラフはヒストグラムです。
発生した乱数の区間をどう区切ればいいのかわかりません。教えていただきたいです。
import java.util.Random; public class Pareto{ public static void main(String[] args) throws Exception{ Random ran=new Random(); int num=20000; int[] count=new int[100]; int tenormore=0; double f=0; int x; for(int i=0;i<num;i++){ if(Math.random()>=1){ f=2*(1/Math.random())*(1/Math.random())*(1/Math.random()); }else if(Math.random()<1){ f=0; } x=(int)(f*Math.pow(10, 100)); if(x>=Math.pow(10, 101)){ tenormore++; }else{ count[x]++; } } for(int j=0;j<count.length;j++){ String title=(double)j/Math.pow(10, 100)+","+(double)(j+1)/Math.pow(10, 100); System.out.printf("[%s) : %s", title, "*".repeat(count[j])); System.out.println(); } String title=","; System.out.printf("[%s) : %s", title, "*".repeat(tenormore)); System.out.println(); } }
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/06/28 13:04