From c297a591061b316a349176840a50ff669fe8ba83 Mon Sep 17 00:00:00 2001 From: Louis Date: Fri, 15 Sep 2023 14:51:50 +0200 Subject: [PATCH] vault backup: 2023-09-15 14:51:50 --- .obsidian/workspace.json | 10 +++++----- Algo/Séminaire/Chapter 5 - Recursivity.md | 3 +++ Algo/Séminaire/Exercices seminaire.md | 10 ++++++++++ 3 files changed, 18 insertions(+), 5 deletions(-) diff --git a/.obsidian/workspace.json b/.obsidian/workspace.json index 0f62cd3..0e9181e 100644 --- a/.obsidian/workspace.json +++ b/.obsidian/workspace.json @@ -13,7 +13,7 @@ "state": { "type": "markdown", "state": { - "file": "Algo/Séminaire/Exercices seminaire.md", + "file": "Algo/Séminaire/Chapter 5 - Recursivity.md", "mode": "source", "source": false } @@ -85,7 +85,7 @@ "state": { "type": "backlink", "state": { - "file": "Algo/Séminaire/Exercices seminaire.md", + "file": "Algo/Séminaire/Chapter 5 - Recursivity.md", "collapseAll": false, "extraContext": false, "sortOrder": "alphabetical", @@ -102,7 +102,7 @@ "state": { "type": "outgoing-link", "state": { - "file": "Algo/Séminaire/Exercices seminaire.md", + "file": "Algo/Séminaire/Chapter 5 - Recursivity.md", "linksCollapsed": false, "unlinkedCollapsed": true } @@ -125,7 +125,7 @@ "state": { "type": "outline", "state": { - "file": "Algo/Séminaire/Exercices seminaire.md" + "file": "Algo/Séminaire/Chapter 5 - Recursivity.md" } } }, @@ -158,8 +158,8 @@ }, "active": "0d2d422aa24bb900", "lastOpenFiles": [ - "Algo/Séminaire/Introduction.md", "Algo/Séminaire/Exercices seminaire.md", + "Algo/Séminaire/Introduction.md", "Algo/Séminaire/Chapter 5 - Recursivity.md", "Algo/Séminaire/Chapter 3 - Case analysis.md", "Algo/Séminaire/Chapter 2 - Functions.md", diff --git a/Algo/Séminaire/Chapter 5 - Recursivity.md b/Algo/Séminaire/Chapter 5 - Recursivity.md index 229b6bd..262df8d 100644 --- a/Algo/Séminaire/Chapter 5 - Recursivity.md +++ b/Algo/Séminaire/Chapter 5 - Recursivity.md @@ -102,3 +102,6 @@ An accumulator is a thing that try to get our result. In CAML we trying to not u | n -> rev (inv*10 + n mod 10)(n/10) in rev 0 n;; ``` + +## 4.3. Complexity +Exemple with egypt (4.10) vs multiply (4.6) \ No newline at end of file diff --git a/Algo/Séminaire/Exercices seminaire.md b/Algo/Séminaire/Exercices seminaire.md index 6d881fe..503adf3 100644 --- a/Algo/Séminaire/Exercices seminaire.md +++ b/Algo/Séminaire/Exercices seminaire.md @@ -355,4 +355,14 @@ let rec multiply x y = multiply (x / 2) (y * 2) else y + multiply (x / 2) (y * 2) + +(*correction*) +# let egypt a b = + let (a, b) = if a > b then (a,b) else (b,a) in + let rec eg = function + | 0 -> 0 + | b -> 2*eg(b/2) + (if b mod 2 = 0 then 0 else a) + in + eg b;; + ```