Euler Problem 26

kinuthiA muchanE muchanek at gmail.com
Wed Jul 2 11:52:44 BST 2008


Ron,

Damn! Its too late, I spilt the beans! I did not think so many people
would be interested!! Unless you do not open my other mail!

Kinuthia...
On Wed, 2008-07-02 at 09:30 +0300, Ronald Odero wrote:
> Hello,
> I'm determined to get to the bottom of this and am calculating it
> manually. I will get back to you all soonest.
> 
> On 7/1/08, Miano Njoka <mianonjoka at gmail.com> wrote:
> > This email is from a ubuntu-ke subscriber to other subscribers inluding
> > you:)
> > I was wrong the first time, got it after a couple of tries. good
> > luck!!! :)
> >
> > On Jul 1, 2008, at 4:37 PM, kinuthiA muchanE wrote:
> >
> >> Miano,
> >>
> >> Just got back to the computer, right now I am struggling with "for"
> >> loops :-/
> >> I do not know what the answer is but check here
> >> http://projecteuler.net/index.php?section=problems&id=26
> >>
> >> Kinuthia...
> >> On Tue, 2008-07-01 at 14:34 +0300, Miano Njoka wrote:
> >>> I've written a solution using C, I got d=831, one cycle is 69 digits
> >>> long. What is the answer?
> >>>
> >>>
> >>> On Jul 1, 2008, at 12:02 PM, Andrew Mathenge wrote:
> >>>
> >>>> This email is from a ubuntu-ke subscriber to other subscribers
> >>>> inluding you:)
> >>>> Only glad I could be of assistance. Let me know if you find a python
> >>>> solution to the problem. I wrote a solution in perl, but I'm
> >>>> interested in learning python.
> >>>>
> >>>> Good luck!
> >>>>
> >>>> Andrew.
> >>>>
> >>>> On Tue, Jul 1, 2008 at 2:50 AM, kinuthiA muchanE
> >>>> <muchanek at gmail.com> wrote:
> >>>>>
> >>>>> On Mon, 2008-06-30 at 18:33 -0400, Andrew Mathenge wrote:
> >>>>>> Actually, I think that understanding the question is the easiest
> >>>>>> part.
> >>>>> Not for me it seems, I think it is one of those days for me  when
> >>>>> even
> >>>>> the obvious escapes you :-)
> >>>>>> Here's the question as copied from the website:
> >>>>>>
> >>>>>> Find the value of d < 1000 for which 1/d contains the longest
> >>>>>> recurring cycle in its decimal fraction part.
> >>>>>>
> >>>>>> Let's take the example that's given where d <= 10.
> >>>>>>
> >>>>>> When d = 7, the value of 1/d (1/7) is:
> >>>>>>
> >>>>>> 0.142857142857142857142857142857142857142857....
> >>>>>
> >>>>> Ah...okay
> >>>>>>
> >>>>>> As you can see, (142857) repeats indefinitely. It has a sequence
> >>>>>> of 6
> >>>>>> digits that repeat. This is longer than any of the others where
> >>>>>> d <=
> >>>>>> 10.
> >>>>> That was the crux of the matter!
> >>>>>>
> >>>>>> Therefore, the question asks, for d = 1 to 1000, which value of d
> >>>>>> has
> >>>>>> the longest sequence of repeating digits in the fractional part?
> >>>>>>
> >>>>>> Quite rightfully so, you can't limit the number of digits to 9
> >>>>>> as in
> >>>>>> your example since there will be a number with a series of
> >>>>>> repeating
> >>>>>> digits greater than 9.
> >>>>>>
> >>>>>> For example, 1/17 is:
> >>>>>>
> >>>>>> 0.0588235294117647058823529411764705882352941176470588235294117647
> >>>>>> .....
> >>>>>>
> >>>>>> or
> >>>>>>
> >>>>>> 0.(0588235294117647)
> >>>>>>
> >>>>>> The number of repeating digits in this sequence is 16.
> >>>>>>
> >>>>>> Hope that helps. I'm not a python programmer so I really can't
> >>>>>> help
> >>>>>> debug your code.
> >>>>> It is now crystal clear, Anrdew, and thank you very much for
> >>>>> bailing me
> >>>>> out, do not worry about the code, I just wanted a nudge in the
> >>>>> right
> >>>>> direction       ;-)
> >>>>>>
> >>>>>> Andrew.
> >>>>>>
> >>>>>> On Mon, Jun 30, 2008 at 4:03 PM, kinuthiA muchanE <muchanek at gmail.com
> >>>>>>> wrote:
> >>>>>>> This email is from a ubuntu-ke subscriber to other subscribers
> >>>>>>> inluding you:)
> >>>>>>>
> >>>>>>> On Mon, 2008-06-30 at 22:04 +0300, Tony White wrote:
> >>>>>>>> Hi
> >>>>>>>>
> >>>>>>>> My guess, your pattern is limiting you to uniquely the digits
> >>>>>>>> 0-9, so
> >>>>>>>
> >>>>>>> ...and that is the whole idea IMHO, actually "input-ting" nothing
> >>>>>>> would
> >>>>>>> match my regular expression. There are only ten non-recurring
> >>>>>>> digits in
> >>>>>>> the world ie zero to nine, :-).
> >>>>>>>> that's where it stops. Consider - (1011011101234101111109) could
> >>>>>>>> also
> >>>>>>>> be a valid sequence. ie, digits may be used more than once.
> >>>>>>>
> >>>>>>> My dear Tony, so what is the question? I thought they wanted the
> >>>>>>> reciprocal of a number, that will give you the digits "123456789"
> >>>>>>> in a
> >>>>>>> non-repeating order. And 1011011101234101111109 would not match
> >>>>>>> the
> >>>>>>> regular expression I had! 1's are and 0's occur more than once!
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>> Mugumo, I think there is always  a mathematical angle to
> >>>>>>> everything! And
> >>>>>>> I am okay...
> >>>>>>>
> >>>>>>> Asante kwa kuweza kupata wasaa wa kunijibu, natumai tutaendelea
> >>>>>>> kuwasiliana.
> >>>>>>>
> >>>>>>> Kinuthia...
> >>>>>>>
> >>>>>>>>
> >>>>>>>> Tony
> >>>>>>>>
> >>>>>>>>
> >>>>>>>> 2008/6/30 kinuthiA muchanE <muchanek at gmail.com>:
> >>>>>>>>> This email is from a ubuntu-ke subscriber to other subscribers
> >>>>>>>>> inluding you:)
> >>>>>>>>> Habari wote,
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>> I am trying to solve Problem Number 26
> >>>>>>>>> (http://projecteuler.net/index.php?section=problems&id=26) on
> >>>>>>>>> Project
> >>>>>>>>> Euler but apparently the answer I am submitting is wrong.
> >>>>>>>>>
> >>>>>>>>> Here is the problem:
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>> A unit fraction contains 1 in the numerator. The decimal
> >>>>>>>>> representation
> >>>>>>>>> of the unit fractions with denominators 2 to 10 are given:
> >>>>>>>>>
> >>>>>>>>>      1/2
> >>>>>>>>>      =
> >>>>>>>>>      0.5
> >>>>>>>>>      1/3
> >>>>>>>>>      =
> >>>>>>>>>      0.(3)
> >>>>>>>>>      1/4
> >>>>>>>>>      =
> >>>>>>>>>      0.25
> >>>>>>>>>      1/5
> >>>>>>>>>      =
> >>>>>>>>>      0.2
> >>>>>>>>>      1/6
> >>>>>>>>>      =
> >>>>>>>>>      0.1(6)
> >>>>>>>>>      1/7
> >>>>>>>>>      =
> >>>>>>>>>      0.(142857)
> >>>>>>>>>      1/8
> >>>>>>>>>      =
> >>>>>>>>>      0.125
> >>>>>>>>>      1/9
> >>>>>>>>>      =
> >>>>>>>>>      0.(1)
> >>>>>>>>>      1/10
> >>>>>>>>>      =
> >>>>>>>>>      0.1
> >>>>>>>>>
> >>>>>>>>> Where 0.1(6) means 0.166666..., and has a 1-digit recurring
> >>>>>>>>> cycle. It
> >>>>>>>>> can be seen that 1/7 has a 6-digit recurring cycle.
> >>>>>>>>>
> >>>>>>>>> Find the value of d < 1000 for which 1/d contains the longest
> >>>>>>>>> recurring
> >>>>>>>>> cycle in its decimal fraction part.
> >>>>>>>>>
> >>>>>>>>> I am giving the answer 38, because 1/38 = 0.0263157894. It
> >>>>>>>>> seems I have
> >>>>>>>>> misunderstood the question or I cant solve it! Here is the
> >>>>>>>>> code(in
> >>>>>>>>> Python) that I
> >>>>>>>>> came up with:
> >>>>>>>>>
> >>>>>>>>> def aux(num):
> >>>>>>>>>      import re
> >>>>>>>>>      pattern = re.compile(r"^0?1?2?3?4?5?6?7?8?9?$")
> >>>>>>>>>
> >>>>>>>>>      frac ="%.9f"%(1.0/num)
> >>>>>>>>>      fracSlice = frac[2:]                    # get the decimal
> >>>>>>>>> fractional part, ie remove
> >>>>>>>>> '0.'
> >>>>>>>>>
> >>>>>>>>>      fracList = list(fracSlice)              #convert string
> >>>>>>>>> to a
> >>>>>>>>> list
> >>>>>>>>>      fracList.sort()                                 # I need
> >>>>>>>>> to
> >>>>>>>>> sort , because I will be searching by
> >>>>>>>>> increasing order
> >>>>>>>>>
> >>>>>>>>>      testFrac  = "".join(fracList)   # convert list back to a
> >>>>>>>>> string,
> >>>>>>>>> phew!
> >>>>>>>>>      if re.match(pattern,testFrac):  # if the pattern matches,
> >>>>>>>>> the
> >>>>>>>>> number is
> >>>>>>>>> our candidate
> >>>>>>>>>              print (num,fracSlice)
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>> for b in xrange(1,1000):
> >>>>>>>>>      aux(b)
> >>>>>>>>>
> >>>>>>>>> Er... er, that does not exactly work as expected but it narrows
> >>>>>>>>> the
> >>>>>>>>> search to only 3 candidates because of the inclusion of the
> >>>>>>>>> zero:
> >>>>>>>>>
> >>>>>>>>> (28, '035714286')
> >>>>>>>>> (38, '026315789')
> >>>>>>>>> (81, '012345679')
> >>>>>>>>>
> >>>>>>>>> For 28, the digit, in the fractional part, after 8 is 5, so 5
> >>>>>>>>> is
> >>>>>>>>> repeated and as for, 81 the next digit after 7 is 0, so again 0
> >>>>>>>>> occurs
> >>>>>>>>> twice. But for 38, the next digit after 9 is 4, and because it
> >>>>>>>>> has NOT
> >>>>>>>>> occurred before, I assume 38 is the correct answer... and I am
> >>>>>>>>> wrong!
> >>>>>>>>>
> >>>>>>>>> I suspect I have completely misunderstood the question.
> >>>>>>>>>
> >>>>>>>>> Any ideas?
> >>>>>>>>> Thanks!
> >>>>>>>>>
> >>>>>>>>> Kinuthia...
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>> --
> >>>>>>>>> Ubuntu-ke mailing list
> >>>>>>>>> Ubuntu-ke at lists.ubuntu.com
> >>>>>>>>> https://lists.ubuntu.com/mailman/listinfo/ubuntu-ke
> >>>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>> --
> >>>>>>> Ubuntu-ke mailing list
> >>>>>>> Ubuntu-ke at lists.ubuntu.com
> >>>>>>> https://lists.ubuntu.com/mailman/listinfo/ubuntu-ke
> >>>>>>>
> >>>>>
> >>>>>
> >>>>
> >>>> --
> >>>> Ubuntu-ke mailing list
> >>>> Ubuntu-ke at lists.ubuntu.com
> >>>> https://lists.ubuntu.com/mailman/listinfo/ubuntu-ke
> >>>
> >>
> >
> >
> > --
> > Ubuntu-ke mailing list
> > Ubuntu-ke at lists.ubuntu.com
> > https://lists.ubuntu.com/mailman/listinfo/ubuntu-ke
> >




More information about the Ubuntu-ke mailing list