My Advent of Code solutions in Python. kevinyap.ca/2019/12/going-fast-in-advent-of-code/
advent-of-code python
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

Add 2017/15

+43
+39
2017/day15.py
··· 1 + import fileinput 2 + 3 + SEEDS = [int(l.split()[-1]) for l in fileinput.input()] 4 + 5 + FACTOR_A = 16807 6 + FACTOR_B = 48271 7 + MODULO = 2**31 - 1 8 + 9 + # Part 1 10 + gen_a, gen_b = SEEDS 11 + count = 0 12 + 13 + for i in range(40000000): 14 + gen_a = (gen_a * FACTOR_A) % MODULO 15 + gen_b = (gen_b * FACTOR_B) % MODULO 16 + 17 + if (gen_a & 0xffff) == (gen_b & 0xffff): 18 + count += 1 19 + 20 + print "Judge's first count:", count 21 + 22 + 23 + # Part 2 24 + gen_a, gen_b = SEEDS 25 + count = 0 26 + 27 + for i in range(5000000): 28 + gen_a = (gen_a * FACTOR_A) % MODULO 29 + while gen_a % 4 != 0: 30 + gen_a = (gen_a * FACTOR_A) % MODULO 31 + 32 + gen_b = (gen_b * FACTOR_B) % MODULO 33 + while gen_b % 8 != 0: 34 + gen_b = (gen_b * FACTOR_B) % MODULO 35 + 36 + if (gen_a & 0xffff) == (gen_b & 0xffff): 37 + count += 1 38 + 39 + print "Judge's second count:", count
+2
2017/inputs/15.txt
··· 1 + Generator A starts with 679 2 + Generator B starts with 771
+2
2017/outputs/15.txt
··· 1 + 626 2 + 306