Problem 44311. Number of Even Elements in Fibonacci Sequence
Solution Stats
Problem Comments
-
6 Comments
Big number is a problem. Instead we can find the regular pattern in which those even and odd numbers appear. Then everything becomes simple and easy.
Gorgeously simple once you figure it out
hint: copy and paste the first few test suites into your MATLAB console and try plotting it with ':o'
My solution is working in my local computer but is not consistent with Test Suites starting from d = 100. I don't still get the answer.
You dont need generate all d fibonacci number to find the numbers of even.Think like that 2 odd fibonacci numbers will make a even number
like 1 1 make 2, and 3 5 make 8.So 3 numbers in group will have a even number
Not a hard problem at all lol
The Tran Tran comment is the key to solve the problem.
Solution Comments
-
1 Comment
comments will guide you
-
3 Comments
Hahaha funny, proof that math is the shortcut
Good solution
Math is a hack.
-
1 Comment
@Kashfia Rahman Oyshei: your comment was deleted, as it revealed a potential solution. Regarding your solution failing at large values of d, look at other comments to the problem for hints.
-
1 Comment
it is working in my Matlab
-
1 Comment
i'm pretty confident of my code but it doesn't work for d>= 100 due to the lack of percision since it surpasses the capability of double and uint64 so you can't test if the number is even.
-
1 Comment
I think there is a bug in the assertions after 4th one
-
3 Comments
What's wrong with this?? It's working in matlab for me .
me2
The fibonacci() function is in a toolbox. Only functions in vanilla Matlab are recognized by Cody.
-
4 Comments
My code works to d=50 and fails on the higher values in the test suite. I think it is a hardware-limited rounding error (?swamping) with very large numbers. When I test eps(fibonacci(100)) on my system, the answer is 6.5 ie my system can not accurately distinguish odd from even at that large a number.
Leo, your theory is correct: The numbers that you're calculating for d>50 are too large to be represented by a 32-bit digit, and won't be calculated correctly for mod(x,2). Think very carefully about the number pattern in the Fibonacci sequence, and see if a pattern emerges.
Indeed, My code works until the d = 50 because it's a large number, so our algorithm is correct we should not worry about it, I think we have succeed in this challenge.
me too.
-
1 Comment
Not a true solution. Would fail if Test Suite were expanded.
-
1 Comment
Not a general solution. Will fail if Test Suite expanded.
Problem Recent Solvers987
Suggested Problems
-
Getting the indices from a vector
7114 Solvers
-
3608 Solvers
-
Van Eck's Sequence's nth member
315 Solvers
-
771 Solvers
-
Find x rows where the sum of the numbers is the maximum
329 Solvers
More from this Author92
Problem Tags
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!