4
$\begingroup$

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

Can you solve it please?

$\endgroup$
3
  • 4
    $\begingroup$ Tally@Mod[Fibonacci@Range@450, 2] $\endgroup$ Apr 3 '20 at 16:48
  • 3
    $\begingroup$ Actually, $F_n$ is even iff $n$ is a multiple of $3$. $\endgroup$
    – lhf
    Apr 4 '20 at 15:35
  • 1
    $\begingroup$ @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 ;-) $\endgroup$
    – mgamer
    Apr 21 '20 at 12:09
9
$\begingroup$

First the Fibonacci numbers

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

then counting....

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

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

$\endgroup$
1
  • 4
    $\begingroup$ I'd use CountsBy with EvenQ as the function instead of Mod[#, 2]&. The result is <|False -> 300, True -> 150|>. $\endgroup$
    – rcollyer
    Apr 4 '20 at 3:17
8
$\begingroup$

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[1], Integers] && (n == 1 + 3 C[1] || n == 2 + 3 C[1]) *)

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

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[1]}, Integers, 450]
(* 150 *)

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

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

2 * evens == odds
(* True *)
$\endgroup$
7
$\begingroup$

Similar to mgamer's nice answer:

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.

$\endgroup$
4
$\begingroup$
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|>
$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.