【问题标题】:Evaluating Random Number Generator as per Knuth [2, 41-79]根据 Knuth [2, 41-79] 评估随机数生成器
【发布时间】:2013-01-09 18:59:10
【问题描述】:

我在 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;

}

【问题讨论】:

  • “我需要使用 Knuth 开发的统计或经验方法对此进行评估。” - 是否需要使用 Knuth 开发的方法? o.O
  • 是的。这是我的问题的要求。

标签: c random gettimeofday knuth


【解决方案1】:

George Marsaglia's test suite is still a reference。一般来说,你可以看看他的工作,有很多关于伪随机生成器和实现的所有实际方面的知识。

【讨论】:

    猜你喜欢
    • 2012-03-06
    • 1970-01-01
    • 1970-01-01
    • 2011-03-31
    • 1970-01-01
    • 2020-06-29
    • 2020-10-13
    • 2021-03-23
    • 1970-01-01
    相关资源
    最近更新 更多