Skip to content

Instantly share code, notes, and snippets.

@snahor
Created October 29, 2014 20:12
Show Gist options
  • Save snahor/884e9f9d7324e34785b4 to your computer and use it in GitHub Desktop.
Save snahor/884e9f9d7324e34785b4 to your computer and use it in GitHub Desktop.
Pascal
def better_pascal(n):
def row(n):
row = [1]
for i in range(n):
row.append(row[i] * (n - i) // (i + 1))
return row
return [row(i) for i in range(n)]
def naive_pascal(n):
def mul(ns):
if not ns:
return 1
return ns[0] * mul(ns[1:])
def C(n, k):
return mul(range(n, n - k, -1)) // mul(range(1, k + 1))
def row(n):
return [C(n, i) for i in range(n + 1)]
return [row(i) for i in range(n)]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment