Skip to content

Instantly share code, notes, and snippets.

@Gro-Tsen
Last active February 14, 2022 18:54
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 Gro-Tsen/bdd235557ab0a3098584667b1ba95dc3 to your computer and use it in GitHub Desktop.
Save Gro-Tsen/bdd235557ab0a3098584667b1ba95dc3 to your computer and use it in GitHub Desktop.
size = 4
valtab = []
for n in range(2^(size*size)):
m = Matrix(QQ,size,size,[(n>>i)&1 for i in range(size*size)])
for v in m.eigenvalues():
valtab.append(v)
numtab = [N(v) for v in valtab]
numdict = {}
for v in numtab:
if v in numdict:
numdict[v] += 1
else:
numdict[v] = 1
maxcnt = max(numdict[k] for k in numdict)
pointlist = [point((real(v),imag(v)), color=Color(log(numdict[v])/log(maxcnt),0,1-log(numdict[v])/log(maxcnt)), size=sqrt(numdict[v])) for v in sorted(numdict.keys(), key=lambda k: -numdict[k])]
sum(pointlist).show(dpi=192, aspect_ratio=1)
size = 8
R = PolynomialRing(QQ,"x")
valtab = []
for n in range(2^(size)):
p = R([(n>>i)&1 for i in range(size)]+[1])
for (v,m) in p.change_ring(QQbar).roots():
for j in range(m):
valtab.append(v)
numtab = [N(v) for v in valtab]
numdict = {}
for v in numtab:
if v in numdict:
numdict[v] += 1
else:
numdict[v] = 1
maxcnt = max(numdict[k] for k in numdict)
pointlist = [point((real(v),imag(v)), color=Color(log(numdict[v])/log(maxcnt),0,1-log(numdict[v])/log(maxcnt)), size=numdict[v]) for v in sorted(numdict.keys(), key=lambda k: -numdict[k])]
sum(pointlist).show(dpi=192, aspect_ratio=1)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment