My little improvement doesns't work.

Sorry about that.


----- Original Message Follows -----
From: [email protected]
To: Programming forum <[email protected]>
Subject: Re: [Jprogramming] question about Roger Hui -
perfect power code
Date: Sun, 14 Jun 2009 12:10:55 -0800

>execution time is reduced about 20% if you use
>
>m=. e <....@%: y
>if. isinteger ( e ^. m )
>
>instead of
>
>m=. e <....@%: y
>if. y=m^x: e do. m,e
>
>no biggie, but I guess every little bit helps
>
>----- Original Message Follows -----
>From: Roger Hui <[email protected]>
>To: Programming forum <[email protected]>
>Subject: Re: [Jprogramming] question about Roger Hui -
>perfect power code
>Date: Tue, 09 Jun 2009 23:44:42 -0700
>
>>> Is it cheaper time-wise to just do all the exponents
>>> from 2 to >. 2 ^. y or would it be faster to prune the
>>> for_e list  so it only contains primes.
>>
>>If only prime powers are required you can use
>>i.&.(_1&p:) >.2^.y  instead of  2+i.>.2^.y .
>>In that case you should probably rename the 
>>function to ppp (perfect prime power).
>>
>>
>>
>>----- Original Message -----
>>From: [email protected]
>>Date: Tuesday, June 9, 2009 16:40
>>Subject: [Jprogramming] question about Roger Hui - perfect
>>power code To: Programming forum
>><[email protected]>
>>
>>> In the following code:
>>> 
>>> pp=: 3 : 0
>>>     for_e. 2+i.>.2^.y do.
>>>         m=. e <....@%: y
>>>         if. y=m^x: e do. m,e 
>>> return. end.
>>>    end.
>>>   ''
>>>   )
>>> 
>>> I understand that:
>>> 
>>> if. y=m^x: e do. m,e return. end.
>>> 
>>> will exit when the input y equals the m^x: and display m
>>> ,e 
>>> 1.  Where does the "x" come from.  I do not supply
it
>>> as a
>>> left-hand-side argument.
>>> 2.  what is the significance of "x:"
>>> 
>>> Thanks for the explanation.
>>> 
>>> A comment:
>>> 
>>> In reading about the "perfect power" there was a
>>> statement I found that (I think) ... 
>>> said that the only exponents I should test were those
>>> that were prime.
>>> 
>>> Is it cheaper time-wise to just do all the exponents
>>> from 2 to >. 2 ^. y or would
>>> it be faster to prune the for_e list so it only contains
>>> primes.
>>> 
>>> ----- Original Message Follows -----
>>> From: Roger Hui <[email protected]>
>>> To: Programming forum <[email protected]>
>>> Subject: Re: [Jprogramming] perfect power???
>>> Date: Mon, 08 Jun 2009 16:11:41 -0700
>>> 
>>> >Somewhere in the bowels of q: it calls 1&p:
>>> >before launching into the much more expensive
>>> >factoring routine.
>>> >
>>> >It seems to me there should be a straightforward
>>> >determination of whether a number  y is a perfect
>power:
>>> >just try all possible exponents from 2 to 2 >....@^. y .
>>> >For example, for 2^607x the exponents are from 2 to 607
>>> >, which is not many exponents to try.  Thus:
>>> >
>>> >pp=: 3 : 0
>>> > for_e. 2+i.>.2^.y do.
>>> >  m=. e <....@%: y
>>> >  if. y=m^x: e do. m,e return. end.
>>> > end.
>>> > ''
>>> >)
>>> >
>>> >   pp 81
>>> >9 2
>>> >   pp 128
>>> >2 7
>>> >   pp 125
>>> >5 3
>>> >   pp 2^100x
>>> >1125899906842624 2
>>> >   pp <:2^607x
>>> >
>>> >   6!:2 'pp <: 2^607x'
>>> >0.159832
>>> >
>>> >pptest=: *...@#@pp
>>> >
>>> >
>>> >
>>> >
>>> >----- Original Message -----
>>> >From: Raul Miller <[email protected]>
>>> >Date: Monday, June 8, 2009 15:32
>>> >Subject: Re: [Jprogramming] perfect power???
>>> >To: Programming forum <[email protected]>
>>> >
>>> >> On Mon, Jun 8, 2009 at 6:13 PM, 
>>> >> <[email protected]> wrote:
>>> >> > From what I am read in this article, determing if a
>>> >> > number is a "Perfect Power" should be
>>> >> > a lot faster.  Either that or I am totally
>>> mis-reading
>>> >> > the article.
>>> >> 
>>> >> Determining if a number is a perfect power is
>>> >> certainly faster than some algorithm for determining
>>> >> if a number is prime.
>>> >> 
>>> >> But do you have any reason to believe J uses that
>>> >> algorithm, in its implementation of q?
>>> >> 
>>> >> That said, 1 p: will determine whether or not a
>>> >> number is prime, and might be faster than 1 = # q:
in
>>> >> some cases.
>>----------------------------------------------------------
>>- ----------- For information about J forums see
>>http://www.jsoftware.com/forums.htm
>-----------------------------------------------------------
>----------- 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