# Fibonacci sequence questions

I want to show that "Out of the first 450 Fibonacci numbers, the odd number is twice as many as even number." with Mathematica.

• Tally@Mod[Fibonacci@Range@450, 2] Apr 3, 2020 at 16:48
• Actually, $F_n$ is even iff $n$ is a multiple of $3$.
– lhf
Apr 4, 2020 at 15:35
• @lhf Yes, and by the construction principle of the Fibonacci number it is clear the the sequence contains always two consecutive odd numbers followed by an even one ;-) Apr 21, 2020 at 12:09

First the Fibonacci numbers

out = Table[Fibonacci[n], {n, 450}];


then counting....

Mod[#, 2] & /@ out // Counts


(<|1 -> 300, 0 -> 150|>)

• I'd use CountsBy with EvenQ as the function instead of Mod[#, 2]&. The result is <|False -> 300, True -> 150|>. Apr 4, 2020 at 3:17

Let's find the conditions under which a Fibonacci number is odd or even. Happily, Reduce has us covered:

isOdd = Reduce[Mod[Fibonacci[n], 2] == 1, n, Integers]
(* Element[C, Integers] && (n == 1 + 3 C || n == 2 + 3 C) *)

isEven = Reduce[Mod[Fibonacci[n], 2] == 0, n, Integers]
(* Element[C, Integers] && (k == 0 && n == 3*C) *)


This says for all integers $$n$$, $$F_n \equiv 0\,\left(\bmod 2\right)$$ when $$n \equiv 0 \left(\bmod 3\right)$$.

Now, let's see how many instances there are of each for $$n$$ between $$1$$ and $$450$$.

evens = Length@FindInstance[isEven && 1 <= n <= 450, {n, C}, Integers, 450]
(* 150 *)

odds = Length@FindInstance[isOdd && 1 <= n <= 450, {n, C}, Integers, 450]
(* 300 *)


Now that we've come this far, Mathematica can also help us with the basic arithmetic:

2 * evens == odds
(* True *)


Mod[Array[Fibonacci, 450], 2]//Counts


<|1 -> 300, 0 -> 150|>

Edit

To 'borrow' the neat suggestion made by rcollyer in a comment to rgamer's answer:

Array[Fibonacci, 450] // CountsBy[OddQ]


<|True -> 300, False -> 150|>

Edit 2

lhf points out in a comment that "$$F_n$$ is even iff $$n$$ is a multiple of 3"

Table[Fibonacci[n], {n,3, 450,3}] // CountsBy[EvenQ]

<|True -> 150|>


A very interesting one, it seems to me. As long as $$n$$ is a multiple of 3, then "the odd number is twice as many as even number" as the OP asks for $$n$$ equal to 450.

Array[Fibonacci, 450, 1, CountsBy[OddQ] @* List]

<|True -> 300, False -> 150|>


Also

Array[Fibonacci /* OddQ, 450, 1, List /* Counts]

<|True -> 300, False -> 150|>


and

450 // Range /* Fibonacci /* CountsBy[OddQ]

<|True -> 300, False -> 150|>