|
96 | 96 | 10651 \quad |
97 | 97 | 100109 \quad |
98 | 98 | 1300573 \quad |
99 | | -15486869 \quad |
100 | | -179426321 \quad |
| 99 | +15486869$$ |
| 100 | + |
| 101 | +$$179426321 \quad |
101 | 102 | 2276856017 \quad |
102 | 103 | 32416187567$$ |
103 | 104 | \end{activite} |
|
212 | 213 |
|
213 | 214 | Écris une fonction \ci{phrase_vers_liste(phrase)} qui convertit une chaîne de caractères en une liste d'entiers entre $0$ et $99$ et si besoin rajoute des zéros devant afin que la liste ait la bonne taille. |
214 | 215 |
|
215 | | - La formule à utiliser pour convertir un caractère en un entier strictement inférieur à $100$ est :\\ |
| 216 | + La formule à utiliser pour convertir un caractère en un entier strictement inférieur à $100$ est : |
| 217 | + |
216 | 218 | \centerline{\ci{ord(c) \% 100}} |
217 | | - Par exemple : si \ci{phrase = "Vive moi !"} alors la fonction renvoie :\\ |
| 219 | + |
| 220 | + Par exemple : si \ci{phrase = "Vive moi !"} alors la fonction renvoie : |
| 221 | + |
218 | 222 | \centerline{\ci{[0, 0, 86, 5, 18, 1, 32, 9, 11, 5, 32, 33]}} |
| 223 | + |
219 | 224 | Le caractère \ci{"i"} à pour code ASCII/unicode $105$ donc, modulo $100$, le nombre est $5$. Note que la fonction ajoute deux $0$ en début de liste afin d'avoir une longueur qui est un multiple de $N=6$. |
220 | 225 |
|
221 | 226 | \end{enumerate} |
|
237 | 242 |
|
238 | 243 | Dans cette activité, notre message est une liste d'entiers (entre $0$ et $99$) de longueur un multiple quelconque de $N=6$, nous le transformons en une liste de longueur $N=6$ : son empreinte (ou \emph{hash}). Voici des exemples de ce que va faire notre fonction de hachage : |
239 | 244 | \begin{itemize} |
240 | | - \item la liste \ci{[1, 2, 3, 4, 5, 6, 1, 2, 3, 4, 5, 6]} a pour empreinte :\\ |
| 245 | + \item la liste \ci{[1, 2, 3, 4, 5, 6, 1, 2, 3, 4, 5, 6]} a pour empreinte : |
| 246 | + |
241 | 247 | \centerline{\ci{[10, 0, 58, 28, 0, 90]}} |
242 | | - \item la liste \ci{[1, 1, 3, 4, 5, 6, 1, 2, 3, 4, 5, 6]} a pour empreinte :\\ |
| 248 | + |
| 249 | + \item la liste \ci{[1, 1, 3, 4, 5, 6, 1, 2, 3, 4, 5, 6]} a pour empreinte : |
| 250 | + |
243 | 251 | \centerline{\ci{[25, 14, 29, 1, 19, 6]}} |
244 | 252 | \end{itemize} |
245 | 253 |
|
|
436 | 444 | \item On calcule une preuve de travail de cette liste. |
437 | 445 | \item On ajoute cette preuve au livre de compte. |
438 | 446 | \end{itemize} |
439 | | - Par exemple si le livre se termine par :\\ |
| 447 | + Par exemple si le livre se termine par : |
| 448 | + |
440 | 449 | \centerline{\ci{[3,1,4,1,5,9], "Abel +35"}} |
441 | | - alors après calcul de la preuve de travail le livre se termine par exemple par :\\ |
| 450 | + |
| 451 | + alors après calcul de la preuve de travail le livre se termine par exemple par : |
| 452 | + |
442 | 453 | \centerline{\ci{[3,1,4,1,5,9], "Abel +35", [32,17,37,73,52,90]}} |
| 454 | + |
443 | 455 | On rappelle que la preuve de travail n'est pas unique et qu'en plus elle dépend |
444 | 456 | de l'objectif \ci{Max}. |
445 | 457 |
|
|
0 commit comments