From 4cb2aa155ce9618c265a0edcda30d2ba2132baac Mon Sep 17 00:00:00 2001 From: Jean-Pierre Appel Date: Mon, 23 Oct 2023 01:50:10 -0400 Subject: fixed import names, added startup script --- server/.gitignore | 3 --- server/fast_p.py | 35 +++++++++++++++++++++++++++++++++++ server/fast_p_sage.py | 35 ----------------------------------- server/start | 3 +++ server/toggle_game.py | 2 +- 5 files changed, 39 insertions(+), 39 deletions(-) delete mode 100644 server/.gitignore create mode 100644 server/fast_p.py delete mode 100644 server/fast_p_sage.py create mode 100644 server/start (limited to 'server') diff --git a/server/.gitignore b/server/.gitignore deleted file mode 100644 index cfd027d..0000000 --- a/server/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -.DS_Store -__py_cache -.venv diff --git a/server/fast_p.py b/server/fast_p.py new file mode 100644 index 0000000..54902ad --- /dev/null +++ b/server/fast_p.py @@ -0,0 +1,35 @@ +hashStuff = {0: 0, 1: 1, 2: 1, 3: 1, 4: 2, 5: 2} + + +def MEX(S: set) -> int: + i = 0 + while True: + if i not in S: + return i + i += 1 + + +def P(n: int) -> int: + """ + Compute nimber for a path of a certain length + """ + if n in hashStuff: + return hashStuff[n] + res = Prec(n) + hashStuff[n] = res + return res + + +def Prec(n: int) -> int: + S = set() + # Works only for n >= 5 + S.add(P(n-2)) + S.add(P(n-3)) + S.add(P(n-4)) + for i in range(2, n-5+1): + S.add(nimAdd(P(i), P(n-3-i))) + return MEX(S) + + +def nimAdd(x: int, y: int) -> int: + return x ^ y diff --git a/server/fast_p_sage.py b/server/fast_p_sage.py deleted file mode 100644 index 54902ad..0000000 --- a/server/fast_p_sage.py +++ /dev/null @@ -1,35 +0,0 @@ -hashStuff = {0: 0, 1: 1, 2: 1, 3: 1, 4: 2, 5: 2} - - -def MEX(S: set) -> int: - i = 0 - while True: - if i not in S: - return i - i += 1 - - -def P(n: int) -> int: - """ - Compute nimber for a path of a certain length - """ - if n in hashStuff: - return hashStuff[n] - res = Prec(n) - hashStuff[n] = res - return res - - -def Prec(n: int) -> int: - S = set() - # Works only for n >= 5 - S.add(P(n-2)) - S.add(P(n-3)) - S.add(P(n-4)) - for i in range(2, n-5+1): - S.add(nimAdd(P(i), P(n-3-i))) - return MEX(S) - - -def nimAdd(x: int, y: int) -> int: - return x ^ y diff --git a/server/start b/server/start new file mode 100644 index 0000000..8710810 --- /dev/null +++ b/server/start @@ -0,0 +1,3 @@ +#!/bin/bash + +uwsgi --socket 127.0.0.1:7001 --wsgi-file server.py diff --git a/server/toggle_game.py b/server/toggle_game.py index 7932de9..0de8f9f 100644 --- a/server/toggle_game.py +++ b/server/toggle_game.py @@ -1,4 +1,4 @@ -from fast_P_nim import P +from fast_P import P def safe_int_parse(s): -- cgit v1.2.3