RMS=: (+/ % #)&.:*:
   
   5!:4 <'RMS'
             -- / --- +
        -----+- %      
-- &.: -+    L- #      
        L- *:          
   
   rms=:[:%:[:(+/%#)*:
   
   5!:4 <'rms'
  -- [:               
  +- %:               
--+    -- [:          
  │    │    -- / --- +
  L----+----+- %      
       │    L- #      
       L- *:          
   
  rms  has a nice tree, and fewer concepts are required.

Linda


-----Original Message-----
From: [email protected]
[mailto:[email protected]] On Behalf Of Don Kelly
Sent: Monday, November 18, 2013 2:06 AM
To: [email protected]
Subject: Re: [Jprogramming] Novice problem

You sent an answer to my question before I asked it!  Thanks- I suspected
but didn't know  that this was it.

I think that I will stay with the earlier definition:

rms=:[:%:[:(+/%#)*:
which, while it does have brackets is somewhat more readable for my present
state of understanding. Yours is shorter and I expect it would be faster.
Now all of you have given me enough to digest for now.
Don

On 17/11/2013 7:23 AM, Raul Miller wrote:
> Here's another definition of rms
>
>     Rms=: +/@:*: %:@% #
>     Rms 1 2 1 2
> 1.58114
>
> Explanation:
>
> We do not need to square the numbers in the argument to #, we only 
> need to square them in the argument to +/
>
> We only need the square root on the result of %
>
> Makes sense?
>
> Also, here's a partial explanation for the (+/%#)&.:*: definition of 
> RMS
>
> &.: means "under" much like &. except that the derived verb has 
> infinite rank - the verb on the left gets the entire array which 
> resulted from the verb on the right, regardless of the rank of the 
> verb on the right. In other words, it is equivalent to (+/ % #) &.
> (*:"_)  In other words: square the numbers, add them up, divide by 
> their sum, then do the inverse of squaring on the result.
>
> Thanks,
>

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