Recently there was a simple puzzle in one of my whatsapp group. It was
if 1 => 8, 2 => 18,
3 => 30, 4 => 44, 5 => 60, then what is 9?
It was simple to calculate by hand and provide the answer. You can also formulate the above deduction and use it for any number with
6 + (M + (2 x n))
where n is set of integers; 0 < n < N
and M is cumulative sum from previous step with M(initial value) is 0
This problem lends itself well to reduction function and with the given formula it was easy to check it for any integer n. Out of curiosity created a function and was called in Python for-loop for each iteration while monitoring load on CPU and memory tracked. Then I used reduce function with xrange to see the same.
if 1 => 8, 2 => 18,
3 => 30, 4 => 44, 5 => 60, then what is 9?
It was simple to calculate by hand and provide the answer. You can also formulate the above deduction and use it for any number with
6 + (M + (2 x n))
where n is set of integers; 0 < n < N
and M is cumulative sum from previous step with M(initial value) is 0
This problem lends itself well to reduction function and with the given formula it was easy to check it for any integer n. Out of curiosity created a function and was called in Python for-loop for each iteration while monitoring load on CPU and memory tracked. Then I used reduce function with xrange to see the same.
# Python >>> a = []; M = 0 >>> for n in range(0, 100000000): ... M = 6+M+(2*n) ... a.append(M) # [ CPU was loaded above 97% with memory usage jumping and ended up killing the process ] >>> print reduce(lambda x,y: 6+x+(2*y), xrange(0,100000000)) 10000000499999994 # with xrange, got the result in less than few seconds though CPU usage jumped above 97% but no discernible change in memory.