Question
Recamn's sequence def recaman(n): Compute and return the first n terms of the Recamn's sequence, starting from the term a1 = 1. See the linked
Recamn's sequence
def recaman(n):
Compute and return the first n terms of the Recamn's sequence, starting from the term a1 = 1. See the linked definition for this sequence as it is defined on Wolfram Mathworld.
Note how the definition for the current next element depends on whether a particular number is already part of the previously generated part of the sequence. To let your function execute in a speedy fashion even when generating a sequence that contains millions of elements, you should use a set to keep track of which values are already part of the previously generated sequence. This way you can generate each element in constant time, instead of having to iterate through the entire previously generated list like some "Shlemiel" would have done. The better technique that saves time by using more memory can create this list arbitrarily far in linear time, and should therefore be fast even for millions of elements, at least until it runs out of memory.
n Expected result
10 [1, 3, 6, 2, 7, 13, 20, 12, 21, 11]
1000000 (a list of million elements whose last five elements are [2057162, 1057165, 2057163, 1057164, 2057164] )
Step by Step Solution
There are 3 Steps involved in it
Step: 1
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started