#include<stdio.h>
unsigned y1(void);
unsigned y2(void);
unsigned r=13;
void main(void)
{
int X;
int l=50;
int i,z[300],z1[300],z2[300];
int j;
int k;
int n,h,temp;
int m;
int o,J[300][7];
int p;
int q;double A[300][7];double R[7];
int r;
for(X=0;X<4;X++){
for (i=0;i<l;i++){
z1[i]=y1();
z2[i]=y2();
}
printf("\ny1:y2\n");
for (j=0;j<l;j++){
printf("%8d:%d",z1[j],z2[j]);
if(z1[j]<z2[j]){
z[j]=z1[j];
}
else{
z[j]=z2[j];
}
}
printf("\nz=min(y1,y2)\n");
for (k=0;k<l;k++){
printf("%8d",z[k]);
}
for (n=0;n<l;n++){
for (h=0;h<l-1;h++){
if(z[h]>z[h+1]){
temp=z[h];
z[h]=z[h+1];
z[h+1]=temp;
}
else{}
}
}
printf("\nz(arrange)\n");
for (m=0;m<l;m++){
printf("%8d",z[m]);
}
for (o=0;o<l;o++){
if(z[o]<2){
J[l][1]=(o+1);
}
else if(z[o]<3){
J[l][2]=(o+1)-J[l][1];
}
else if(z[o]<4){
J[l][3]=(o+1)-J[l][1]-J[l][2];
}
else if(z[o]<5){
J[l][4]=(o+1)-J[l][1]-J[l][2]-J[l][3];
}
else if(z[o]<6){
J[l][5]=(o+1)-J[l][1]-J[l][2]-J[l][3]-J[l][4];
}
else if(z[o]<7){
J[l][6]=(o+1)-J[l][1]-J[l][2]-J[l][3]-J[l][4]-J[l][5];
}
}
J[l][7]=0;
printf("\nTools Lifetime Period (%d times random number)\n",l);
for (p=0;p<7;p++){
printf("J %d [%d]%8d\n",l,p+1,J[l][p+1]);
}
for(q=0;q<7;q++){
A[l][q+1]=(double)J[l][q+1]/(double)l;
R[q+1]=((double)J[50][q+1]+(double)J[100][q+1]+(double)J[200][q+1]+(double)J[300][q+1])/(double)650;
}
if(l==50){
l=100;
continue;
}
else if(l==100){
l=200;
continue;
}
else if(l==200){
l=300;
continue;
}
printf("\n 機械の寿命のシミュレション結果");
printf("\n +———-+———-+———-+———-+———-+———-+");
printf("\n l機械の寿命l%6d l%6d l%6d l%6d l 理論値 l",50,100,200,300);
printf("\n +———-+———-+———-+———-+———-+———-+");
for(r=0;r<7;r++){
printf("\n l%6d l %f l %f l %f l %f l %f l",r+1,A[50][r+1],A[100][r+1],A[200][r+1],A[300][r+1],R[r+1]);
printf("\n +———-+———-+———-+———-+———-+———-+");
}
}
return 0;
}
unsigned y1(void)
{
int y1;
r=(r*109*+1345)%99;
if(r>=1&&r<=2){
y1=1;
}
else if(r>=3&&r<=5){
y1=2;
}
else if(r>=6&&r<=17){
y1=3;
}
else if(r>=18&&r<=37){
y1=4;
}
else if(r>=38&&r<=62){
y1=5;
}
else if(r>=63&&r<=74){
y1=6;
}
else if(r>=75&&r<=84){
y1=7;
}
else if(r>=85&&r<=90){
y1=8;
}
else if(r>=91&&r<=95){
y1=9;
}
else if(r>=96&&r<=100){
y1=10;
}
return y1;
}
unsigned y2(void)
{
int y2;
r=(r*201+1123)%99;
if(r>=1&&r<=5){
y2=1;
}
else if(r>=6&&r<=15){
y2=2;
}
else if(r>=16&&r<=45){
y2=3;
}
else if(r>=46&&r<=65){
y2=4;
}
else if(r>=66&&r<=85){
y2=5;
}
else if(r>=86&&r<=100){
y2=6;
}
return y2;
}