Skip to content

Instantly share code, notes, and snippets.

@acefalobi
Created June 7, 2019 21:25
Show Gist options
  • Save acefalobi/eda1b2f5bca0601743e964d0a86229e9 to your computer and use it in GitHub Desktop.
Save acefalobi/eda1b2f5bca0601743e964d0a86229e9 to your computer and use it in GitHub Desktop.
Python function that plots out the famous Tupper's Self-Referential Formula (a formula that when plotted out, draws itself) in the CLI (https://en.wikipedia.org/wiki/Tupper%27s_self-referential_formula)
output = ""
def tupper_function(x, y):
k = 960939379918958884971672962127852754715004339660129306651505519271702802395266424689642842174350718121267153782770623355993237280874144307891325963941337723487857735749823926629715517173716995165232890538221612403238855866184013235585136048828693337902491454229288667081096184496091705183454067827731551705405381627380967602565625016981482083418783163849115590225610003652351370343874461848378737238198224849863465033159410054974700593138339226497249461751545728366702369745461014655997933798537483143786841806593422227898388722980000748404719
return 0.5 < (((k + y) // 17) // (2 ** ((17 * x) + (y % 17)))) % 2
binary_array = [[tupper_function(x, y) for x in range(106)] for y in range(17)]
for row in binary_array:
for value in row[::-1]:
if value:
output += "█"
else:
output += " "
output += "\n"
print(output)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment