Skip to content

Instantly share code, notes, and snippets.

@coderodde
Created April 25, 2016 11:43
Show Gist options
  • Save coderodde/d33658b3a62204bc30b87459b3486489 to your computer and use it in GitHub Desktop.
Save coderodde/d33658b3a62204bc30b87459b3486489 to your computer and use it in GitHub Desktop.
Computing Sylvester numbers for CR
from time import clock
def sylvester_number_original(n):
if n == 0:
return 2
return sylvester_number_original(n - 1) * (sylvester_number_original(n - 1) - 1) + 1
def sylvester_number_faster(n):
if n == 0:
return 2
tmp = sylvester_number_original(n - 1)
return tmp * (tmp - 1) + 1
def main():
n = 23
start = clock()
result_original = sylvester_number_original(n)
end = clock()
print("Original implementation took ", int(1000 * (end - start)), "milliseconds.")
start = clock()
result_dynamic = sylvester_number_faster(n)
end = clock()
print("Dynamic programming implementation took ", int(1000 * (end - start)), "milliseconds.")
print("Results are same: ", result_dynamic == result_original)
if __name__ == "__main__":
main()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment