---
# System prepended metadata

title: '8 - Recursion (2), Euclid''s algorithm'
tags: [COMP2804, Recursion]

---

# 8 - Recursion (2), Euclid's algorithm

## How many ways are there to write n as the sum of twos and ones
![](https://i.imgur.com/O8J2N5L.png)

$F_n =$ # of ways to write $n$ as the sum of ones and twos

$\{nothing\}=0$ 1 way to count 0 with ones and twos
![](https://i.imgur.com/2u9q2Z0.png)

For $n \geq 2$ we can either
- Start with a 1
    - $1 + x = n$ We need to find x
    - x is a string of ones and twos that adds up to $n-1$
    - Start with a 1 followed by any sum of ones and twos that add up to $n$ ($F_{n-1}$)
- Start with a 2
    - $2 + x = n$
    - 2 + anything that adds up to $n-2$
    - $F_{n-2}$

This is pretty much the same as the fibonacci sequence and the two sets of strings that start with a one and strings that start with a two are disjoint. 

So

$F_n = F_{n-1} + F_{n-2}$
$f = fibonacci function$
$F_n = f_{n+1}$

## Greatest common divisor (Euclid's algorithm)
Finds the greatest common divisor of two integers $a > b \geq 1$
The largest integer $d$ that divides $a$ and $b$
Ex: $GCD(20,15)=5$
$20 / 5 = 4, 15 / 5 =3$

Uses the modulus operator (remainder after integer division)
- For any positive integers $a$ and $b$
    - $a = q \times b + r$ where $q$ is an integer
    - $r \in \{0,1,...,b-1\}$

Ex:
$a = 20, b=6$
$a = 3 \times b + 2$
$a \mod b = r$

Ex2:
$17 \mod 12 = 5$
$17 = (1 \times 12) + 5$

Ex3:
$23 \mod 1 = 0$
$23 = (23 \times 1) + 0$

Ex4:
$45 \mod 15 = 0$
$45 = (3 \times 15) + 0$

- If $a \mod b = 0$ then $GCD(a,b) = b$
    - $a = q \times b + 0$
    - $\frac{a}{b} = q, \frac{b}{b} = 1$

Lemma: If $a \mod b = r \neq 0$ then:
- $GCD(a,b) = GCD(b,r)$

Proof: Let $d$ be any common divisor of $a$ and $b$
This means that
- $\frac{a}{d}$ and $\frac{b}{d}$ are integers
- $a = q \times b + r$ (a is equal to some multiple times b plus whatever the remainder after division is) 
- $r = a\mod b$
- ![](https://i.imgur.com/7mcHTdW.png)
- Every common divisor of $a$ and $b$ is also a divisor of $r$

```
Euclid(a,b) //requires a > b >= 1
    r = a mod b
    if r = 0 return b
    return Euclid(b, r)
```

This doesn't run forever because $r \in \{0,...,b-1\}$ $r < b < a$
The arguments keep getting smaller and none of them are equal to 0. Eventually one will be equal to 1.

![](https://i.imgur.com/O1XLyMI.png)
![](https://i.imgur.com/Qovpnzh.png)

All of the divisors of a and b are also common divisors of b and r. in particular then, the greatest common divisor of a and b is the greatest common divisor of b and r. the gcd of b and r can't be bigger than the gcd of a and b because it will be smaller than b which is smaller than a.

This algorithm is used very commonly in cryptography but it's being used on number that are represented with 10000 bits.

---

- Let $M(u,d)=$ the number of mod operations performed by Euclid(a,b)
$M(34,21) = 7$
$M(75,45) = 3$

**Claim:**
Let $a > b \geq 1$ and let $m = M(a,b)$
Then $a \geq f_{m+2}$ and $b \geq f_{m+1}$ $f = fibonacci\ number$

**Proof: by induction on $m$**
Base case: $m=1$
Then that mst mean that $a > b \geq 1, a \geq 2$
$b \geq f_{1+1} = f_{2} = 1$
$a \geq f_{1+2} = f_3 = 2$

Now assume that this is true for all $k \in \{1,...,m-1\}$. Proove for $m \geq 2$

$gcd(a,b) = gcd(b,r)$
$m = M(a,b) = 1 + M(b,r)$

We know that we must make at least one recursive call, and the number of mod operations after the first recursive call will be 1 less than the number of mod operations for a and b. After making the first recursive call, b is now the first argument. with the inductive hypothesis, this means that $b \geq f_{m-1+2} = f_{m+1}$ which follows.

We still haven't proved anything for a

we know that $a = q\times b + r$
we know $a > b$, this means that $\frac{a}{b} > 1$ and $q \geq 1$
so $a = q\times b + r \geq b+r \geq f_{m+1} + f_{m} = f_{m+2}$

![](https://i.imgur.com/Ypo6oJZ.png)

---
if $a \geq f_{m+2}$ then $a \geq \frac{\phi^m + 2}{\sqrt{5}} + 1$
- $a - 1 \geq \frac{\phi^m + 2}{\sqrt{5}}$
- $\sqrt{5}(a-q) = \phi^m + 2$
- $log(\sqrt{5}(a-1)) = m + 2 log\phi$
- $m \leq \frac{log(a-1)}{log\phi} + \frac{log\sqrt{5}}{log\phi} - 2$
- ![](https://i.imgur.com/abWL1W1.png)
- running time of algorithm is proportional to the logarithm of $a$
###### tags: `COMP2804`, `Recursion`