Data update
This commit is contained in:
parent
5150844a7d
commit
4bb20c9b71
7735 changed files with 38060 additions and 199180 deletions
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue