int randlcg_selftest() { unsigned i; int is_success = 0; uint64_t m, a, c; m = 3015 * 3; for (i=0; i<5; i++) { a = 0; c = 0; m += 10 + i; lcg_calculate_constants(m, &a, &c, 0); is_success = lcg_verify(a, c, m, m); if (!is_success) { fprintf(stderr, "LCG: randomization failed\n"); return 1; /*fail*/ } } return 0; /*success*/ }
/* come from https://github.com/robertdavidgraham/masscan */ int main(int argc, char *argv[]){ uint64_t m=0; uint64_t a=0; uint64_t c=0; if (argc==2){ sscanf(argv[1],"%llu",&m); }else if(argc==3){ sscanf(argv[2],"%llu",&c); }else{ printf("usage: %s [m(the range of lcg)] [c]\n",argv[0]); return -1; } sscanf(argv[1],"%llu",&m); puts("random_value = (index * a + c) % range;\n"); lcg_calculate_constants(m,&a,&c,1); return 0; }
int randlcg_selftest() { int is_success; uint64_t m, a, c; m = 3015 * 3; a = 0; c = 0; lcg_calculate_constants(m, &a, &c, 0); is_success = lcg_verify(a, c, m, m); if (!is_success) { fprintf(stderr, "LCG: randomization failed\n"); return 1; /*fail*/ } else { return 0; /*success*/ } }