fork download
  1. def lcg_skip(m, a, c, n):
  2. a1 = a - 1
  3. t = pow(a, n, m * a1) - 1
  4. t = (t * c // a1) % m
  5. return t
  6.  
  7. if __name__ == '__main__':
  8. m = 2**64
  9. a = 6364136223846793005
  10. c = 1442695040888963407
  11. for i in range(1,11):
  12. n = i * 2**40
  13. print(f'n={n}; seed={lcg_skip(m, a, c, n)}')
  14.  
Success #stdin #stdout 0.03s 9124KB
stdin
Standard input is empty
stdout
n=1099511627776; seed=6294630401738539008
n=2199023255552; seed=12589260803477078016
n=3298534883328; seed=437147131506065408
n=4398046511104; seed=6731777533244604416
n=5497558138880; seed=13026407934983143424
n=6597069766656; seed=874294263012130816
n=7696581394432; seed=7168924664750669824
n=8796093022208; seed=13463555066489208832
n=9895604649984; seed=1311441394518196224
n=10995116277760; seed=7606071796256735232