PyPE solution to PE problem 14

Registered by Scott Armitage

PyPE solution to PE problem 14

Blueprint information

Status:
Complete
Approver:
None
Priority:
Undefined
Drafter:
None
Direction:
Needs approval
Assignee:
None
Definition:
Approved
Series goal:
None
Implementation:
Implemented
Milestone target:
None
Started by
Scott Armitage
Completed by
Scott Armitage

Sprints

Whiteboard

    ProjectEuler.net problem 14
    ===========================

    The following iterative sequence is defined for the set of positive
    integers:

        n -> n/2 (n is even)
        n -> 3n + 1 (n is odd)

    Using the rule above and starting with 13, we generate the following
    sequence:

        13 -> 40 -> 20 -> 10 -> 5 -> 16 -> 8 -> 4 -> 2 -> 1

    It can be seen that this sequence (starting at 13 and finishing at 1)
    contains 10 terms. Although it has not been proved yet (Collatz Problem),
    it is thought that all starting numbers finish at 1.

    Which starting number, under one million, produces the longest chain?

    NOTE: Once the chain starts the terms are allowed to go above one million.

    Solution
    --------

    Since all sequences (presumably) reduce down to one, we can simply keep a
    hash table of each particular number and how many links are in the chain
    from it to one. For any new number not already hashed, we simply follow
    the chain, counting the links, until we reach a number that /has/ been
    hashed. Add our counted links to the hashed value, and move on to check
    the next number.

    Answer
    ------

    837799

(?)

Work Items

This blueprint contains Public information 
Everyone can see this information.

Subscribers

No subscribers.