Hello,

Recently I saw an article in lobste.rs 
(https://www.hillelwayne.com/post/sudoku/) about sudoku solving, and though t, 
"it'd be nice to try it J". (Didn't even bother reading it, but later glancing 
at it found the author had used J in the end. :D)

I reshape a list of integers of length 81 with blanks being 0s, row-wise, from 
top, going left-to-right; into a 4-cube of length 3; and define 3 auxiliary 
verbs. 

g=:3 3 3 3 $ ...
q=:i.3NB. has missing
hm=:0&=@(<./)@,                         
NB. intersection
is=:([e.])#[
NB. missing numbers
mn=:13 :'((-.((>:@i.9)e.,y))#(>:@i.9))'

Although one usually solves sudoku (I think) by thinking of exclusions, as the 
article's first paragraph or so suggested. I wanted to find symmetries or 
something similar, thinking of it as a higher dimmensional thing, hence the 
4-cube. The constraints, or symmtetries, or whatever they may be are the 9 
rows, columns, and faces each containing 1--9 once. My idea is to try each of 
the 81 cells until once with only one overlap is found, break, then repeat 
until no change.

The sudoku given as an example in the english wikipedia article for sudoku has 
an 'easy' example, wherein the center of the center resolves to 5 using the 
intersection of the missing numbers of the 5. row, 5. column, and 5. face; or 
within the tesseract:

(mn(<1;q;1;q){g)is(mn(<1;1;q;q){g)is(mn(<q;q;1;1){g)
((mn(<1;q;1;q)&{)is(...)is(...))g NB. nope

Taking out g and binding the from doesn't work, giving me just 1--9. Trying  to 
take out the coordinates doesn't fair well for me either.

How can one shorten the former expression using bindings?

My second question regards is/: if I define a1, a2, a3 as missing numbers in 
the row, column, face of some cell, why does is/ a1  a2 a3 give a syntax error, 
when a1 is a2 is a3 doesn't?


----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to