Skip to content

Commit d1b038a

Browse files
author
arnaud
committed
livre
1 parent a6a6664 commit d1b038a

40 files changed

+174
-45
lines changed

aleatoire/aleatoire.pdf

18.3 KB
Binary file not shown.

binaire/binaire-1.pdf

18.9 KB
Binary file not shown.

binaire/binaire-2.pdf

0 Bytes
Binary file not shown.

bitcoin/bitcoin.pdf

33.3 KB
Binary file not shown.

bitcoin/bitcoin.tex

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
\documentclass[11pt,class=report,crop=false]{standalone}
2-
\usepackage[screen]{../python}
2+
\usepackage[print]{../python}
33

44
\begin{document}
55

@@ -328,12 +328,16 @@
328328

329329
On va construire un problème compliqué à résoudre, pour lequel, si quelqu'un nous donne la solution, alors il est facile de vérifier qu'elle convient.
330330

331+
\medskip
332+
331333
\textbf{Problème à résoudre.} On nous donne une liste, il s'agit de trouver un bloc tel que, lorsque qu'on le rajoute à la liste, cela produit un hachage commençant par des zéros.
332334
Plus précisément étant donné une liste \ci{liste} et un objectif maximal \ci{Max}, il s'agit de trouver un bloc \ci{preuve} qui, concaténé à la liste puis haché, est plus petit que la liste \ci{Max}, c'est-à-dire : \\
333335
\centerline{\ci{hachage(liste + preuve)} \ plus petit que \ \ci{Max}}
334336

335337
La liste est de longueur quelconque (un multiple de $N=6$), la preuve est un bloc de longueur $N$, l'objectif est de trouver une liste commençant par des $0$ (voir l'activité 2).
336338

339+
\medskip
340+
337341
Par exemple : soit la \ci{liste = [0,1,2,3,4,5]} et \ci{Max = [0,0,7]}. Quel bloc \ci{preuve} puis-je concaténer à \ci{liste} pour résoudre mon problème ?
338342
\begin{itemize}
339343
\item \ci{preuve = [12, 3, 24, 72, 47, 77]} convient car concaténé à notre liste cela donne \ci{[0,1,2,3,4,5,12, 3, 24, 72, 47, 77]} et le hachage de toute cette liste vaut
@@ -345,6 +349,8 @@
345349
\item \ci{[97, 49, 93, 87, 89, 47]} ne convient pas, car après concaténation puis hachage on obtient \ci{[0, 0, 8, 28, 6, 60]} qui est plus grand que l'objectif voulu.
346350
\end{itemize}
347351

352+
\bigskip
353+
348354
\begin{enumerate}
349355
\item \textbf{Vérification (facile).}
350356

bitcoin/pres-bitcoin.pdf

17.9 KB
Binary file not shown.

bitcoin/pres-bitcoin.tex

Lines changed: 29 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -206,13 +206,32 @@ \section*{Preuve de travail - Minage}
206206
\textbf{Exemple.}
207207

208208
soit la \ci{liste = [0,1,2,3,4,5]} et \ci{Max = [0,0,7]}. Quel bloc \ci{preuve} puis-je concaténer à \ci{liste} pour résoudre mon problème ?
209+
210+
\bigskip
211+
209212
\begin{itemize}
210-
\item \ci{preuve = [12, 3, 24, 72, 47, 77]} convient car concaténé à notre liste cela donne \ci{[0,1,2,3,4,5,12, 3, 24, 72, 47, 77]} et le hachage de toute cette liste vaut
211-
\ci{[0, 0, 5, 47, 44, 71]} qui commence par \ci{[0,0,5]} plus petit que l'objectif.
213+
\item
214+
\begin{itemize}
215+
\item \ci{preuve = [12, 3, 24, 72, 47, 77]} convient
216+
\item car concaténé à notre liste cela donne \ci{[0,1,2,3,4,5,12, 3, 24, 72, 47, 77]}
217+
\item et le hachage de toute cette liste vaut
218+
\ci{[0, 0, 5, 47, 44, 71]}
219+
\item qui commence par \ci{[0,0,5]} plus petit que l'objectif.
220+
\end{itemize}
212221

