📄 n(0,3.6).cpp
字号:
#define N 100000
#define DIV 45 /*从-9到+5等分35个区间,间距为0.4*/
#define SPACING DIV*0.4
#define MEAN 0
#define VARIANCE 1.8974
#include "math.h"
#include "stdio.h"
main()
{
unsigned int M,C,x,i;
int j;
double y[N],mid[100],m,n,normal;
static int z[100]={0,0};
FILE *fp1,*abscissa1,*ordinate1;
fp1=fopen("result1.txt","a");
abscissa1=fopen("abscissa1.txt","a");
ordinate1=fopen("ordinate1.txt","a");
normal=-6.0;
M=(unsigned)pow(2,31)-1;
C=(unsigned)pow(7,5);
printf("Please input the initial value x(x>0, integer)");
scanf("%d",&x);
printf("M=%d\nC=%d\nx=%d\n\n",M,C,x);
for(i=1;i<N;i++)
{
x=(C*x)%M;
y[i]=((double)x)/M;
normal=normal+y[i];
if(i%12==0)
{
normal=VARIANCE*normal+MEAN;
for(j=-22;j<DIV-22;j++)
{
m=SPACING/DIV*j+0.1;
n=SPACING/DIV*(j+1)+0.1;
if(normal>=m && normal<=n)
z[j+22]=z[j+22]+1;
mid[j+22]=(m+n)/2;
}
fprintf(fp1,"%35.4f\n",normal);
normal=-6.0;
}
}
printf("\n\n\n");
for(j=0;j<DIV;j++)
printf("z[%d]=%d\n",j,z[j]);
for(j=0;j<DIV;j++)
{
printf("\n\n%f\t-->\t%f",mid[j],0.163*z[j]/z[22]);
fprintf(abscissa1,"%f\n",mid[j]);
fprintf(ordinate1,"%f\n",0.163*z[j]/z[22]);
}
printf("\n\n");
fclose(fp1);
fclose(abscissa1);
fclose(ordinate1);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -