You may wish to tighten the conditions on the competition,
for example to exclude the following:

   L=: *./@:>:@:i."0 i.1000x
   f2=: {&L
   f2 99
69720375229712477164533808935312303556800

   y=: 100 [EMAIL PROTECTED] 1000x
   ts 'f2 y'
5.11238e_5 2112

By the way:

   lcm 0x
|index error
|   y    ((([EMAIL PROTECTED]){.){{:@])z2



----- Original Message -----
From: "R.E. Boss" <[EMAIL PROTECTED]>
Date: Monday, December 31, 2007 11:55
Subject: [Jprogramming] FW: (New Year) Competition: most efficient      
alternative for ([: *./ >:@i.)"0 y for extended y
To: 'Programming forum' <[email protected]>

> 
> 
>    5 ts '([:*./ >:@i.)"0 y'[y=:[EMAIL PROTECTED] 1000x
> 0.28845623 188992
> 
> is not an optimal solution, see
> 
>    5 ts '([:*./&.|. >:@i.)"0 y'
> 0.20137625 189504
> 
>    (([:*./ >:@i.)"0 -: ([:*./&.|. >:@i.)"0) y
> 1
> 
> Nevertheless, the first ([:*./ >:@i.)"0  will serve as the 
> benchmark.(You may use any y (of natural numbers) you like.)
> 
> Solutions foo0, foo1, ... will be ranked according to
> 
> (\:,.]) 2 rsd ({.%"1 ]) 5 ts&'([:*./ >:@i.)"0 y';'foo0 y';'foo1 
> y';'....'
> with
> 
>    ts=: 6!:2 , 7!:[EMAIL PROTECTED]
> 
> and with
> 
> rsd=: 4 : 0           NB. 
> round y to x significant digits
> z0=. (<: x) + -@<.@(10&^.)y
> z1=. 0.5<[EMAIL PROTECTED] y (*10&^) z0
>  (10^- z0)* z1
> )
> 
> Of course one should have
>    (fooX -: ([:*./ >:@i.)"0) y
> 1
> 
> (Perhaps, under http://www.jsoftware.com/jwiki/Showcase there 
> should be a
> subpage Competitions.)
> 
> 
> Here is my try:
> 
>    y=:[EMAIL PROTECTED] 1000x
>    (\:,.]) 2 rsd ({.%"1 ]) 5 ts&'([:*./ >:@i.)"0 
> y';'([:*./&.|. >:@i.)"0
> y';'lcm y'    NB. wrap around!
> 2   1    1
> 1 1.3    1
> 0  90 0.45
>    (lcm -: ([:*./ >:@i.)"0) y
> 1
> 
>    y=:[EMAIL PROTECTED] 10000x
>    (\:,.]) 2 rsd ({.%"1 ]) 5 ts&'([:*./ >:@i.)"0 
> y';'([:*./&.|. >:@i.)"0
> y';'lcm y'    NB. wrap around!
> 2   1    1
> 1 1.6    1
> 0 280 0.11
>    (lcm -: ([:*./ >:@i.)"0) y
> 1
> 
> lcm is defined by
> 
> lcm=: 3 : 0
> z0=. i.&.(_1&p:)1x+m=: >./, y
>       NB. primes less than max y
> z1=. |:/:~;(<@([,.~ (^ >:@i.@>:))"0 <.@:^.&m) z0
>       NB. prime powers with corresponding primes
> z2=. ({.,: [:*/\.&.|. {:) z1
>       NB. prime powers with corresponding ([:*./ >:@i.)
>  y(((I.~- [EMAIL PROTECTED]){.){ {:@]) z2
>       NB. ([:*./ >:@i.)"0 y
> )
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to