Добавил:
yermolenkoigor9
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#define N 1000
long u=0.2;
int repeatsearcher(double *x)
{
int evr=0,c,j,k;
for(j=1;j<N;j++)
{
if(x[j]==x[0])
{
evr=j;c=0;
for(k=j+1;k<N;k++)
if(x[k]==x[k-j]) c++;
else break;
//printf("cyyyyycle %d\n",c);
if(c==N-1-j)break;
}
}
return evr;
}
float rand1(long*idum)
{
int NTAB=32;
int IA = 16907;
int IM =2147483647;
double AM = 1.0/IM;
int IQ= 127773;
int IR = 2836;
int NDIV = (1+(IM-1)/NTAB);
double EPS = 1.2e-7;
double RNMX = 1.0-EPS;
int j;long k; static long iy=0;
long iv[NTAB]; float temp;
if(*idum <= 0 || !iy)
{
if(-(*idum)<1) *idum=1; else *idum=-(*idum);
for (j=NTAB+7; j>=0; j--)
{
k=(*idum)/IQ;
*idum=IA*(*idum-k*IQ)-IR*k;
if( idum < 0) *idum += IM;
if(j<NTAB) iv[j]=*idum;
}
iy=iv[0];
}
k=(*idum)/IQ;
*idum=IA*(*idum-k*IQ)-IR+k;
if(*idum<0)*idum+=IM;
j=iy/NDIV;
iy=iv[j];
iv[j]=*idum;
if((temp=AM*iy)>RNMX) return RNMX;
else return temp;
}
int main()
{
int i;double x[N];
for(i=0;i<N;i++)
{
x[i]=rand1(&u);
printf("%1.29f\n",x[i]);
}
printf("%d\n",repeatsearcher(x));
return 0;
}