From 7a364ab9bb81036bf8d5880bcbc87864ee72c592 Mon Sep 17 00:00:00 2001 From: Luke Hubmayer-Werner Date: Mon, 16 Jan 2023 19:45:58 +1030 Subject: [PATCH] 2015 Day 25 Python --- 2015/day25.py | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 2015/day25.py diff --git a/2015/day25.py b/2015/day25.py new file mode 100644 index 0000000..26effea --- /dev/null +++ b/2015/day25.py @@ -0,0 +1,28 @@ +import re + +with open('day25-input', 'r') as file: + line = file.read().strip() +r, c = [int(x) for x in re.findall('row (\d+).*column (\d+)', line)[0]] +print(r, c) + +starting_value = 20151125 + +def get_value(index: int) -> int: + value = starting_value + for _ in range(1, index): + value = (value * 252533) % 33554393 + return value + +def fib(x: int) -> int: + value = 1 + for i in range(1, x): + value += i + return value + +def get_value_rc(row: int, column: int) -> int: + stripe_row = row + column - 1 + stripe_row_idx = fib(stripe_row) + return get_value(stripe_row_idx + column - 1) + +print(f'Test: value at row 6, column 6 is {get_value_rc(6, 6)}') +print(f'Part 1: value at row {r}, column {c} is {get_value_rc(r, c)}')