Solutions to Advent of Code 2017 https://adventofcode.com/2017/
Nelze vybrat více než 25 témat Téma musí začínat písmenem nebo číslem, může obsahovat pomlčky („-“) a může být dlouhé až 35 znaků.

15.py 606B

12345678910111213141516
  1. import itertools
  2. import operator
  3. def gen(seed, factor, multiple=1):
  4. value = seed
  5. while True:
  6. value = (value * factor) % 2147483647
  7. if value % multiple == 0:
  8. yield value & 65535
  9. with open('data/15.txt', 'r') as file:
  10. seeds = [int(line.strip().split()[-1]) for line in file.readlines()]
  11. print(f'Part one: {sum(map(lambda t: t[0] == t[1], itertools.islice(zip(gen(seeds[0], 16807), gen(seeds[1], 48271)), 40000000)))}')
  12. print(f'Part two: {sum(map(lambda t: t[0] == t[1], itertools.islice(zip(gen(seeds[0], 16807, 4), gen(seeds[1], 48271, 8)), 5000000)))}')