Different approach (haven't looked at the lab yet):
P2=: 3 : '%:(+/(,~#"1~(e.{:)) ])&.|:;<@({.,.}.)\.*:}.>:i.y'
ts'pytrpla 500'
0.69549456 1.352768e8
ts'P2 500'
0.028264955 6240320
rnk 5 ts&> 'P2 500'; 'pytrpla 500'
0 1 1
1 46 22
(pytrpla-:P2) 500
1
R.E. Boss
> -----Oorspronkelijk bericht-----
> Van: [EMAIL PROTECTED] [mailto:programming-
> [EMAIL PROTECTED] Namens Mike Day
> Verzonden: donderdag 17 januari 2008 14:13
> Aan: Programming forum
> CC: [EMAIL PROTECTED]
> Onderwerp: Re: [Jprogramming] Pythagorean triples
>
> This comes in a bit simpler:
> pytrpla =: 3 : '/:~ |."1 >: 4$. $. (=/ >/~* +/~) *: }.i.>:y'
>
> The >/~ phrase ensures you only get decreasing triples.
>
> I was going to point out that I use something along the lines of
> ($#:I.@,) rather than 4$. $.
> to locate ones in a boolean array, but on examination your
> scant array idiom is much better in this case, and seems
> generally good, so might be worth adding to the phrases list -
> I couldn't see it there.
>
> In any case, this exhaustive search approach eventually
> blows up for y somewhere in 1000-2000, and as Raul
> says, it's worth looking at the pythagorean triples lab.
>
> There are several problems on these triples in "Project
> Euler" which you might enjoy.
>
> Mike
>
>
> Tracy Harms wrote:
> > I have been looking at the Rosetta Code task entitled "List
> > Comprehension", here:
> > http://www.rosettacode.org/rosettacode/w/index.php?title=List_Comprehens
> > ion
> > <http://www.rosettacode.org/rosettacode/w/index.php?title=List_Comprehen
> > sion>
> >
> > J does not have any special syntax, so it cannot (I think) satisfy this
> > syntax-specific requirement. I can, however, build the list of
> > Pythagorean triples. Here's my solution:
> >
> > Across =: 1 : '*./@(}: u }.)"_1'
> > pytrpl =: 3 : '(#~ < Across) 2+ 4$. $. |: (=/ +/~) *: 2+i. 1-~ y'
> >
> > pytrpl 22
> > 3 4 5
> > 5 12 13
> > 6 8 10
> > 8 15 17
> > 9 12 15
> > 12 16 20
> >
> > I'd be interested in knowing a tacit way to define the adverb, Across.
> >
> > I notice that the phrase (#~ < Across) has an ambiguity Bruno Daniel
> > criticized: whether this is a fork or a hook depends on whether Across
> > is verb or adverb. I used capitalization of initial letter to indicate
> > that it is an adverb, but some other naming convention might be better.
> >
> > As for alternatives to pytrpl, what I'd find interesting are programs
> > that bring out the Pythagorean relationship. The heart of the program
> > listed here-- (=/ +/~) *: --seems rather buried.
> >
> > The Haskell list comprehension syntax is attractive. It is notational,
> > and much like familiar set notation. If an analogous presentation can be
> > phrased in J, it's beyond my creative powers.
> >
> > --
> > Tracy
> >
> > ----------------------------------------------------------------------
> > 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