
Compter comme les Shadoks
Malgré ses moyens intellectuels limités, le professeur Shadoko finira quand même par inventer une façon de compter en base 4 avec comme chiffres GA, BU, ZO et MEU.
Le devin plombier décréta que les écoliers shadoks avaient un jour pour apprendre à compter et que si, au bout de ce délai ils s'en trouvaient incapables, on brûlerait le professeur Shadoko.
Les écoliers shadoks, bien sûr, apprendre à compter, ça les intéressait beaucoup mais brûler le professeur, ça les intéressait aussi !
Finalement, le lendemain, tous les écoliers shadoks savaient compter, au-delà de 4.
Voici donc cette fameuse méthode :
« Quand on a MEU shadoks, et qu'on en ajoute BU, il n'y a plus de place. On les met alors dans une poubelle. Il y a donc BU poubelle et GA shadok à côté » Ce qui donne BU GA, soit 4 en décimal.
extrait de Wikipédia
Sous ces aires absurdes ce sytème numérique est bel et bien utilisable, il correspond même à la manière dont on interprête l'ADN.
Il s'agit d' un sytème quaternaire, soit en base 4
convertir des nombres décimaux en shadok
Connaissant la règle du professeur shadoko, on peut établir le tableau de conversion suivant :
0 | GA |
1 | BU |
2 | ZO |
3 | MEU |
4 | BU GA |
5 | BU BU |
6 | BU ZO |
7 | BU MEU |
8 | ZO GA |
9 | ZO BU |
10 | ZO ZO |
11 | ZO MEU |
12 | MEU GA |
13 | MEU BU |
14 | MEU ZO |
15 | MEU MEU |
16 | BU GA GA |
... |
Mais on se rend bien compte qu'il devient impossible d'établir la liste de conversion de tout les nombres déciamux.
Utiliser un algorithme devient alors bien plus judicieux
description de l'algorithme de conversion de base 10 en base 4
définition :Pour n'importe quel entier positif de base 10,
on divise cet entier par 4,
On calcul le modulo de la division et il définit le 1° chiffre du nombre convertit
Puis on reitère le calcul avec «l' approximation entière par défaut » de la division, de sorte à définir chaque chiffre du nombre convertit
Jusqu'a ce que cette « approximation entière par défaut » de la division soit égal à 0
on convertit chaque chiffre du nombre obtenu par leur notation shadok
soit 0 par GA, 1 par BU, 2 par ZO et 3 par MEU.
division | ≈ quotient | calcul du modulo | stockage du modulo |
---|---|---|---|
N / 4 | Qa[0] | N-(Qa[0] x 4) = m[0] | m[0] |
Qa[0] / 4 | Qa[1] | Qa[0]-(Qa[1] x 4) = m[1] | m[1], m[0] |
... | ... | ... | ... |
Qa[n] /4 | Qa[n+1] | Qa[n]-(Qa[n+1] x 4) = m[n+1] | m[n+1], ... m[1], m[0] |
si Qa[n] = 0 l'algorithme est términé, on affiche le résultat |
exemple :
pour un nombre décimal égal à 37
37 / 4 | 9.25 soit 9 | 37-(9 x 4) = 1 | 1 | BU |
9 / 4 | 2 | 9-(2 x 4) = 1 | 1 | BU BU |
2 / 4 | 0 | 2-(0 x 4) = 2 | 2 | ZO BU BU |
0, l'algorithme est terminé | on affiche le nombre shadok obtenu | ZO BU BU |
37(base 10) = 211(base 4) = ZO BU BU(base shadok)
On peut programmer une fonction javascript qui utilise cet algorithme
convertisseur de nombres décimaux en nombres shadoks
regarder le code source de la page
Algorithme de conversion de base 4 en base 10
un autre algorithme permet la conversion inverse
exemple :
Prenons le chifrre 211 (base 4) soit ZO BU BU écrit en shadok
on separe chaque chiffre du nombre 2 - 1 - 1
on multiplie par 4 à la puissance correspondant à la position du chiffre dans le nombre
soit 1 x 4O = 1
puis 1 x 41 = 4
puis 2 x 42 = 32
et on additione chaque résultat 1+4+32 = 37
ZO BU BU (shadok) = 37 (décimal)
convertisseur de nombres shadoks en nombres décimaux
regarder le code source de la page
les autres leçons