2013-01-09 7 views
0

C에서 gettimeofday() 함수를 사용하여 난수 생성기를 만들었습니다. 이제 크 누스가 개발 한 통계적 또는 경험적 방법을 사용하여이를 평가해야합니다. 나는 철저히 검색했지만 실행 가능한 솔루션을 찾을 수 없었다. 아니면 내가 잘못되었을 수도 있습니다. 위의 표준에 따라이 RNG를 평가하는 데 도움을주십시오.크 누스 당 난수 생성기 평가 [2, 41-79]

#include <sys/time.h> 
#include <time.h> 
#include <stdlib.h> 
#include <stdio.h> 

int* randgen(int num, int limit){ 
char buffer[30]; 
struct timeval tv; 
time_t curtime; 
gettimeofday(&tv, NULL); 
int* numbers = malloc(sizeof(int)*num); 
int i = 0; 
int j; 
while(num != 0){ 
    gettimeofday(&tv, NULL); 
    for(j = 0; j < 1000; j++); 
    numbers[i] = tv.tv_usec % (limit+1); 
    num--; 
    i++; 

} 
return numbers; 
} 


int main(void) 
{ 

    FILE *fp; 
    fp = fopen("random.txt","w+"); 
    printf("\nEnter the number of random integers needed\t:\t"); 
    int num; 
    scanf("%d",&num); 
    printf("\nEnter the MAX limit for the random numbers\t:\t"); 
    int limit; 
    scanf("%d",&limit); 

    int* result = randgen(num,limit); 
    int i = 0; 
    printf("\n"); 
    for(i = 0 ; i < num ; i++){ 
printf(" %d ",*(result+i)); 
fprintf(fp,"%d ",*(result+i)); 

    } 
return 0; 

} 
+0

"Knuth가 개발 한 통계적 또는 경험적 방법을 사용하여이를 평가해야합니다." - Knuth가 개발 한 방법을 사용해야합니까? o.O –

+0

예. 그것은 내 문제에 대한 요구 사항입니다. – Krishna

답변