213-
\item \ci{preuve = [0, 0, 2, 0, 61, 2]} convient aussi car après concaténation on a
214-
\ci{[0,1,2,3,4,5,0, 0, 2, 0, 61, 2]} dont le hachage donne \ci{[0, 0, 3, 12, 58, 92]}.
215-
222+
\bigskip
223+
224+
\item
225+
\begin{itemize}
226+
\item
227+
\ci{preuve = [0, 0, 2, 0, 61, 2]} convient aussi
228+
\item car après concaténation on a
229+
\ci{[0,1,2,3,4,5,0, 0, 2, 0, 61, 2]}
230+
\item dont le hachage donne \ci{[0, 0, 3, 12, 58, 92]}.
231+
\end{itemize}
232+
233+
\bigskip
234+
216235
\item \ci{[97, 49, 93, 87, 89, 47]} ne convient pas, car après concaténation puis hachage on obtient \ci{[0, 0, 8, 28, 6, 60]} qui est plus grand que l'objectif voulu.
217236
\end{itemize}
218237

@@ -283,8 +302,11 @@ \section*{Tes \emph{bitcoins}}
283302

284303
\item Une \emph{transaction} est une chaîne de caractères comprenant un nom et la somme à ajouter (ou à retrancher) à son compte. Par exemple \ci{"Abel +25"} ou \ci{"Barbara -45"}.
285304

286-
Programme une fonction \ci{ajout_transaction(transaction)} qui ajoute la chaîne de caractère \ci{transaction} à la liste \ci{Livre}.
287-
Par exemple après l'initialisation \ci{ajout_transaction("Camille +100")},
305+
Programme une fonction \ci{ajout_transaction(transaction)} qui ajoute la chaîne de caractère \ci{transaction} à la liste \ci{Livre}.
306+
307+
308+
Par exemple après l'initialisation
309+
\ci{ajout_transaction("Camille +100")},
288310
\ci{Livre} vaut \ci{[ [0, 0, 0, 0, 0, 0], "Camille +100" ]}.
289311

290312

chaines/chaines.pdf

17.3 KB
Binary file not shown.

chaines/chaines.tex

Lines changed: 16 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -183,6 +183,7 @@
183183
Pour éviter certaines lettres, on utiliserait : \\
184184
\centerline{\codeinline{if carac not in ["X", "Y", "Z"]:}}
185185
\index{not in@\ci{not in}}
186+
186187
\end{enumerate}
187188
\end{cours}
188189

@@ -195,6 +196,9 @@
195196

196197
\objectifs{Objectifs : manipuler des mots de façon amusante.}
197198

199+
200+
\medskip
201+
198202
\begin{enumerate}
199203
\item \textbf{Distance entre deux mots.}
200204

@@ -218,7 +222,9 @@
218222
Exemple : \ci{distance_hamming("LAPIN","SATIN")} renvoie $2$
219223
\end{fonction}
220224

221-
225+
226+
\medskip
227+
222228
\item \textbf{Latin-cochon.}
223229

224230
On transforme un mot commençant par une consonne selon la recette suivante :
@@ -239,7 +245,9 @@
239245

240246
Exemple : \ci{latin_cochon("BONJOUR")} renvoie \ci{"ONJOURBUM"}
241247
\end{fonction}
242-
248+
249+
\medskip
250+
243251
\item \textbf{Verlan.}
244252

245253
Écris une fonction \ci{verlan()} qui renvoie un mot à l'envers : \mot{SALUT} devient \mot{TULAS}.
@@ -256,6 +264,7 @@
256264
Exemple : \ci{verlan("TOCARD")} renvoie \ci{"DRACOT"}
257265
\end{fonction}
258266

267+
\medskip
259268

260269
\item \textbf{Palindrome.}
261270

@@ -267,14 +276,14 @@
267276
Sortie : \og{}vrai\fg{} si le mot est un palindrome, \og{}faux\fg{} sinon.
268277

269278
\medskip
270-
271-
Exemple : \ci{est_un_palindrome("KAYAK")} renvoie \ci{True}
272-
\end{fonction}
273279

274280

275-
\end{enumerate}
276-
\end{activite}
281+
Exemple : \ci{est_un_palindrome("KAYAK")} renvoie \ci{True}
282+
\end{fonction}
277283

284+
\end{enumerate}
285+
286+
\end{activite}
278287

279288

280289

chercher/chercher.pdf

18.8 KB
Binary file not shown.

0 commit comments

Comments
 (0)