Larger pentagonal numbers are further apart.

Here, after 1827553 pentagonal numbers, they're too far apart for adjacent
numbers to be closer together.

(Note that this also limits the search space--though being slightly liberal
with bounds and testing blocks at a time might work to keep interpreter
overhead low).

Haven't thought too deeply about this, though.

-- 
Raul


On Saturday, July 13, 2019, Skip Cave <[email protected]> wrote:

> Yes, Pascal found the same two pentagonal numbers I found:
>
> *pn=.3 :'y*(1-~3*y)%2'*
>
> * p=:pn>:i.5000x*
>
> Paschal's solution: P(2166)-P(1019)
>
> *2166 1019{p*
>
> *7042750 1560090*
>
>
> My solution:
>
>  *]n=.m#p2*
> *1560090 7042750*
>
>
> The question is, do these two pentagonal numbers have the smallest D?
>
>
> Skip Cave
> Cave Consulting LLC
>
>
> On Sat, Jul 13, 2019 at 7:02 PM Louis de Forcrand <[email protected]>
> wrote:
>
> > Quick correction: the answer given by Pascal is not 1019 but
> > P(2166)-P(1019), and my email should use that instead of 1019 wherever it
> > is mentioned.
> >
> > Sorry for the noise,
> > Louis
> >
> > > On 14 Jul 2019, at 01:58, Louis de Forcrand <[email protected]> wrote:
> > >
> > > I’m with Skip here: how do y’all guarantee that your brute-force
> answers
> > (which search through a list of the first few pentagonal numbers)
> actually
> > return the pair with the smallest _difference_? How do you know there
> isn’t
> > a pair outside your search range, where each number in the pair is much
> > larger than any you searched but whose difference is smaller?
> > >
> > > One possibility is to find a lower bound B as a function of k for the
> > difference P(n)-P(m), where n>m>k. If B(k) is larger than 1019 (the
> answer
> > Pascal Jasmin gave) for k outside your search range, then 1019 is indeed
> > the answer.
> > > A possibility for B is B(k) = P(k+1)-P(k).
> > >
> > > Another idea I had is that since the sum and the difference must both
> be
> > pentagonal, we can instead search in the same way for them and make sure
> > their half-sum and half-difference (which equal the original numbers) are
> > indeed pentagonal. The first pair we find will be the one we want since
> by
> > then we’ll have checked all pairs with a smaller difference.
> > >
> > > Do you have a better justification?
> > >
> > > Thanks!
> > > Louis
> > >
> > >> On 13 Jul 2019, at 01:31, Skip Cave <[email protected]> wrote:
> > >>
> > >> Another approach to Euler 44:
> > >> NB. make a pentagonal number generator verb:
> > >>  *pn=.3 :'y*(1-~3*y)%2'*
> > >>
> > >> NB. Generate the first 5000 pentagonal numbers and store them in p.
> Then
> > >> find all possible pair combinations of the first 5000 pentagonal
> numbers
> > >> and store the pairs in p2. Then store the two integers in each pair in
> > the
> > >> vectors a & b respectively:
> > >> * 'a b'=.|:p2=.(2 comb 5000){p=:pn>:i.5000x*
> > >>
> > >> NB. Find and mark all pairs where a+b and a-b are both pentagonal
> > numbers.
> > >> Store that mark vector in m. Also sum the marks in m to see how many
> > >> solution pairs we have:
> > >> * +/m=.(p e. ~a+b) *. p e. ~|a-b*
> > >>
> > >> *1*
> > >>
> > >> NB. So there is only one solution pair in the first 5000 pentagonal
> > >> numbers. Now use the mark vector to extract that one pair of
> pentagonal
> > >> numbers we found that meets all the criteria, store the pair in n, and
> > >> display them.
> > >>   * ]n=.m#p2*
> > >>
> > >> *1560090 7042750*
> > >>
> > >>
> > >> NB. List a, b, a+b, & a-b of the discovered pair in n=a,b:
> > >>
> > >> * (,n),(+/"1 n),(|-/"1 n) *
> > >>
> > >> *1560090 7042750 8602840 5482660*
> > >>
> > >>
> > >> NB. Are the four integers a, b, a+b, & a-b all pentagonal numbers?
> > >>
> > >> *p e.~(,n),(+/"1 n),(|-/"1 n) *
> > >>
> > >> *1 1 1 1*
> > >>
> > >>
> > >> NB. Yes. So what is "D" (the difference between the pair) which is
> > required
> > >> to get the final answer in the euler question?
> > >>
> > >>
> > >> *]D=.|-/"1 n*
> > >>
> > >> *5482660*
> > >>
> > >>
> > >> However the Euler 44 question wants to find a pentagonal pair where D
> is
> > >> minimised, so we will need to expand our search so see if there are
> > >> pentagonal pairs with a smaller D. Unfortunately, I run into memory
> > limits
> > >> when I try to examine a larger range of pentagonal numbers. So I'll
> > need to
> > >> break the one-shot approach into a loop and segment the array of
> > pentagonal
> > >> numbers (sigh). I'll leave that exercise for the reader...
> > >>
> > >>
> > >> Skip Cave
> > >> ------------------------------------------------------------
> ----------
> > >> 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