So, you're saying that converting a solved Sudoku into a real Sudoku puzzle
is the hard part, i.e. may require more than 3 lines of J?

On Thu, Oct 14, 2021 at 12:20 PM Hauke Rehr <hauke.r...@uni-jena.de> wrote:

> Depends on the norm :)
>
> You need to do just as difficult to perform steps:
> trying to derive the next number; but you already
> know where that next number is, so it requires
> much less brute forcing (and backtracking).
> It won’t take as many /steps/, as much /time/,
> as solving.
>
> So I shouldn’t have stuck with the measurement
> along the easy/hard axis but told you that I
> was talking about the /number/ of steps.
>
> On the other hand, this is only true when we
> compare the algorithms built using that routine:
> can we rule out all but one digit at this place?
>
> There are different approaches where one or the
> other (solving/generation) may actually be /easier/
> than the other.
>
>
> Am 14.10.21 um 16:21 schrieb Devon McCormick:
> > Easier said than done.
> >
> > On Thu, Oct 14, 2021 at 6:56 AM Hauke Rehr <hauke.r...@uni-jena.de>
> wrote:
> >
> >> No, generation is easier.
> >> Take a random permutation along both axes of
> >> |."0 1~ >:i.9
> >> and then erase numbers as long as they’re derivable
> >> by what remains.
> >>
> >> Am 14.10.21 um 04:19 schrieb Devon McCormick:
> >>> I just put up this page from a past NYCJUG meeting where we talked
> about
> >>> sudoku -
> https://code.jsoftware.com/wiki/NYCJUG/2012-11-13#Show-and-Tell
> >> -
> >>> and it only took me ten years!
> >>> Perhaps a harder puzzle is to generate sudoku.
> >>>
> >>> On Wed, Oct 13, 2021 at 7:59 PM Hauke Rehr <hauke.r...@uni-jena.de>
> >> wrote:
> >>>
> >>>> but since N2, N1 and N0 are boxed,
> >>>> you need (N2;N1;<N0) rather than (N2;N1;N0)
> >>>> or, even simpler since they’re already atomic
> >>>> boxes (only one item, empty shape):
> >>>>
> >>>>    > is&.>/ (N2,N1,N0) (<@mn@:{)"0 _ g
> >>>>
> >>>> you may even get rid of the "0 _
> >>>> (but read the vocabulary page for { carfully)
> >>>>
> >>>>
> >>>> Am 14.10.21 um 01:37 schrieb Hauke Rehr:
> >>>>> if I now understand your first question correctly,
> >>>>> you want to learn how to shorten a phrase with
> >>>>> much repetitive structure
> >>>>>
> >>>>> first of all, you can define 'is' this way
> >>>>> is =: e. # [
> >>>>>
> >>>>>
> >>>>> your expression looks like
> >>>>> (v N2{g) is (v N1{g) is (v N0{g)
> >>>>> with v equal to mn etc.
> >>>>>
> >>>>> if you want to factor out g, you can say
> >>>>> ((N2 v@:{ ]) is (N1 v@:{ ]) is (N0 v@:{ ])) g
> >>>>>
> >>>>> … and if you define
> >>>>> MN =: mn@:{
> >>>>> you get
> >>>>> ((N2 MN ]) is (N1 MN ]) is (N0 MN ])) g
> >>>>>
> >>>>> if what I wrote for a1, a2 and a3 is correct,
> >>>>> you may then do
> >>>>>
> >>>>>    > is&.>/ ((N2 MN ]);(N1 MN ]);(N0 MN ])) g
> >>>>>
> >>>>> which may be further simplified to
> >>>>>
> >>>>>    > is&.>/ (N2;N1;N0) (MN&.>)"0 _ g
> >>>>>
> >>>>> and we may substitute back
> >>>>>
> >>>>>    > is&.>/ (N2;N1;N0) (mn@:{&.>)"0 _ g
> >>>>>
> >>>>> I hope this works; and maybe someone wants to
> >>>>> comment on different ways to reduce repetitive
> >>>>> expressions.
> >>>>>
> >>>>>
> >>>>> But if your main concern was solving the task
> >>>>> of writing a sudoku solver, take a look at the
> >>>>> wiki page Ric pointed to.
> >>>>>
> >>>>>
> >>>>> Am 14.10.21 um 01:04 schrieb Hauke Rehr:
> >>>>>> Concerning the first question:
> >>>>>>
> >>>>>> try adding ] where g used to be,
> >>>>>> or inserting an & before the {
> >>>>>> (but I didn’t study your code
> >>>>>> enough to /know/ this will work)
> >>>>>>
> >>>>>> Am 14.10.21 um 00:52 schrieb 'Viktor Grigorov' via Programming:
> >>>>>>> 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
> >>>>>>>
> >>>>>>
> >>>>>
> >>>>
> >>>> --
> >>>> ----------------------
> >>>> mail written using NEO
> >>>> neo-layout.org
> >>>>
> >>>> ----------------------------------------------------------------------
> >>>> For information about J forums see
> http://www.jsoftware.com/forums.htm
> >>>>
> >>>
> >>>
> >>
> >> --
> >> ----------------------
> >> mail written using NEO
> >> neo-layout.org
> >>
> >> ----------------------------------------------------------------------
> >> For information about J forums see http://www.jsoftware.com/forums.htm
> >>
> >
> >
>
> --
> ----------------------
> mail written using NEO
> neo-layout.org
>
> ----------------------------------------------------------------------
> For information about J forums see http://www.jsoftware.com/forums.htm
>


-- 

Devon McCormick, CFA

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

Reply via email to