professeur shadoko

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 :

0GA
1BU
2ZO
3MEU
4BU GA
5BU BU
6BU ZO
7BU MEU
8ZO GA
9ZO BU
10ZO ZO
11ZO MEU
12MEU GA
13MEU BU
14MEU ZO
15MEU MEU
16BU 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