Data update

This commit is contained in:
Ingy döt Net 2026-02-01 16:33:20 -08:00
parent 5150844a7d
commit 4bb20c9b71
7735 changed files with 38060 additions and 199180 deletions

View file

@ -1,22 +1,22 @@
# Experimental!
G ← [[0 33 35 0 0 ¯1 ¯1 ¯1]
[0 0 24 22 0 ¯1 ¯1 ¯1]
[0 0 0 21 0 0 ¯1 ¯1]
[0 26 0 13 40 11 ¯1 ¯1]
[27 0 0 0 9 0 1 ¯1]
[¯1 ¯1 0 0 18 0 0 ¯1]
[¯1 ¯1 ¯1 ¯1 0 7 0 0]
[¯1 ¯1 ¯1 ¯1 ¯1 ¯1 5 0]]
S ← /×△G # Total size.
N ← /+≠¯1♭G
Width ← ⧻⊢G
Dirs ← [¯.1 ⊓∩(+1)∩(-1),,,,¯.Width] # D8 directions.
DiaD ← /↥⌵-∩(⊟⊃(◿|⌊÷)Width) # Diagonal dist.
Ns ← ▽:⟜≡(=0⊡)⊙¤▽⊸≡(↧⊃(≥0|<S))+Dirs ¤ # Valid empty Ns.
Next ← +1⊢⊚=S⊗+1⇡S # Next unplaced number.
Nodes ← ⍣(≡(⍜⊡⋅∘)λbCA⊙Ns:⊗-1,,Next..|[]) # Valid next boards from here.
Placed ← ⊏(⍏⊸≡(⊡1))▽⊙(⍉⊟)↥0±,⊗.. # [pos num] sorted by nums.
G ← [[0 33 35 0 0 ∞ ∞ ∞]
[0 0 24 22 0 ∞ ∞ ∞]
[0 0 0 21 0 0 ∞ ∞]
[0 26 0 13 40 11 ∞ ∞]
[27 0 0 0 9 0 1 ∞]
[∞ ∞ 0 0 18 0 0 ∞]
[∞ ∞ ∞ ∞ 0 7 0 0]
[∞ ∞ ∞ ∞ ∞ ∞ 5 0]]
Width ← ⧻⊢G
DobCA ← ⊃(⋅∘|⋅⋅¤|¤) # λbCA (sorry Kai!)
Dirs ← ⊂⟜¯⊂1[⟜⊃+₁-₁Width] # D8 directions in flattened grid.
Ns ← ▽⊸∊⊓(⊚=₀|+Dirs¤)⊃⋅∘∘ # Valid empty Ns.(pos board -> [pos'])
Next ← +1⊢⊚=⊸/↥˜⨂+1⇡/×⊸△ # Next unplaced number.(board -> n)
Nodes ← ⍣(≡⍜⊡◌DobCA⊙Ns⊃⋅∘∘˜⨂-1⊃⊙∘⊙∘⊸Next⟜∘|[]) # Valid next boards from here.
Placed ← ⊏(⍏⊸≡⊡₁)▽⊙(⍉⊟)↥0±⊃⋅∘⊙∘⊸⨂⟜∘ # [pos num] sorted by nums.
# Ensure each pair of placed numbers have DiaD <= number differemce.
Heur ← ⨬(-1N|999)=0/↧≡(≥⊙(⌵/-)DiaD°⊟°⊟⍉)◫2Placed
astar(Nodes|Heur|¬∊0)♭G
↯△G⊡¯1°□⊢⊙◌
DiaD ← /↥⌵-∩(⊟⊃(◿|⌊÷)Width) # Diagonal dist in flattened grid.
N ← /+≠∞♭G
Heur ← ⨬(-1N|999)=0/↧≡(≥⊙(⌵/-)DiaD°⊟°⊟⍉)⧈∘2Placed
↯∞_Width⊣⊢path(Nodes|¬˜∊0|Heur)♭G # Solve, pretty print