Neat. The other thing I did was use Nub to find out what the numbers
associated with each group for Key. Is that optimized too? If so then the
code can't be improved much beyond your first suggestion.

On Sun, Apr 25, 2010 at 10:19 PM, Roger Hui <[email protected]> wrote:

> > I just did it the first and easiest way I thought of. Key is probably not
> a
> > very efficient way to count the occurrences, but it is easy.
>
> We endeavor to make "easy" fast.
>
> Key _is_ the way to count # of occurrences in J and
> there is special code for #/. (a JKT (Joey K. Tuttle) special).
> It is especially fast for small range integers.
>
>   100 timer '#/.~x' [ x=: 1e6 ?...@$ 50
> 0.00642733
>   100 timer '#/.~x' [ x=: (1e6 ?...@$ 50){50 ?...@$ 2e9
> 0.0305596
>
> The argument in the first benchmark has small range;
> the one in the second benchmark has large range.
> "Large" or "small" is relative to the length of the argument.
>
>
>
> ----- Original Message -----
> From: Don Guinn <[email protected]>
> Date: Sunday, April 25, 2010 17:34
> Subject: Re: [Jprogramming] Random Numbers with interation
> To: Programming forum <[email protected]>
>
> > That is really a significant improvement. I saw only 20%
> > improvement over
> > the whole process where the random number generation was only a
> > small part.
> > I just did it the first and easiest way I thought of. Key is
> > probably not a
> > very efficient way to count the occurrences, but it is easy.
> >
> > On Sun, Apr 25, 2010 at 5:29 PM, Roger Hui <[email protected]> wrote:
> >
> > > There are other situations where the expression I suggested
> > > is much more economical than the one you used.  For example:
> > >
> > >   ts=: 6!:2 , 7!:2...@]
> > >
> > >   10 ts '1e6 ?...@$ 2'
> > > 0.0029846 1.04934e6
> > >   10 ts '?1e6 $ 2'
> > > 0.0132888 5.24352e6
> > >
> > > i.e. factor of 4 in time, factor of 5 in space.
> > >
> > >
> > >
> > > ----- Original Message -----
> > > From: Don Guinn <[email protected]>
> > > Date: Sunday, April 25, 2010 7:53
> > > Subject: Re: [Jprogramming] Random Numbers with interation
> > > To: Programming forum <[email protected]>
> > >
> > > > True. There is a lot that could be done to make it faster. But
> > > > it was so
> > > > much faster I didn't bother. And as you say, if you can't half
> > > > the time,
> > > > it's not worth doing. But I did try it. Looks like maybe 20%
> > faster> >
> > > > On Sun, Apr 25, 2010 at 9:18 AM, Roger Hui
> > <[email protected]> wrote:
> > > >
> > > > > Slightly more economical to do 1...@#50 or 1...@$50
> > > > > instead of ?1e6#50 .
> > > > >
> > > > >
> > > > >
> > > > > ----- Original Message -----
> > > > > From: Don Guinn <[email protected]>
> > > > > Date: Sunday, April 25, 2010 5:57
> > > > > Subject: Re: [Jprogramming] Random Numbers with interation
> > > > > To: Programming forum <[email protected]>
> > > > >
> > > > > > How about 0.07 seconds.
> > > > > >
> > > > > >    6!:2 '(1!:2&2)|."1]10{.\:~(>:~.z),.~
> > > > #/.~z=.?1e6#50'> > 15 20400
> > > > > >  8 20340
> > > > > > 46 20287
> > > > > > 13 20278
> > > > > > 33 20249
> > > > > > 39 20220
> > > > > > 18 20219
> > > > > > 29 20206
> > > > > > 25 20197
> > > > > >  9 20166
> > > > > > 0.0658392
> > > > > >
> > > > > > On Sun, Apr 25, 2010 at 7:36 AM, smandula
> > > > > > <[email protected]> wrote:
> > > > > >
> > > > > > >
> > > > > > > Thank you kindly for your reply.
> > > > > > > The statement of one million is an example, could be
> > > > > > 1,000  or 50,000
> > > > > > > iterations.
> > > > > > > The random numbers being tested could be 1 to 50, or 1
> > to 100
> > > > > > >
> > > > > > > I have a basic program whereby I enter the maximum
> > iterations,> > > > in the
> > > > > > > example 1,000,000
> > > > > > > and a time clock starts, and a counter starts counting
> > up to
> > > > > > the required
> > > > > > > 1,000,000 intervals.
> > > > > > >
> > > > > > > Once, done the time duration shows, in my case 17
> > minutes, and
> > > > > > a list of 10
> > > > > > > highest occurrences
> > > > > > > for these random numbers. i.e.
> > > > > > > number 29     occurrences  204,984
> > > > > > > number 26     occurrences  204,855
> > > > > > > number 40     occurrences  204,732
> > > > > > > number 17     occurrences  204,629
> > > > > > > Number  1
> > occurrences  204,480
> > > > > > >
> > > > > > > I would appreciate any input from the forum,
> > especially for
> > > > > > faster times
> ----------------------------------------------------------------------
> For information about J forums see http://www.jsoftware.com/forums.htm
>
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to