L’abaque de Gerbert est un simple tableau, mais Gerbert d’Aurillac y a adjoint des jetons numérotés permettant le calcul décimal. On peut aujourd’hui simuler l’abaque de Gerbert à l’aide de la technologie numérique.
Des exemples d’utilisation de l’abaque de Gerbert peuvent être vus sur sa chaîne Youtube. Mais la manipulation d’objets virtuels sur un écran tactile a ses limites, et rien ne vaut celle de vrais jetons en bois ou similaire. On peut pyrograver les chiffres sur des tranches de cylindre en bois (type tringle de rideau) ou de bouchons de liège, ou les graver et découper au laser, voire acheter des chiffres prédécoupés. Noter que le chiffre 0 est inutile pour l’abaque de Gerbert. Voici le recto
Parce qu’il peut servir de glisse-nombres, l’abaque de Gerbert est un facilitateur pour l’apprentissage des nombres décimaux. Mais une séance avec l’abaque de Gerbert est inutile avec des élèves qui n’ont aucune connaissance préalable de cet outil. Il conviendrait donc de tester une progression pluri-annuelle avec l’abaque de Gerbert. Voici des compte-rendus d’expériences menées dans diverses classes (décimaux en CM1 et CM2, multiplication en CE2, dictées de nombres en CP), dans l’ordre chronologique :
Une cohorte d’élèves ayant une connaissance pluriannuelle de l’abaque de Gerbert en entrant en 6e à la rentrée 2029 devrait être envisageable parmi des élèves ayant manipulé durant 5 ans avec l’abaque de Gerbert en CM2, lesquels devraient donc avoir
manipulé l’abaque durant 4 ans en CM1 (2027-2028)
manipulé l’abaque durant 3 ans en CE2 (2026-2027)
manipulé l’abaque durant 2 ans en CE1 (2025-2026)
manipulé l’abaque en CP durant l’année 2024-2025.
Seules 5 classes de CP ont pu participer à l’expérimentation durant l’année 2024-2025.
Finalement ce sont surtout des classes de CP qui ont pu découvrir l’abaque (à deux colonnes sauf dans une classe ayant déjà bénéficié de plus de 100 jours de classe depuis le début de l’année scolaire) durant l’année scolaire 2025-2026, avec essentiellement des dictées de nombres et, quand le temps l’a permis, quelques additions. Voici le récit d’un second passage en CP :
De la cohorte 2024, seuls quelques élèves ont pu revoir en 2026 l’abaque de Gerbert découvert en CP, et ces élèves avaient l’air d’avoir largement oublié cet outil. En revanche, ils n’ont plus posé de question sur l’absence de chiffre 0.
Voici maintenant un interpréteur Fractran en Sofus :
et en Python :
from fractions import *
programme = [Fraction(1,2),Fraction(2,3),Fraction(3,4),Fraction(4,5)]
def estEntier(fraction):
return fraction.denominator == 1
def fonction(n):
position = 0
nombre = n
while position<len(programme):
if estEntier(nombre*programme[position]):
nombre *= programme[position]
position = 0
else:
position += 1
return int(nombre)
for n in range(1,200):
if fonction(n) == n:
print(n,fonction(n))
(le programme Fractran a été inventé par un élève, sous forme de graphe, en SNT)
En fait, un programme Fractran est une sorte d’automate binaire, le fait que la multiplication par la fraction réussit ou échoue, conditionnant le chemin à prendre (retourner au départ en changeant de nombre, ou aller à la fraction suivante). Le programme Fractran ci-dessus (en Python) donne alors le graphe suivant :
Cela a été l’occasion d’un jeu en extérieur, coanimé par des élèves de 2nde (SNT) et des élèves de l’Alefpa, la course des fractions : chaque fraction est un point du lycée, où sont installés des élèves accueillant les concurrents, leur demandant leur nombre, vérifiant si la multiplication du nombre (du concurrent) par la fraction (de la station) réussit.
Si la multiplication réussit, on envoie le concurrent vers le départ (en suivant la flèche bleue) où il donne au maître du jeu son nouveau nombre, et là il repart avec son nouveau nombre.
Si la multiplication échoue, le concurrent garde son nombre actuel et est guidé vers l’étape suivante (flèche rouge).
Au départ du jeu (point d’interrogation sur le graphe), le concurrent se voit confier un nombre entier (dépendant du concurrent, ce n’est pas le même entier pour tout le monde), puis est guidé vers la première fraction. Ensuite, chaque fois qu’un concurrent arrive (en suivant une flèche bleue) au départ, il donne son nombre actuel au maître du jeu, qui vérifie si le nombre a changé depuis le dernier passage. Dans le cas contraire (le coureur est passé par une flèche rouge), il déclare que la course est finie, et note en vis-à-vis du nombre de départ, le nombre d’arrivée.
Lorsque tous les concurrents ont fini la course, on dispose d’une feuille de ce genre :
24
1
25
1
27
1
30
1
32
1
35
7
36
1
55
11
56
7
60
1
La question étant évidemment que calcule ce programme Fractran ?
On peut aussi songer à un projet où les concurrents flashent un QR-code pour géolocaliser la prochaine étape, mais dans ce cas les étapes doivent être suffisamment éloignées pour ne pas souffrir du manque de précision de la géolocalisation.
Voici un résumé de l’article de Conway, en lien avec la conjecture de Collatz :
Le jeu de Nim (au singulier) est un jeu inventé (ou du moins décrit) par Charles Bouton au début du XXe siècle, qui se joue avec des jetons disposés en tas :
Dans ce jeu, popularisé par le film l’année dernière à Marienbad, on retire autant de jetons que l’on veut d’un tas de jetons, mais d’un seul tas. D’autres jeux, similaires (par exemple celui joué à Fort-Boyard) sont également appelés jeux de Nim (au pluriel). Dans cet article, on explore divers jeux de ce type, où l’analogie avec le jeu de Nim est parfois bien cachée !
Jeux de Nim sur échiquier
On peut jouer à beaucoup de jeux de Nim (ou autres) sur un échiquier :
Outre le jeu de Nim (qui se joue traditionnellement avec des jetons), il y a le jeu Chomp, mais aussi celui de Grundy. Dans ce jeu, on part d’un tas de jetons, et chaque tour de jeu consiste à choisir un tas de hauteur au moins 3 (au début du jeu, on n’a pas trop le choix) et le couper en deux parties de hauteurs différentes. Par exemple, à partir d’un tas de 10 jetons, si le premier joueur a enlevé un tas de 3 jetons pour avoir un tas de 7 et un tas de 3, et que le second joueur a commis l’imprudence de diviser le tas de 7 en un tas de 5 et un tas de 2, on obtient la situation montrée ci-dessus, où le premier joueur a pour coup gagnant de séparer le tas de 5 en un tas de 3 et un tas de 2.
Avec un pion
Aviezri Fraenkel a trouvé comment modéliser un jeu de Nim avec un graphe : le graphe représente les étapes possibles du jeu, et un un pion est posé sur l’état courant du jeu. Pour jouer, on déplace chacun son tour le pion le long d’une flèche et le dernier à pouvoir bouger le pion a gagné le jeu. Voici quelques exemples testés en école maternelle (GS) :
Le jeu Cram se joue sur une grille (un échiquier par exemple) avec des dominos. Chaque domino couvre presque deux carrés de l’échiquier. Chaque joueur à son tour pose un domino sur deux cases vides de l’échiquier. Le premier qui ne peut plus poser de domino (parce que les cases vides sont isolées) perd le jeu.
Au tableau
Le jeu Sprouts se joue avec du papier et des crayons, ou au tableau avec des craies. Il consiste à dessiner incrémentalement un graphe, avec les contraintes suivantes :
le degré d’un sommet (initialement nul) ne doit pas dépasser 3,
deux arêtes ne doivent jamais se croiser,
chaque fois que l’on trace une arête, on rajoute un sommet (de degré 2) au milieu de cette arête.
Comme dans n’importe quel jeu de Nim, le premier qui ne peut plus jouer a perdu.
Le jeu bénéficie d’un énorme succès dès le CP, d’autant que la caravane de l’IREM le faisait jouer au tableau, ce qui attire l’attention des non joueurs. Par exemple, en 2020 à l’école Aristide Briand du Tampon, un nuage de points est tracé en bleu par l’animateur IREM, puis les joueurs construisent le graphe avec une couleur par joueur.
Ici, le joueur Vert a joué trois coups, et le joueur Rouge joue son troisième coup (c’est donc Vert qui a commencé le jeu). Rouge dessine le nouveau sommet au milieu de l’arête qu’il vient de dessiner :
Le graphe possède maintenant 9 sommets dont 3 sont de degré 2 (le vert tout à gauche, le rouge nouvellement tracé, et le bleu en bas). Vert dispose dont de deux coups gagnants :
joindre le sommet rouge nouvellement tracé au sommet bleu en bas (le nouveau sommet vert ne pourra pas être relié à celui à gauche sans traverser une arête),
joindre le sommet vert à gauche, au sommet bleu en bas (le sommet vert que cela créera ne pourra être joint au dernier sommet rouge sans traverser une arête).
Mais en fait, il perd en jouant un coup interdit :
En effet, le sommet bleu en haut à droite est maintenant de degré 4. De fait, dans le premier degré, les erreurs sont presque systématiquement des erreurs de dénombrement des degrés, traverser une arête ne se faisant guère.
Ici c’est à Rouge de jouer, sur un graphe ayant déjà 10 sommets :
Mais seuls deux sommets ont degré 2 (le bleu le plus senestre, et le vert le plus dextre), donc le seul coup jouable pour Rouge consiste à relier ces deux sommets par une arête. Or cela est impossible sans croiser une arête existante, ce que la règle du jeu interdit.
Un autre jeu de Nim peut être joué au tableau, mais en effaçant plutôt qu’en construisant. Green Hackenbush, lui aussi créé par John Conway, se joue sur un graphe connexe, dont un chemin est fixé, il s’appelle ligne de terre. Chaque joueur à son tour, efface un sommet qui n’est pas sur la ligne de terre, ainsi que toutes les arêtes qui émanaient de ce chemin, et toute partie du graphe qui n’est plus reliée à la terre. Lorsqu’il ne reste plus que la ligne de terre, le joueur qui vient de jouer a gagné le jeu.
En tournant des jetons
Hendrik Lenstra a montré dans les années 1970 que tout jeu de Nim peut être modélisé par des jeux où on retourne des pièces, selon un motif, certaines d’entre elles devant obligatoirement passer de pile à face. Deux de ces jeux sont praticables dès le CP :
Les jeux de soustraction (comme Fort-Boyard ou soustrais un carré vu ci-avant) peuvent aussi être joués en calcul mental : on dispose d’une variable entière et on la fait varier à tour de rôle jusqu’à ce que ce ne soit plus possible. D’autres manières de faire varier une variable sont envisageables comme dans le jeu beanstalk d’Isbell qui est un jeu en mode qui perd gagne :
Chaque joueur à son tour fait varier une variable entière de la manière suivante :
Si la variable est paire il la divise par 2 (coup forcé).
Si la variable est impaire il la triple, puis choisit entre ajouter 1 ou soustraire 1 (ce qui la rend paire).
Le premier qui rend la variable égale à 1, a perdu le jeu.
Il existe une amélioration de ce jeu par Conway, il l’a nommée beans don’t talk. Ce jeu se joue comme beanstalk, à ceci près qu’après avoir ajouté ou soustrait 1, le joueur divise par 2 autant de fois que possible, ce qui rend le nombre impair. Par exemple si la variable vaut 5, on obtient 15 après l’avoir triplée, mais en ajoutant 1 on tombe sur 16 puis 8 puis 7 puis 2 puis 1 et on perd. On a alors intérêt à plutôt soustraire 1, ce qui mène à 14 puis 7.
Lors de la réunion de rentrée de l’IREMI, un atelier consacré à ces jeux a été proposé. Voici les fiches de ces jeux (à imprimer en recto-verso, seuls les recto étant pertinents au début de l’atelier):
La semaine des mathématiques de 2015 a permis de tester des jeux permettant de mieux connaître les tables de multiplication.
Le trésor de Jabuse
Cette variante du jeu de Fort-Boyard appelée jeu des parties aliquotes diffère de son ancêtre par le fait qu’au lieu de soustraire 1, 2 ou 3 objets de la collection, on en soustrait autant qu’on veut du moment que le nombre d’objets que l’on s’apprête à retirer de la collection, est un diviseur propre du nombre d’objets actuellement présents.
La redoutable sorcière Latourista, sorcière des mers du Sud, a jeté sur une des pièces du trésor du pirate Jabuse, un sort, qui provoque chez le possesseur de ladite pièce d’atroces douleurs abdominales. Désireux de guérir de cette dysenterie, le pirate Jabuse vous propose de partager son trésor. Votre but n’est pas de gagner un maximum de pièces, mais de ne pas avoir la pièce maudite.
Pour partager les pièces, on fait comme ceci : chacun son tour, dispose les pièces restantes en un motif rectangulaire, puis prélève une ligne ou une colonne de ce rectangle.
Celui qui prend la dernière pièce perd le jeu, et est instantanément frappé par la malédiction de la célèbre sorcière Latourista.
Par exemple, s’il ne reste que 12 pièces et que c’est à moi de jouer, je peux
placer ces pièces en une ligne et prendre cette ligne (déconseillé : prendre toutes les pièces c’est aussi prendre la pièce maudite et perdre le jeu),
placer les pièces en deux lignes de six et prendre une des lignes (il reste alors 6 pièces),
placer les pièces en trois lignes de 4 et prendre une ligne (il reste alors 8 pièces),
placer les pièces en quatre lignes de trois et prendre une ligne (il reste alors 9 pièces),
placer les pièces en six lignes de deux et prendre une ligne (il reste alors 10 pièces),
placer les pièces en douze lignes d’une pièce chacune (c’est-à-dire en une colonne) et prendre une ligne (c’est-à-dire une pièce ; il reste alors 11 pièces),
autrement dit, le nombre de pièces que je peux retirer du trésor de Jabuse doit être un diviseur de 12 autre que 12.
Chomp
Une autre variante des jeux de Nim portant (mais de façon un peu cryptée) sur la divisibilité a été décrite par David Gale sous le nom (trouvé par Martin Gardner) de Chomp :
Le jeu de Chomp, qui est un jeu de Nim bidimensionnel, peut être vu également comme un jeu (Schuh, 1952) sur la divisibilité :
On donne au premier joueur la valeur initiale d’une variable (par exemple 72). Chaque joueur à son tour divise la variable par un de ses diviseurs autre que 1. Le premier qui arrive à rendre la variable égale à 1, perd le jeu.
En plaçant le biscuit empoisonné en bas à gauche, les biscuits portent les numéros suivants :
9
18
36
72
3
6
12
24
1
2
4
8
Dans l’article de Gale ci-dessus, il est suggéré pour gagner, de manger le biscuit numéroté 12 et tous ceux qui étaient plus haut et plus à droite que celui-ci (24, 36 et 72 ci-dessus : ce sont les multiples de 12 qui a été joué). Il reste alors les nombres 1, 2, 3, 4, 6, 8, 9 et 18 à jouer : chaque tour de jeu consiste à retirer, parmi les diviseurs de 72, un nombre et ceux de ses multiples qui seraient encore là. Celui qui retire 1 est perdant du jeu.
Juniper Green
Vers la fin du XXe siècle, Richard Porteous, professeur au collège de Juniper Green, invente un jeu quelque peu similaire aux deux précédents :
On dispose d’une collection d’entiers non nuls (par exemple ceux inférieurs à un seuil). Le premier joueur choisit un nombre pair, puis chaque joueur à son tour, choisit un nombre qui n’a pas déjà été choisi et qui soit, ou bien un multiple, ou bien un diviseur, du nombre précédemment choisi. Le premier joueur qui ne peut plus choisir de nombre vérifiant ces contraintes, perd le jeu.
D’après un article du bulletin vert de l’APMEP, le jeu a été testé en classes de CM1 et collège.
Mise à jour : après la présentation de ce jeu au séminaire de l’IREM,
puis présenté par Boris Laval et Olivier Sicard en séminaire IREM
puis programmé par Boris sur smartphone (avec un solveur implémentant des IA de jeu)
puis quasiment résolu par Julien Lemoine (spécialiste des jeux de Nim, or le jeu de Juniper Green est un jeu de Nim)
divhasard
Ce jeu a bénéficié d’un franc succès en CM1 et en 5e. Il se joue avec un dé (de préférence icosaédrique) que les joueurs lancent à tour de rôle. Parès le lancer du dé, est indiqué un entier de 1 à 20 (par exemple 12). Alors
on dresse la liste des diviseurs (exemple 1, 2, 3, 4, 6, 12)
compte les diviseurs (par exemple 12 a 6 diviseurs)
marque autant de points que le nombre de diviseurs (par exemple si on obtient 12, on augmente son score de 6 points).
Après trois tours (une demi-heure pour la moitié d’une classe de 5e), la personne ayant le plus grand total a gagné le tournoi de divhasard.
des interpréteurs (en Python par exemple) pour calculatrices telles la Numworks…
On programme en ligne, avec des blocs similaires à ceux de Scratch, par exemple si on veut simuler la suite de Collatz, on place des blocs ainsi :
Un clic sur le drapeau vert aura alors pour effet de produire cet affichage :
53
80
40
20
10
5
8
4
2
1
Sofus possède de multiples tortues (ce qui lui permet de résoudre les sujets de DNB, plutôt mieux que Scratch) et on peut utiliser la tortue pour représenter graphiquement la suite :
Le graphique obtenu est celui-ci :
La spécialité de Sofus est surtout de pouvoir modifier une variable en place, comme le permet Python avec les +=, -=, *= et /= mais en notation préfixe (celle de Python, héritée de C, est infixe).
De Sofus vers Python avec SofusPy
Patrick Raffinat a développé une interface permettant de produire du code Python à partir des blocs de Sofus, elle s’appelle SofusPy. On peut considérer SofusPy comme un fork de Sofus, aussi un fork du fork a-t-il été produit, c’est SofusPy974.
Pour programmer aisément la suite de Collatz, on peut cliquer sur le bouton commandes puis entrer
u = 35
ensuite, en cliquant à nouveau sur commandes, on voit qu’un bloc est apparu :
Et, à partir de là, il est aisé de structurer le programme en insérant une boucle :
Si u est impair, on doit le tripler puis l’incrémenter. En cliquant à nouveau sur commandes, on écrit :
u*3
et un nouveau clic sur commandes donne
Ceci évite d’avoir à se rappeler comment on fait pour tripler une variable : SofusPy se charge de cela. Après
u+1
dans les commandes, on a
Ensuite, toujours dans les commandes, on écrit u/2 pour avoir
qui donne le script presque complet : il ne reste plus qu’à ajouter l’affichage (et réduire les blocs pour plus de lisibilité) :
Comme dans Sofus, on peut tester le script en l’exécutant (par un clic sur le drapeau vert), mais aussi, cliquer sur le bouton Editeur qui permet de savoir comment on fait, en Python, pour tripler une variable, l’incrémenter, la diviser par 2, l’affecter, la tester, et boucler dessus :
u = 35
while not u == 1:
if u % 2 == 1:
u = u * 3
u = u + 1
u = u / 2
print(u)
SofusPy974 est un accélérateur d’apprentissage de Python. Cerise sur le gâteau, il y a (dans l’éditeur Python) un bouton pseudocode qui réagit au clic en produisant, dans la fenêtre d’affichage, ce genre de prose :
u ← 35
Tant que on n'a pas u = 1
si u % 2 = 1
u ← u × 3
u ← u + 1
u ← u / 2
afficher (u)
On peut bien entendu enregistrer le script Python engendré, voire utiliser la console Python pour programmer directement en ligne (sans passer par Sofus).
Sofus en cycles 3 et 4
La difficulté qu’ont des élèves de cours moyen à s’orienter dans le plan (alors même que les rotations n’y sont que d’angles droit) a mené à la création d’une autre version de Sofus, spécialisée dans le cycle 3, elle s’appelle SofusPrim.
Par ailleurs, l’abondance de programmes de calcul au DNB a mené à une intégration dans Sofus de possibilité de calcul formel permettant d’étudier des programmes de calcul. Cette nouvelle version s’appelle SofusColl. Voilà comment on peut s’en servir pour résoudre le problème de DNB Polynésie 2015 :
Voici un programme de calcul. •Choisir un nombre •Ajouter 1 •Calculer le carré de cette somme •Soustraire 9 au résultat. 1.Vérifier qu’en choisissant 7 comme nombre de départ, le résultat obtenu avec ce programme est 55. 2.Lorsque le nombre choisi est −6, quel résultat obtient-on ? 4.Le programme donne 0 pour deux nombres. Déterminer ces deux nombres.
Le programme de calcul produit un résultat qui dépend du nombre choisi au départ. Conceptuellement, il s’agit d’une fonction, et le nombre qu’on lui fournit est renommé variable, car en fait 7 (dans la question 1) n’est pas un nombre, mais la valeur initiale d’une variable :
L’affichage en bas donne bien 55 (réponse à la question 1). Pour répondre à la question 2, il suffit de mettre -6 à la place de 7 :
ce qui donne dans la console :
16
Pour la question 4, on gagne à nommer x le nombre choisi :
ce qui donne cet affichage :
- 8 + x**2 + 2*x
On peut faire mieux :
ce qui donne
- 8 + x² + 2 x
Pour résoudre la question 4, on peut faire
ce qui produit l’affichage peu lisible (mais correct) :
- 1 + (sqrt(36))/2, - 1 + (sqrt(36))/-2
Mais pour peu que l’on sache que la racine carrée (sqrt) de 36 est 6, les deux solutions s’écrivent -1+6/2 et -1+6/-2 soit -1+3 et -1-3 soit encore 2 et -4. Ce qui donne envie de faire
Le résultat est exactement le même que celui vu avant :
- 8 + x**2 + 2*x
ce qui permet de résoudre la question 4.
Remarque : la moitié environ des programmes de calcul du DNB comprennent une étape du genre soustraire le nombre de départ qui donne un graphe un peu compliqué lorsqu’on veut en représenter en flow programming (voir plus bas) et nécessite de mémoriser une copie du nombre de départ pour pouvoir exécuter ultérieurement ce genre de ligne faisant appel au nombre de départ. Cette mémorisation du nombre de départ rend d’ailleurs impossible l’usage de la mémoire de travail, et empêche de faire de ce genre de programme de calcul, un activité mentale.
Sofus, avenir des programmes de calcul ?
Sofus, créé à l’origine pour la programmation (programmes de calcul) en cycle 4, a fait ses preuves surtout en lycée (apprentissage de la programmation en maths, passage de Scratch à Python avec SofusPy974, …). Mais l’avenir des programmes de calcul (et de la programmation en général), c’est peut-être bien le flow programming, initialement popularisé dans la musique, et de plus en plus présent pour des applications plus généralistes comme Node-RED. Avec flow-974, le programme de calcul précédent se représente ainsi :
Pour la question 2, il suffit de remplacer le 7 à gauche par -6 (par exemple en cliquant 13 fois sur la flèche de décrémentation) et lire la réponse à droite :
Le flow programming permet de dessiner les combinateurs, qui sont des fonctions s’appliquant à des fonctions du même type qu’elles (voire à elles-mêmes !). Voici quelques-uns de ces dessins :
let de = "de"
let par = "par"
let dans = "dans"
let mettre d dans x = x:=d
let incrementer x = x:=!x+1
let decrementer x = x:=!x-1
let augmenter x de d = x:=!x+d
let diminuer x de d = x:=!x-d
let multiplier x par d = x:=!x*d
let diviser x par d = x:=!x/d
let doubler x = x:=!x*2
let tripler x = x:=!x*3
let quadrupler x = x:=!x*4
let quintupler x = x:=!x*5
let sextupler x = x:=!x*6
let septupler x = x:=!x*7
let octupler x = x:=!x*8
let nonupler x = x:=!x*9
let decupler x = x:=!x*10
On écrit le script dans la partie gauche, et en cliquant sur le bouton en dessous de cette fenêtre, le script s’exécute et affiche les résultats dans la fenêtre de droite :
Un bouton en haut à droite permet d’afficher l’algorithme en pseudocode :
Une suite peut aussi être modélisée par un tableau, dans lequel on empile les termes successifs de la suite :
Une suite peut également être représentée graphiquement, sous la forme d’un nuage de points (le rayon et la couleur des points sont les derniers paramètres donnés) :
Voici le graphique obtenu avec le script ci-dessus :
Exemple de fonction : la fonction nulle
Comme les fonctions exponentielle et logarithme sont inverses l’une de l’autre, pour tout réel x, ln(ex)=x, donc ln(ex)-x est la fonction nulle, qui à tout réel x, associe 0 :
Pour représenter graphiquement une fonction, on fournit
l’instruction dessineFonction
le nom de la fonction
la plus petite abscisse du repère
la plus grande abscisse
la plus petite ordonnée
la plus grande ordonnée
la couleur de la courbe
Le script ci-dessus donne cette courbe :
La fonction nulle étant constante, sa représentation graphique est censée être une droite horizontale, ici ce n’est pas exactement le cas, les fluctuations étant liées à des erreurs d’approximation dépendant de x. Un phénomène similaire apparaît avec la fonction sin2x+cos2x-1, elle aussi censée être nulle.
Graphisme avec alcoffeethmique
Outre la possibilité de représenter graphiquement les suites et fonctions, alcoffeethmique peut aussi dessiner des diagrammes en bâtons, des histogrammes, des cercles, segments et polygones, des ensembles (cercles d’Euler déformés), des pavages de Truchet et même des diagrammes de Voronoi :
Le script ci-dessus dessine un nuage de points simulant les positions des graines de tournesol (en marron), ainsi que le diagramme de Voronoi (en vert), que voici :
Voir aussi
alcoffeethmique a été utilisé dans la revue MathemaTICE avec
La concision du langage Python permet de faire un cours court qui court !
Cours de Seconde
Ce cours a été enseigné en Seconde durant l’année scolaire 2011-2012. Seul le chapitre sur la géométrie dans l’espace ne s’appuie pas sur Python (les anaglyphes de CaRMetal étant plus appropriés dans ce chapitre).
Raymond Smullyan, spécialiste de Gödel, a suivi ce dernier dans sa quête de la logique doxastique. Or, selon Wittgenstein, ce qui distingue la logique doxastique (celle des croyances) de la logique épistémique (celle du savoir), c’est qu’il est possible de croire en une proposition fausse. Ainsi, comment distinguer
un menteur sain qui sait que 2+2 n’est pas égal à 5 mais prétend que 2+2 est égal à 5,
un fou honnête qui dit que 2+2 est égal à 5 parce qu’il en est convaincu ?
Ainsi, si on définit un menteur comme quelqu’un qui ne dit pas la vérité, et sachant qu’on ne peut pas dire la vérité si on ne connaît pas la vérité, nous sommes tous des menteurs puisqu’aucun de nous ne connaît la vérité. Saint-Paul fait d’ailleurs allusion à ce phénomène dans son épître à Tite (qu’il envoie en Crète) :
11 Il faut fermer la bouche à ces gens qui, pour faire des profits malhonnêtes, bouleversent des maisons entières, en enseignant ce qu’il ne faut pas.
12 Car l’un d’entre eux, un de leurs prophètes, l’a bien dit : Crétois toujours menteurs, mauvaises bêtes, gloutons fainéants !
13 Ce témoignage est vrai. Pour cette raison, réfute-les vigoureusement, afin qu’ils retrouvent la santé de la foi,
14 au lieu de s’attacher à des récits légendaires du judaïsme et à des préceptes de gens qui se détournent de la vérité.
15 Tout est pur pour les purs ; mais pour ceux qui sont souillés et qui refusent de croire, rien n’est pur : leur intelligence, aussi bien que leur conscience, est souillée.
Smullyan (ou plutôt, ses traducteurs en français) rebaptise Puropira l’île de Crète, purs ceux qui ne mentent jamais (ce qui suppose qu’ils sont omniscients) et pires ceux qui ne disent jamais la vérité.
En Python
Pour résoudre des problèmes de Smullyan, on peut utiliser le script Python que voici :
purs = { X: False for X in 'ABC'}
V = (False,True)
tab = {False: ' est un pire', True: ' est un pur'}
dit = lambda X,p: purs[X]==p
def dit_solution(obj):
texte = ""
for X in obj:
texte += X + ' est ' + tab[obj[X]] + '\n'
return texte
Par exemple, voici son premier problème :
Albert, Bernard et Charles sont dans un jardin. Un passant demande à Albert : « êtes-vous un Pur ou un Pire ? ». Albert répond mais le passant n’entend pas bien la réponse ; alors il demande à Bernard « qu’est-ce qu’il a dit ? ». Bernard répond : « il a dit qu’il est un Pire ». Mais Charles dit alors « ne croyez pas ce que dit Bernard, il ment ».
On traduit cela ainsi :
B dit que A dit que A est un pire
C dit que B est un pire
C dit que A ne dit pas que A est un pire
Ce qui, en Python, se modélise ainsi :
for a in V:
purs['A'] = a
for b in V:
purs['B'] = b
for c in V:
purs['C'] = c
if dit('B',dit('A',not purs['A'])) and dit('C',not purs['B']) and dit('C',dit('A',purs['A'])):
print(dit_solution(purs))
Avec ces fonctions, on trouve deux solutions :
A est est un pire B est est un pire C est est un pur
A est est un pur B est est un pire C est est un pur
ce qui permet de conclure que Bernard est un pire (Bernard ment) et que Charles est un pur (Charles dit vrai) mais ne permet pas de conclure sur la nature d’Albert. Comme le remarque Smullyan, on dispose de deux affirmations (1 bit d’information chacune) ce qui apporte une information sur la situation décrite, égale à 2 bits (trancher entre 4 possibilités). Or pour connaître la nature des trois personnages, il faudrait 3 bits d’informations, il était donc prévisible que l’on ne puisse prédire que la nature de deux des personnages.
Logique doxastique
L’équivalent du théorème de Gödel en logique doxastique est ce sketch : deux étudiants sont en avance et entrent dans un amphi vide sur le tableau duquel ils voient cette inscription :
Seul un imbécile peut croire en la présente phrase.
Le premier demande au second s’il croit ce qui est écrit au tableau. Le second lui répond : Non, seul un imbécile peut y croire !
Une autre version se passe sur l’île de Puropira, où on rencontre un habitant disant : Tu ne croiras jamais ce que je suis en train de te dire.
S’il est un pire, il ment ce qui veut dire que je crois ce qu’il dit. Mais je crois alors en quelque chose de faux.
S’il est un pur, il dit la vérité, mais je ne crois pas en quelque chose de vrai.
Je ne peux donc être à la fois omniscient et cohérent, c’est en substance ce que raconte le théorème de Gödel.
Autres logiques modales
Le livret ci-dessous est une collection de petits articles sur les algèbres de Boole, ainsi que les logiques épistémique et doxastique mais aussi, déontique :
On peut calculer toutes sortes de choses avec des jetons, et même faire de la logique avec ! Ce jeu, commercialisé au début du XXe siècle, est de Lewis Carroll.
La recherche d’une gamme tempérée amène à placer les frettes sur une guitare, de manière que les positions de ces frettes suivent une progression géométrique, et que la douzième frette soit au milieu de la corde. Cette construction n’est pas réalisable à la règle et au compas, mais la géométrie projective permet de graduer homographiquement un segment, et en 1843, Daniel Strähle (organiste suédois), publie cette construction qu’il est intéressant d’analyser en terme de minimisation de l’erreur globale.