((0 3+*&5)^:30)1 0x    NB. brute force solution
931322574615478515625 698491930961608886718
   (,.3*4%~1-~])5^30x     NB. closed form solution
931322574615478515625 698491930961608886718

Is Skip Cave saying that the closed form solution is inferior?
- Bo





>________________________________
> Fra: Roger Hui <rogerhui.can...@gmail.com>
>Til: Programming forum <programm...@jsoftware.com> 
>Sendt: 19:15 lørdag den 22. december 2012
>Emne: Re: [Jprogramming] arithmetic sequence
> 
>I answered Alessandro's question.  You can verify my reasoning by using
>6!:2 or 7!:2.
>
>I believe Alessandro may have been confused by the related Fibonacci's
>sequence, where a straightforward (double) recursion *would* cause S(0) and
>others to be evaluated multiple times in the evaluation of S(n).  But even
>for that sequence there are numerous more efficient alternatives.  See
>http://www.jsoftware.com/jwiki/Essays/Fibonacci%20Sequence .
>
>
>On Sat, Dec 22, 2012 at 9:23 AM, Skip Cave <s...@caveconsulting.com> wrote:
>
>> So, what is the answer to Alessandro's question, namely, whether any of the
>> array-based solutions avoid redundant computations? We know the looping
>> approach avoids redundancy, but what about the others?
>>
>> I'm not enough of a J expert to answer that question, as it requires a more
>> intimate
>> knowledge of the internals and optimizations of the J primitives than I
>> have.
>> One of the interesting effects of array languages is that the interpreter
>> can detect
>> and optimize array operations "under the covers", without the programmer
>> having
>> to worry about those optimizations. The J sort operator /: is a good
>> example of this
>> type of phenomena.
>>
>> Skip
>>
>> On Sat, Dec 22, 2012 at 9:52 AM, Boyko Bantchev <boyk...@gmail.com> wrote:
>>
>> > On 21 December 2012 01:02, Skip Cave <s...@caveconsulting.com> wrote:
>> > > The best way to answer his question is to program the problem using his
>> > > explicit looping approach, and compare that approach with the
>> approaches
>> > > proposed by the various members of the forum.
>> >
>> > Comparing solutions with respect to, say, speed, may only tell us
>> > which one to use (once we have them all!) if we want that speed.
>> > But such a comparison does not answer Alessandro's question, namely,
>> > whether array-based solutions, or a particular one of them, avoid
>> > the redundant computations that he wrote of.
>> >
>> > Furthermore, comparing solutions with explicit loops to solutions
>> > without them always tends to be unfair to the former. Huge differences
>> > in speed do arise not only because J performs excelently on whole-
>> > array operations, but also because it is very slow when it has to
>> > execute code repeatedly.  In this it is much, much slower than most
>> > other languages.
>> >
>> > This is easily demonstrated by writing in another language a program
>> > similar to the above discussed acx, such as the following program in
>> > Ruby:
>> >
>> > n = 5000
>> > a,b = 1,0
>> > r = [[a,b]]
>> > (n-1).times do
>> >   a,b = 5*a,5*b+3
>> >   r << [a,b]
>> > end
>> >
>> > Regarding performance, Ruby is well known for the lack of it.  Still,
>> > this program is faster by orders of magnitude than acx.  It is also
>> > faster than hr1 and hr2, although not much faster – only about twice
>> > on my computer for n=5000.  (The speed ratio increases with the growth
>> > of n.)
>> >
>> > One more observation.  How can one *predict* that the closed-formula
>> > based solution of Bo and Linda will lose so dramatically to Henry's
>> > solutions?
>> > ----------------------------------------------------------------------
>> > For information about J forums see http://www.jsoftware.com/forums.htm
>> >
>>
>> --
>> Skip Cave
>> Cave Consulting LLC
>> ----------------------------------------------------------------------
>> 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