Raul, you're right. I need a finer step between all the fractions, as my
list is missing a few fractions.

Skip

Skip Cave
Cave Consulting LLC


On Sun, Jun 15, 2014 at 7:51 PM, Raul Miller <[email protected]> wrote:

> This doesn't seem to represent any of these values:
>    4993r11983 4988r11971 4983r11959 4978r11947
>
> FYI,
>
> --
> Raul
>
>
>
> On Sun, Jun 15, 2014 at 8:15 PM, Skip Cave <[email protected]>
> wrote:
>
> > Well,
> >
> > load 'strings'
> >    f =. x:1%2+10000%~i.10001  NB. Generate equal-spaced floating
> fractions
> > between 1/3 and 1/2
> >   k =. 12001>".(": f) rplc ' ';',';'r';','   NB. Find all numerators and
> > denominators less than 12001
> >
> > counts all numerators and denominators below 12000 as separate entities.
> > Unfortunately, that
> > wasn't what the problem asked.
> >
> > In order to count only rational fractions between 0.5 & 0.333 where both
> > the numerator and the denominatorhave values of 12000 or less, we need to
> > add one more line to the program that pairs the
> > numerator and denominator comparisons, and then "ands" them, to find
> > fractions that have
> > both the numerator and denominator below 12001.
> >
> >    +/ *./"1(10001 2) $ k     NB. And values pairwise & sum.
> >
> > That should get the correct answer. The whole thing takes less that 2
> > seconds to run on my machine.
> >
> > Skip
> >
> >
> >
> >
> > Skip Cave
> > Cave Consulting LLC
> >
> >
> > On Sun, Jun 15, 2014 at 6:39 PM, Raul Miller <[email protected]>
> > wrote:
> >
> > > I generally avoid project euler, because I do not like working under
> its
> > > constraint on disclosure. So I'm pleased when something leaks out that
> I
> > > can play with. But I also try to live within the implied spirit of the
> > > contest, so I'm not going to release my code.
> > >
> > > Still: a quick calculation suggests that J's floating point
> > representation
> > > is adequate for this problem (and gives a 30x speed improvement over
> use
> > of
> > > rationals). Also, a trivial approach seems plenty adequate here
> > >
> > > Thanks,
> > >
> > > --
> > > Raul
> > >
> > >
> > >
> > > On Sun, Jun 15, 2014 at 7:07 PM, David Lambert <[email protected]
> >
> > > wrote:
> > >
> > > > On 15/06/2014 16:59, Jon Hough wrote:
> > > >>
> > > >>> >Another Project Euler... (apologies)
> > > >>> >#73http://projecteuler.net/problem=73
> > > >>>
> > > >>> >I found this one more tricky than it first seems.
> > > >>> >My attempt fails.
> > > >>> >My reasoning of solution. Trying to find all reduced fractions
> with
> > > >>> denominator and numerator in range 1... 12000 that are greater than
> > > 1/3 but
> > > >>> less than 1/2.The most naive way would be to make a 12000x12000
> grid
> > of
> > > >>> fractions, nubbing out duplicates.
> > > >>>
> > > >>
> > > >    Note 'Naive solution to PE 73'
> > > > Generate all the fractions one denominator at a time
> > > > using  low  memory.   The program  exceeds  the  one
> > > > minute time requirement even on your new computer.
> > > >
> > > > Method: insert  a verb into a  list of denominators.
> > > > The verb is necessarily a  dyad.  y retains the list
> > > > of  unique  fractions,  x  (a scalar)  is  the  next
> > > > denominator to evaluate.  Therefor the verb could be
> > > > a hook that generates  new fractions of one argument
> > > > which it appends and  nubs with the other, producing
> > > > a  "current result".   We'll start  with a  "current
> > > > result" of 0, removed as a post-processing step.
> > > > )
> > > >
> > > >    Filter=: (#~`)(`:6)
> > > >    odd=: 2&|
> > > >    odd Filter i.5
> > > > 1 3
> > > >
> > > >    NB. generate the denominators and initial solution of 0
> > > >    NB. Accumulating the results from few to many decreases
> > > >    NB. the computational work.
> > > >    data=: i.@:(_1x&-)
> > > >    data 8
> > > > 8 7 6 5 4 3 2 1 0
> > > >
> > > >    numerators=: >.@:-: (] + i.@:-) <.@:(1r3&*)
> > > >
> > > >    boxdraw_j_ 1
> > > >
> > > >    numerators&.>  8 14
> > > > +---+-----+
> > > >
> > > > |2 3|4 5 6|
> > > > +---+-----+
> > > >    fractions =: %~ numerators
> > > >
> > > >    ~.@:(, fractions)~/ data 8
> > > >    0 1r3 1r4 1r5 2r5 2r7 3r7 3r8
> > > >
> > > >    (1r3&< *. <&1r2)Filter ~.@:(, fractions)~/ data 8
> > > > 2r5 3r7 3r8
> > > >
> > > >    #  (1r3&<*.<&1r2)Filter~.@:(, fractions)~/  data 8
> > > > 3
> > > >
> > > >
> > > >   NB. watch progress
> > > >
> > > >   show=: [ smoutput
> > > >
> > > >   # (1r3&<*.<&1r2)Filter~.@:(, fractions@:show)~/ data  500
> > > >
> > > >
> > > >
> ----------------------------------------------------------------------
> > > > 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
> >
> ----------------------------------------------------------------------
> 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