I am trying to use the new gmail - and I have no idea why this partial
message was sent prematurely.  I apologize, please ignore the earlier
version.

---------- Forwarded message ----------
From: Nick Simicich <simic...@gmail.com>
Date: Sun, Nov 25, 2012 at 4:24 PM
Subject: Boxing by columns
To: Programming forum <programm...@jsoftware.com>


OK,  I have a simple problem.  I am writing a mathdoku helper in J, just
for grins (and because it can run on my Android phone).

At one point I have what might a number of solutions (generally between 10
and a max of a couple hundred). They will be in a variable that will
contain each solution boxed.  Thus, it will look like:

[1 2 3 4][4 2 3 1][3 1 2 4] etc.  Each solution has the same length.

I need to look at the contents of each column.  Essentially, I want to take
the nub of each column and sort the results for display - so that I can
display the possible results at each position.

So I want to take this variable which is boxed by column and re-box it by
row.

This is the routine I am currently using to display my data:

rr =: [: (([: (/:~) ~.)L:_1) ([: (<"_1) ([: |: >))

The above works.  But it bothers me for this reason - I am transposing the
array here so that I can rebox it by row:

(<"_1) ([: |: >)

I am trying to determine if there is any way to take a two dimensional
array and to box the data in the array by column - I thought that there was
something I could specify in the rank for box, but I can't figure out what
it might be - or is there a better way to box by column?



To try ans simplify, suppose you create an array with

ar =: >: ?. 9 4 $ 9

If your random number generator and ?. works like mine does,

+/,ar is 191


<"_1 |: ar

gives me 4 boxes - and with data of this size, it is not important that you
have transposed the data.  If you had 1000000 rows (I have tried it) there
is a noticeable pause when you transpose.

It is possible to extract a column with  0{"1 ar - or a row with 0{ ar

It is possible to sum on columns or rows by using the rank adverb.

But I can't figure out how to box by column -

< ar produces a single box
<"1 ar boxes by row - 9 boxes.
<"_1 ar boxes by row.

<"(1 _ 1) ar boxes by row.

I have tried maybe 20 3 digit combinations and I can't get it to select the
columns and box them.

Maybe there is no way to do this - I have asked a few questions here, none
for many months because once I understood more about rank some of my
questions went away.  But this one issue escapes me - maybe someone could
undertake an answer and an explanation?  Or an explanation as to why it
just won't work?

I am thinking that an alternative would be to extract one column at a time
and then produce the boxes from those columns and stack them together - but
I am unsure of how to do that, either.

And, again, I am sorry that I posted a partial unedited question.


-- 
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

Reply via email to