#include #include #include static int32_t seed; static void rng() { seed = seed * 1103515245 + 12345; } static int32_t parse(const char *p) { int base = p[0] == '0' && p[1] == 'x' ? 16 : 10; return strtol(p, NULL, base); } int main(int argc, char **argv) { if (argc < 3) { fprintf(stderr, "Usage: %s start end\n", argv[0]); return 1; } int32_t start = parse(argv[1]); int32_t end = parse(argv[2]); printf("Calculating RNG count between seeds %d and %d...\n", start, end); seed = start; uint32_t i; for (i=0; seed != end; i++) { rng(); } printf("Result = %u\n", i); return 0; }