In [4]:
from mpmath import mp
import numpy as np
import matplotlib.pyplot as plt

%pylab inline

Populating the interactive namespace from numpy and matplotlib


Tupper's formula

$$\frac{1}{2} < \left \lfloor{ \text{mod}\left ( \left \lfloor{\frac{y}{17}} \right \rfloor 2^{-17 \lfloor{x}\rfloor - \text{mod} \left ( \lfloor{y}\rfloor, 17 \right )} \right ) } \right \rfloor$$
In [167]:
mp.prec = 2000

In [180]:
def tupper_field(k):
field = np.ndarray((17,106), np.bool)
for xix, x in enumerate(mp.arange(0,106)):
for yix, y in enumerate(mp.arange(k,k+17)):
t1 = mp.floor(y) % 17
t2 = -17*mp.floor(x)
t3 = 2**(t2 - t1)
t4 = mp.floor(y/17)
t5 = (t4 * t3) % 2
field[16-yix, xix] = 0.5 < mp.floor(t5)
return field

In [181]:
k1 = mp.mpf('820959624942020445814005879832445494830930')
k2 = mp.mpf('4858450636189713423582095962494202044581400587983244549483093085061934704708809928450644769865524364849997247024915119110411605739177407856919754326571855442057210445735883681829823754139634338225199452191651284348332905131193199953502413758765239264874613394906870130562295813219481113685339535565290850023875092856892694555974281546386510730049106723058933586052544096664351265349363643957125565695936815184334857605266940161251266951421550539554519153785457525756590740540157929001765967965480064427829131488548259914721248506352686630476300')

In [182]:
for k in [k1,k2]:
f = tupper_field(k)
ax = plt.imshow(f, cmap='Greys', interpolation='nearest')
ax.axes.axis('off')
plt.show()