C 根据Knuth[2,41-79]评估随机数生成器

C 根据Knuth[2,41-79]评估随机数生成器,c,random,gettimeofday,knuth,C,Random,Gettimeofday,Knuth,我使用C语言中的gettimeofday()函数创建了一个随机数生成器。现在,我需要使用Knuth开发的统计或经验方法来评估它。我竭尽全力地寻找同样的方法,但找不到可行的解决办法。或者我可能错了。请帮助我根据上述标准评估此RNG #include <sys/time.h> #include <time.h> #include <stdlib.h> #include <stdio.h> int* randgen(int num, int limit

我使用C语言中的gettimeofday()函数创建了一个随机数生成器。现在,我需要使用Knuth开发的统计或经验方法来评估它。我竭尽全力地寻找同样的方法,但找不到可行的解决办法。或者我可能错了。请帮助我根据上述标准评估此RNG

#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;

}
#包括
#包括
#包括
#包括
int*randgen(int num,int limit){
字符缓冲区[30];
结构时间值电视;
时间短了;
gettimeofday(&tv,NULL);
int*numbers=malloc(sizeof(int)*num);
int i=0;
int j;
while(num!=0){
gettimeofday(&tv,NULL);
对于(j=0;j<1000;j++);
数字[i]=tv.tv_usec%(限值+1);
num--;
i++;
}
返回号码;
}
内部主(空)
{
文件*fp;
fp=fopen(“random.txt”,“w+”);
printf(“\n输入所需的随机整数数\t:\t”);
int-num;
scanf(“%d”和&num);
printf(“\n输入随机数的最大限制\t:\t”);
整数极限;
scanf(“%d”、&limit);
int*result=randgen(num,limit);
int i=0;
printf(“\n”);
对于(i=0;i
。一般来说,你可以看看他的工作,关于伪随机发生器和实现的所有实际方面都有很多需要学习的地方。

“我需要使用Knuth开发的统计或经验方法进行评估。”-是否需要使用Knuth开发的方法?o、 奥伊斯。这是解决我问题的必要条件。