Skip to content

Instantly share code, notes, and snippets.

@MilesCranmer
Last active July 11, 2023 16:21
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save MilesCranmer/a6f5d6b41ad34370e08eb987e66a766c to your computer and use it in GitHub Desktop.
Save MilesCranmer/a6f5d6b41ad34370e08eb987e66a766c to your computer and use it in GitHub Desktop.
from functools import lru_cache
@lru_cache # Stores previously computed factorials
def factorial(num):
if num < 2:
return 1
return num * factorial(num - 1)
def N(C, m_2, m_1, m_0):
count = 0
for i in range(C):
if (C - i) % 2 == 0:
continue
count += (
factorial(C-1)
* m_2 ** ((C-i-1)//2)
* m_1 ** i
* (m_0 + 1) ** ((C-i+1)//2)
// factorial((C-i+1)//2)
// factorial((C-i-1)//2)
)
return count
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment