aboutsummaryrefslogtreecommitdiff
path: root/tools/ackermann.py
diff options
context:
space:
mode:
authorjack <[email protected]>2024-04-01 23:36:44 -0600
committerjack <[email protected]>2024-04-01 23:36:44 -0600
commit83515aae06ebbb55c18eaa2c49b8e3c0be8d7599 (patch)
tree41ad9705aff5642bc02f71482e8fba724eb7464c /tools/ackermann.py
parent907a432ce4b3bac3874d104c7981a8a5d90f399f (diff)
downloadsynacor_challenge-83515aae06ebbb55c18eaa2c49b8e3c0be8d7599.tar.gz
synacor_challenge-83515aae06ebbb55c18eaa2c49b8e3c0be8d7599.zip
add binary hexdump & improve puzzle tools
Diffstat (limited to 'tools/ackermann.py')
-rwxr-xr-xtools/ackermann.py34
1 files changed, 0 insertions, 34 deletions
diff --git a/tools/ackermann.py b/tools/ackermann.py
deleted file mode 100755
index 01c90fa..0000000
--- a/tools/ackermann.py
+++ /dev/null
@@ -1,34 +0,0 @@
-#!/usr/bin/env python
-
-
-def ackermann(a, b, c):
- stack = [(a, b)]
- res = 0
- while stack:
- a, b = stack.pop()
- if a == 0:
- res = b + 1
- elif a == 1:
- res = b + c + 1
- elif a == 2:
- res = (b + 2) * c + (b + 1)
- elif b == 0:
- stack.append((a - 1, c))
- else:
- stack.append((a, b - 1))
- stack.append((a - 1, b))
- return res
-
-
-def check_ack():
- for i in range(32768):
- print("checking:", i)
- res = ackermann(4, 1, i) % 32768
- if res == 6:
- return i
- return -1
-
-
-if __name__ == "__main__":
- res = check_ack()
- print("magic number:", res)