python ```###前提・実現したいこと 0から1までの疑似乱数を発生させ、発生させた乱数をχ二乗検定したい。 階級は0~0.1,0.1~0.2......0.9~1.0 ###発生している問題・エラーメッセージ f_kx[j]+=1 IndexError:list index out of range 階級ごとの度数をもとめられない ###該当のソースコード ```ここに言語を入力 ```ここに言語を入力 N=10000 #乱数の数 M=10 x=[] f_kx=[] a=1229 c=351750 m=1664501 s=r=300 for i in range(N): #乱数発生 r=float((a*r+c)%m) x.append(r/m) for j in range(M): if (x[i]>j*0.1) and (x[i]<=j*0.1+0.1):#階級ごとに f_kx[j]+=1 for j in range(M):print(f_kx[j])
###試したこと
cでは疑似乱数を発生することができた
#define N 10000 #define M 10 int main(void){ int i,j; int f_kx[M]; int a=1229,c=351750,m=1664501,s=300,r=300; double x[N]; double kai,e_k; for(j=0;j<M;j++){//f_kxの初期化 f_kx[i]=0; } for(i=0;i<N;i++){//乱数発生 r=(a*r+c)%m; x[i]=r/m; for(j=0;j<M;j++){ if(x[i]>j*0.1&&x[i]<=j*0.1+0.1{ //階級ごとに f_kx[j]++; } } } for(i=0;i<M;i++){ //χ二乗検定 e_k=N*(i*0.1+0.1-i*0.1){ kai=((f_kx[i]-e_k)*(f_kx[i]-e_k)/e_k)+kai; } printf("χ^2=%f\n",kai); }
###補足情報(言語/FW/ツール等のバージョンなど)
回答1件
あなたの回答
tips
プレビュー