No idea on the problem or forgotten.
conjunction binds to the left so that you need brackets, eg.
5&({.!.1) /. (5 5 $i. 25)
or if you are only interested in the product, it might be
*//. (5 5 $i. 25)
Вск, 25 Сен 2011, Nick Simicich писал(а):
> I'm working on euler 11 from projecteuler.org. I got the answer by doing
> something really crummy, and I decided to go back and do proper code for the
> diagonals. The problem is to take the greatest product of four consecutive
> numbers in a 20 by 20 array where the possibilities are rows, columns and
> diagonals.
>
> Rows and columns are trivial, and now that I understand that /. does not
> only take the longest diagonal the diagonals are not much harder.
>
> Because this is a product, I wanted to use a 1 fill.
>
> a is a 20 by 20 array of small numbers.
>
> My first attempt was to box the diagonals, and then fill them, the unbox
> them and then do my product on the crosswise bits, and then take the max,
> so
>
> >./(,4 */\ a) ,(,4 */\ |:a) ,(,4*/\"1 > 20{.!.1 L:_1 </.a),(,4*/\"1 >
> 20{.!.1 L:_1 </.|:a)
>
> I transpose the array to get the other diagonals, and do it again so that I
> can do the horizontals and verticals.
>
> I used a box for the diagonals because my thought was that they were all
> different lengths, so they needed to be boxed. Once I fixed them to be
> conformant, I could unbox them.
>
> Then I looked and determined that I could get an array with the diagonals on
> the lines as:
>
> 20&{. /.aa
>
> And this gives (the small, forum appropriate version):
> 5&{. /. (5 5 $i. 25)
> 0 0 0 0 0
> 1 5 0 0 0
> 2 6 10 0 0
> 3 7 11 15 0
> 4 8 12 16 20
> 9 13 17 21 0
> 14 18 22 0 0
> 19 23 0 0 0
> 24 0 0 0 0
>
> But because it is a product, I need a 1 fill. I am using a 1 fill with take
> above, when I am taking from the lines individually.
>
> 5&{.!.1 /. (5 5 $i. 25)
> |domain error
> | 5&{.!.1/.(5 5$i.25)
>
> I could not, at first, figure out why the domain error was occuring. Take
> should fix the length of the line no matter what the length of the incoming
> line.
>
> Then I thought, suppose it is calculating a number of things to add to the
> vector, and the second vector it tries to finesse the calculation, using the
> same value to produce a line, and then having a domain error when that value
> of pad produces an unsquare array. What if I change the rank of the verb to
> try and get it, say, not to run on all of the lines produced by /. at the
> same time, but instead to run on each line? So I tried a few different
> values for the rank.
>
> (5&{.!.1)"_1 /. (5 5 $i. 25)
> |domain error
>
> I won't bore you by repeating this, but that theory simply didn't work. I
> could not get the verb to stop reporting an error.
>
> 0+/. a builds me a zero filled array that looks exactly like 20{. . Can't
> use 1+ or a verb with a test assuming I could get it to work (usually can't,
> I'm new to this) because there are zeros in the array that I think I have to
> leave alone.
>
> Maybe the real problem is that the fill is not coming from where I expect it
> to come from. But I think they come from the take verb when I do 20{.
> /. aand well, this is interesting:
>
> (#,5&{.) /. (5 5 $i. 25)
> 1 0 0 0 0 0
> 2 1 5 0 0 0
> 3 2 6 10 0 0
> 4 3 7 11 15 0
> 5 4 8 12 16 20
> 4 9 13 17 21 0
> 3 14 18 22 0 0
> 2 19 23 0 0 0
> 1 24 0 0 0 0
>
>
> so the lines are clearly not being padded before the verb is called.
>
> and, um-- well, I think I just don't understand things more complex, it
> implies that if I can derive the length I should be able to prepend
> (5-#L$1), instead of hash but I always get hung in anything complex.
>
> Is this a bug or a feecher? Other than boxing it, is there a way to code
> it? Am I just missing how to do it?
>
>
>
>
>
> --
> Of course I can ride in the carpool lane, officer. Jesus is my constant
> companion.
> ----------------------------------------------------------------------
> For information about J forums see http://www.jsoftware.com/forums.htm
--
regards,
====================================================
GPG key 1024D/4434BAB3 2008-08-24
gpg --keyserver subkeys.pgp.net --recv-keys 4434BAB3
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm