Les machines de Post et à registres

calculer en semant des graines
mardi 2 novembre 2021
par  Alain BUSSER

Emil Post

Leon Emil Post, ayant perdu l’usage de sa main durant une partie de football dans les rues de New York, a été handicapé dans ses recherches par une psychose maniaco-dépressive qui lui a valu de nombreux séjours en hôpital [1]. Selon ses propres dires, il aurait inventé la machine de Turing en 1921 (donc 15 ans avant Turing) mais sa femme ayant jeté ses brouillons durant un de ses séjours à l’hôpital, il n’a pu prouver ce fait. Ses problèmes de santé l’ont également empêché de publier la description de sa machine. C’est en 1936, juste avant la parution de l’article de Turing, que Post, sur conseil de son ami Church, a rapidement rédigé finite combinatory processes dans lequel apparaît la description de sa machine. Celle-ci, contrairement à celle de Turing, est binaire.

Frances Allen

Dans les années 1950, Wang Hao (logicien) a effectué sur les machines de Turing (non nécessairement binaires) la même transformation qu’avait anticipée Post, à savoir représenter le graphe des états de la machine de Turing-Post-Wang par une liste d’instructions-états [2]. Au début des années 1960, Frances Allen propose en quelque sorte l’opération inverse, à savoir représenter le programme non pas par une suite d’instructions numérotées par un numéro de ligne, mais par un graphe, dit graphe de flot de contrôle.

D’où l’idée d’expérimenter des activités débranchées modélisant la machine de Post, afin de rendre un hommage conjoint à Post (qui a inventé sa machine en 1921) et Allen (dont l’annonce du décès a été faite 100 ans plus tard).

V.A.Uspensky

Des graphes de flot de contrôle pour la machine de Post existent déjà, ce sont les cas particuliers de machines de Turing où le codage est binaire, mais elles n’ont pas encore fait l’objet d’expérimentations en classe. À une exception possible près :

V.A.Uspensky a expérimenté les machines de Post à l’école primaire dans les années 1970. On voit un graphe de flot de contrôle à la page 42 de son livret. Uspensky part d’un programme (d’addition) sur la machine de Post :


puis il défait le tri topologique en dessinant le graphe de flot de contrôle :

Enfin, comme Frances Allen, il regroupe des instructions en blocs (sous-graphes) :

Ce qui lui permet d’analyser le programme et comprendre ce qu’il fait. Le découpage en blocs d’instructions est typique de ce que Turing appelait subroutines et ce passage est très rapidement perceptible lors de l’apprentissage : il permet pour l’enfant d’aller plus vite, une fois conceptualisé le bloc. Par exemple

finit par devenir la macro (ou bloc d’instructions)

puis

Chacun de ces paliers d’apprentissage apparaît à un stade différent selon les élèves, et en général après un certain temps consacré à manipuler la machine de Post [3].

Une machine de Post sans programme est manipulable en ligne ici. D’autres sont .

Le codage suivant a été choisi :

Symbole Uspensky Post explication
✔️ V marking the box he is in faire en sorte que l’index montre une graine
ξ erasing the mark in the box he is in faire en sorte que l’index montre une case vide
moving to the box on his right déplacer l’index vers la case à droite
moving to the box on his left déplacer l’index vers la case à gauche
👁️  ? determining whether the box he is in, is marked regarder si l’index montre une graine ou une case vide et déplacer le pion en conséquence

Matériel nécessaire

Post évoque des chambres ou boîtes alignées, que l’on peut aisément modéliser par des moitiés de bacs à glaçons comme ceux que l’on voit dans le premier onglet sowing de cet article. Qu’une case soit vide ou pleine, se voit à l’absence ou la présence d’une graine dedans. Et pour voir quelle case est en cours de traitement, on peut utiliser un objet ayant grossièrement la forme d’une pointe, par exemple cet objet, imprimé en 3D pour l’occasion :

dessin source au format Blender3D fichier pour imprimante 3D

Si on ne dispose pas d’une imprimante 3D, on peut coller sur la moitié d’un bouchon de liège, un dessin représentant une main ☝️ dont l’index est vers le haut. Il faut que les élèves puissent déplacer l’index de manière qu’il pointe vers la case de gauche ou celle de droite, si le programme le demande. Cela nécessite que le centre de gravité de l’ensemble cylindre+main soit assez bas pour garantir une bonne stabilité de l’ensemble. Il faut également que l’index soit assez bas pour éviter les erreurs de parallaxe, mais assez haut pour qu’il puisse montrer la case et ne pas être caché par elle.

Il faut également des objets (noyaux de litchi par exemple) suffisamment gros pour éviter d’en mettre plusieurs dans la même case. Et des feuilles imprimées donnant les programmes de la machine de Post, ainsi qu’un pion à poser (et déplacer) sur le graphe. Voici des exemples :

explications sur la machine de Post Exemples de programmes Programmes à imprimer

Il faut 3 élèves pour exécuter un programme :

  • l’un se charge de déplacer le pion sur le graphe, et dire aux deux autres ce que le pion dit de faire,
  • un autre est chargé de l’index et de ses déplacements,
  • le troisième est chargé des graines dans les cases (transport de graines entre les cases et la réserve de graines), et notamment dira au premier élève s’il y a une graine dans la case, ou non.

Par exemple, le pion étant posé sur un œil, le gestionnaire du graphe demande si l’index montre une graine. C’est le cas :

donc le pion part vers la droite du graphe (marquée par le smiley) :

L’exemple ci-dessus est en fait un castor affairé :

Graphe de flot de contrôle

On remarque que le castor affairé ci-dessus, démarré sur des cases vides, parcourt tout le graphe lors de l’exécution de son programme. La théorie de Frances Allen amène à conseiller que pour un jeu de tests donné

  • tous les sommets du graphe soient parcourus, au moins une fois, par le pion
  • tous les arcs du graphe soient parcourus, au moins une fois, par le pion.

L’activité permet donc, sans l’annoncer, de sensibiliser à la science du débogage.

Solitaire en dimension 1

L’un des programmes de la machine de Post proposés ci-dessus effectue un mouvement du jeu de solitaire en dimension 1 :

Il s’agit de faire sauter un pion par-dessus son voisin de droite, après avoir vérifié qu’il y avait bien de la place après. Sauter vers la gauche est également réalisable avec une machine de Post :

Les registres de Post peuvent donc être également utilisés pour jouer au solitaire en dimension 1. Ce jeu a fait l’objet d’un sujet de concours : la deuxième partie du sujet Mines-Pont 2021.

Dans le cas d’un solitaire à 8 bits, on peut construire, en remontant depuis la version finale où il ne reste plus qu’une graine, le graphe du jeu :

On constate que la graine que l’on doit retirer du jeu avant de prendre les pions en sautant par-dessus, ne doit pas être choisie n’importe où si on veut gagner. On voit par exemple que 110101 est une position gagnante ainsi que 1101 (obtenu en sautant vers la droite) mais jouer ensuite 10001 (en sautant vers la gauche) comme dans le sujet Mines-Ponts ne permet pas de gagner : on voit sur le graphe que sauter vers la droite pour aboutir à 11 est ce qu’il faut faire pour gagner.

Erreurs constatées

  • Le fait que les flèches vers la gauche et vers la droite indiquant dans quel sens décaler l’index (d’une seule case) ont la même forme que l’index, incite les plus jeunes à tourner l’index pour qu’il ressemble plus à la forme dessinée, au lieu de décaler l’index.
  • Décaler l’index d’une seule case est parfois difficile.
  • En plaçant plusieurs rangées de cases pour avoir une rangée plus longue, on n’évite pas forcément le blocage une fois arrivé au bout d’une rangée (la jonction avec la rangée suivante est parfois mal perçue).
  • Lorsqu’on regarde l’index en biais, il arrive parfois qu’une erreur de parallaxe attire l’attention sur la case voisine de celle pointée par l’index.
  • Le pion cache l’instruction à exécuter. En le soulevant il arrive qu’on ne se rappelle plus où le remettre après.
  • L’interprétation des cases vides ou pleines par un frowney ou un smiley est un peu abstraite.
  • Le fait que sur les dessins des mains, le pouce est écarté de l’index, suggère que les mains montrent le nombre 2 [4]. Il en est de même pour le signe √ utilisé pour représenter une case cochée.
  • Si les graines sont trop petites, on peut avoir tendance à ajouter une graine sans limite, surtout si l’instruction est de mettre une graine dans une case déjà pleine.

Cette dernière erreur suggère une variation sur le thème :

Machines à registres

Avec des graines plus petites, on peut mettre plusieurs graines dans une même case qui devient alors un registre [5]. Le nouveau modèle permet alors, en plus des compétences liées aux machines de Post, de mettre en œuvre celles liées à la numération [6]. Le codage change par rapport aux machines de Post [7] :

Version Post Version registres Signification
✔️ + ajouter une graine dans la case pointée par l’index
- enlever (si possible) une graine de la case pointée par l’index
déplacer l’index vers la case à droite
déplacer l’index vers la case à gauche
👁️  ? regarder s’il y a au moins une graine dans la case pointée par l’index

La lettre H (initiale de « halt ») a été choisie pour désigner l’arrêt du programme.

Voici le nouveau mode d’emploi :

Voici un programme d’addition :

En effet tant qu’il y a une graine dans la case de gauche, il la transfère dans la case de droite. Le nombre total de graines étant invariant, les nombres de graines ont été additionnés. Par exemple si au départ il y avait 3 graines dans la case de gauche (sur laquelle pointe l’index) et 5 graines dans la case de droite, lorsque la case de gauche est vide, celle de droite contient 8 graines.

Cette activité sensibilise donc au fait que l’addition est liée à un regroupement d’objets, et au comptage (pour vérifier qu’il y a 8 graines à l’arrivée, il faut bien les compter !).

Voici un programme de soustraction :

En effet s’il y a 3 graines dans la case de gauche (sur laquelle pointe initialement l’index) et 5 graines dans la case suivante, celle-ci contient à la fin 2 graines (différence entre 5 et 3).

Là encore, outre le comptage de graines nécessaire pour connaître le résultat de la soustraction, cette activité donne un sens à cette opération, par un invariant : la différence entre deux nombres est la même que celle entre leurs prédécesseurs [8]. On ramène alors la soustraction 5-3 aux soustractions plus simples

  • 4-2
  • 3-1
  • 2-0

Celle-ci étant terminée puisqu’il n’y a plus rien à soustraire [9].

Le programme ci-dessous divise par 2 le contenu de la première case (à la fin le nombre de graines de la seconde case est la moitié de celui qui était initialement dans la première case) :

On constate que chaque fois qu’on a ajouté une graine dans la seconde case, on en a enlevé 2 de la première case, ce qui revient au même que compter des constellations de 2 pour connaître le quotient par 2.

Et voici un programme de multiplication (il utilise 4 cases, et à la fin la 4e case contient le produit des nombres de graines qui étaient dans les deux cases de gauche) :

Cet algorithme, plus complexe que les précédents, permet de voir les phases d’abstraction décrites dans la partie sur Uspenky : Comme le faisait Frances Allen, certaines instructions ont été regroupées en blocs d’instructions qui ont le même effet qu’une seule instruction, mais plus complexe. Les trois blocs en bas ont les significations suivantes, de gauche à droite :

déplacer l’index de 2 cases vers la gauche transférer les graines de la case 3 vers la case 2 créer une copie des graines de la case 2 dans la case 3 et transférer les graines de la case 2 vers la case 4

Arrivé à ce niveau d’abstraction (ce qui devrait arriver automatiquement à force de pratiquer ce jeu), l’algorithme devient (la case 1 est un compteur indiquant combien de fois il faut faire ce qui est ci-dessous) :

  • enlever une graine de la case 1 (en haut à droite) pour ne pas refaire un travail déjà effectué
  • ajouter autant de graines qu’il y en a dans la case 2 à la case 4 et transférer les graines de la case 2 dans la case 3 (bloc de longueur 7 à droite),
  • retransférer les graines de la case 3 dans la case 2 (bloc de longueur 4 au milieu)
  • revenir à la case 1 (bloc de longueur 2 à gauche) et recommencer.

Puis, pour éviter de faire des choses trop répétitives, le niveau d’abstraction peut encore monter d’un cran et on arrive à

  • autant de fois qu’il y avait initialement de graines dans la case 1,
  • rajouter dans la case 4 autant de graines qu’il y en a dans la case 2.

Par exemple, s’il y avait initialement 3 graines dans la case 1 et 4 graines dans la case 2, le nombre final de graines dans la case 4 est 4+4+4=3×4. Alors que s’il y avait initialement 4 graines dans la case 1 et 3 graines dans la case 2, le nombre final de graines dans la case 4 est 3+3+3+3=4×3.

Enfin, pour les courageux, ce programme calcule le pgcd des nombres de graines initialement présentes dans les deux premières cases :

P’’

Les graphes de flot de contrôle utilisés avec la machine à registre sont écrits dans un langage de programmation dérivé de P’’ ( « P double prime » ). Outre le + (incrémentation de la case pointée) et le - (décrémentation de la case pointée), il possède les caractères > (incrémentation du pointeur) et < (décrémentation du pointeur) ainsi que les parenthèses. On peut le tester en ligne en cliquant ci-dessous :

Attention : refermer une parenthèse correspondant à une parenthèse ouvrante non suivie d’un « - » (soustraction) peut faire planter le navigateur.

De même, le jeu Enigma possède un interpréteur similaire :

On peut également tester cet outil en ligne.

Autres jeux inspirés par Post

Post était surtout spécialiste de la théorie algébrique des langages (règles de réécriture). Certains de ses travaux peuvent donc donner lieu à des jeux intéressants pour des élèves en cours d’acquisition du langage écrit :

  • Le jeu du caviar est basé sur le comptage et la reconnaissance de motifs. On peut y jouer avec des perles : les perles qu’on ajoute à droite du collier forment un motif qui dépend de la couleur de la perle de gauche puis on enlève les 2 perles les plus à gauche et on recommence. Ce jeu est praticable dès l’école maternelle mais requiert une attention soutenue pendant longtemps.
  • Le problème de correspondance de Post est un jeu où on pose des cartes (ou des dominos) de telle manière que le mot du dessus soit le même que le mot du dessous. En voici quelques exemples jouables en ligne (la plupart sont dans un alphabet de deux lettres) :
l’original (Post 1946) alphabet ternaire 4 cartes suffisent un jeu de Jeff Erickson un jeu difficile (Erickson)

Fête de la science

Les machines de Post et à registres ont été testées durant la fête de la science 2021 avec la caravane de l’IREMI.

lycée Rontaunay

La première date a été le lycée Rontaunay. Les graines utilisées sont en caoutchouc qui supporte bien le gel hydroalcoolique :

Les élèves trouvent un moyen à la fois esthétique et ergonomique pour stocker les graines de la réserve de graine :

L’animation des jeux a été assurée par des élèves du lycée, qui ont suivi une rapide formation en début de matinée puis ont initié leurs camarades aux machines de Post.

Voici un programme en cours d’exécution, on voit le déplacement de l’index vers une case occupée, puis une hésitation (l’instruction est de placer une graine alors qu’il y en a déjà une) puis un nouveau déplacement de l’index :

Un castor affairé s’apprête à construire un motif grâce à ce programme :

Un élève vient de poser l’addition 3+3 (3 graines de chaque côté de la case vide) et s’apprête à lancer le programme d’addition sur la machine de Post :

Les machines à registre semblent avoir eu la préférence des élèves animateurs de l’activité. Celle-ci a fait l’objet d’un rappel sur les fonctions :

En effet, il n’y a de graines que dans la première case avant le début du calcul, et que dans la seconde case à la fin du calcul. Le nombre final de graines est donc fonction du nombre initial de graines. Le but du jeu, dans ce cas, était d’essayer de deviner quelle est la fonction. L’exécution répétée du programme permet de construire le tableau de valeurs suivant :

nombre initial de graines nombre final de graines
0 0
1 0
2 1
3 1
4 2
5 2
6 3

Iris Hoarau

À l’école Iris Hoarau, la plupart des élèves ayant semé des graines avec la machine de Post (en fait, à registres) étaient en CE2. Mais une classe de CM1 est passée et elle a eu droit à la version binaire.

binaire

En CM1 comme en CE2, les équipes étaient idéalement formées de 3 personnes, l’une pour bouger le pion (« Monsieur Post »), une autre pour bouger le doigt et une troisième pour effectuer les semis :

Des élèves viennent de finir (on le voit au fait que Monsieur Post arrive sur un panneau stop) le calcul 4+2 :

L’opération 4-2 est en cours de calcul ici :

En fait la soustraction 4-2 a été transformée en 3-1 qui donne le même résultat.

Et ici c’est l’opération 5-1 qui est en cours de calcul :

L’opération 5-1 a été transformée en 4-0 ce qui fait que le calcul est bientôt terminé :

On voit ici une erreur de calcul :

En effet, là où se trouve Monsieur Post, l’exécution du programme devait mener la main à un mouvement vers la gauche (la droite sur la photo) :

Les élèves de CE2 ont eu droit à des manipulations sur machines à registres.

Travail en équipe

Typiquement il y a trois élèves par équipe :

  • l’un s’occupe des mouvements du pion,
  • un autre gère le doigt
  • un (ou deux) autre sème les graines :

Parfois les mouvements des membres de l’équipe sont simultanés :

On verbalise beaucoup avec cette activité :

Parfois il faut bien stabiliser le doigt (et surtout se rappeler où il était, en cas d’accident) :

Opérations de base

Le pion s’appelle Monsieur Post. Il se promène sur un graphe. À chaque étape de sa promenade, il regarde l’instruction (en se penchant en avant, le cas échéant) :

Il a parfois besoin de revenir à son point de départ :

Parfois Monsieur Post arrive à un carrefour. Pour savoir de quel côté il doit aller, on regarde si le doigt montre une case vide ou une graine.

Si le doigt montre une case vide alors Monsieur Post fait un virage à gauche (il descend vers la droite du graphe) :

Si le doigt montre une graine (voire plusieurs) alors Monsieur Post effectue un virage sur sa droite (il descend vers la gauche du graphe) :

Dans la case montrée par le doigt, il y a deux opérations possibles :

  • incrémentation (semer une graine dans la case, devant le doigt). Ici la main en haut de la photo vient d’effectuer ce semis.

  • décrémentation (enlever une graine de la case). Ici la main en haut s’apprête à retirer une graine dans la case désignée par le doigt :

Addition

Le principe de l’algorithme est que si on incrémente la seconde case après avoir décrémenté la première case, on ne fait que transférer une graine depuis la première case jusqu’à la seconde. Ceci ne modifie pas la somme des contenus des deux cases et on calcule bien une addition. Ici on voit le début d’une décrémentation de la première case (à droite sur la photo ; début du calcul de 3+0) :

En fait l’algorithme revient à transférer les graines de la première case vers la seconde, ce qui a parfois été verbalisé.

Pour essayer de deviner quelle opération a été effectuée entre les deux nombres (de graines dans les deux premières cases) on peut faire des expériences et les consigner dans une table de l’opération (ici clairement identifiée comme une addition, à voir le signe opératoire utilisé) :

Pour expliquer que l’algorithme effectue bel et bien une addition, un élève a tenté de vérifier la présence d’un invariant (la somme des contenus des deux cases est constante) :

Soustraction

Tout d’abord il a été demandé aux élèves de regarder où est la différence entre les programmes d’addition et de soustraction, puis il leur a été demandé ce que fait ce dernier. C’est plus difficile que pour l’addition :

(le 5-2 en haut est la trace écrite d’un calcul de la fonction décrite plus bas)

On constate une erreur de calcul dans la dernière ligne : oubli d’une décrémentation ; erreur fréquente lorsqu’on essaye de mener les calculs avec des grands nombres :

Fonction

Pour la fonction donnée en exemple, il n’y a plus besoin de 3 colonnes comme dans les tables d’addition et de soustraction, mais seulement de deux colonnes (le nombre initial de graines dans la première colonne, le nombre final dans la seconde colonne). On obtient alors un tableau de valeurs de la fonction, mais la notion de colonnes n’est pas toujours naturelle (le tableau fait plus penser à un diagramme sagittal) :

Un élève a essayé de généraliser la machine en y ajoutant deux autres opérations :

Ne sachant pas par quoi il convenait de multiplier ou diviser, il s’est arrêté là, mais un pas a été fait vers une réinvention du langage de programmation FRACTRAN...

Claire Hénou

Les élèves de CE2, CM1 et CM2 de l’école de la Plaine-des-Palmistes ont eux aussi eu majoritairement droit à la version registres.

Les élèves ne pouvant (ou voulant) assister à l’activité ont été chargés de rédiger un reportage sur l’activité. En voici un :

Aujourd’hui ils sont en train de jouer à la machine de Post. On a des cases et des pions et dans chaque case il y a un signe. Alors on a des haricots. On les met dans des trous. Il y a une main...

Addition

Des problèmes de coordination entre membres de l’équipe se sont montrés. Ici, la graine est prélevée ailleurs que dans la case montrée par le doigt :

Les élèves ont eu du mal à choisir combien de graines ils voulaient mettre dans les cases, se contentant souvent de mettre toutes les graines disponibles dans une case, au détriment des autres cases (et de l’équipe voisine, avec laquelle ils étaient censés partager les graines) :

L’avantage d’une grande quantité de graines, c’est que les élèves ont le temps de l’apprentissage (et l’animateur a le temps de s’occuper des autres élèves). L’inconvénient essentiel est qu’ils font plus facilement des erreurs de calcul (oubli d’une incrémentation, semis d’une graine dans la mauvaise case...). Et une fois l’addition effectuée, pour connaître la somme, il faut compter toutes les graines ce qui prend du temps :

En effet, même en CM2, les élèves ne pensent pas forcément à regrouper les graines par quinaires :

L’usage d’une règle a facilité la préparation de la table d’addition (les élèves ne savaient pas encore que c’est une addition) :

Mais les élèves n’utilisaient pas tous une règle, et la notion de tableau à deux dimensions ne leur était pas toujours naturelle :

La trace écrite est intéressante parce qu’elle permet de voir les erreurs de comptage :

Pour cela, il est important que les élèves verbalisent entre eux et le conflit socio-cognitif n’a pas toujours été apparent dans cette école.

Soustraction

Ici des élèves effectuent la soustraction 4-3 :

Ici aussi :

Ici c’est la soustraction 3-2 qui est en cours de calcul :

Les élèves verbalisent plus sur cette activité que sur l’addition :

Une difficulté avec ce programme est qu’il calcule la différence entre la deuxième case et la première. C’est l’ordre inverse de celui dans lequel on énonce la soustraction. Donc dès que les élèves commencent à deviner qu’il s’agit d’une soustraction, des problèmes de latéralisation apparaissent :

Mais avec du soin on peut voir apparaître une table de soustraction correcte :

Fonction

Voici l’état de la machine de Post juste avant de calculer la moitié entière de 3 :

Et juste après avoir calculé la moitié entière de 10 (les élèves de cette école aiment les grands nombres !) :

Le mot « moitié » a été trouvé assez souvent pour décrire l’effet de cette fonction. Et les tableaux de valeurs sont plus connexes que dans l’école visitée la veille :

Mais pas toujours :

Ci-dessus on voit une erreur de calcul (incrémentation de trop), la moitié entière de 15 étant 7 et non 8.

Multiplication

Les élèves les plus rapides et passionnés sont allés jusqu’à vouloir effectuer une multiplication.

Mais pour corser la difficulté, ils ont décidé d’effectuer une rotation de l’équipe à chaque étape du calcul :

Une tentative de calcul parallèle (prefetch ou pipelining) a été faite :

Si en faisant en même temps, on va plus vite, on risque néanmoins de faire plus d’erreurs de calcul (semis dans la mauvaise case).

Le temps leur a manqué pour finir la multiplication (ils avaient choisi 7×2). D’autant qu’ils ont dû recommencer plusieurs fois à cause d’erreurs dans le calcul :

La présence d’une erreur est identifiable à l’aide d’un invariant : chaque fois que Monsieur Post retourne en haut du bloc du milieu, il y a autant de graines dans la case 3 et la case 4. Ci-dessus ce n’est pas le cas.


[1Il est d’ailleurs décédé des suites d’une électrothérapie en 1954.

[2Il suffit pour cela d’utiliser un tri topologique sur le graphe.

[3On remarque que la verbalisation fait plus souvent appel à l’expression « jusqu’à ce que » qu’à l’expression « tant que » (while de Python). Probablement parce qu’elle évite de charger la mémoire de travail avec une négation.

[4Quand le sage pointe l’index, l’enfant regarde le pouce (d’après Confucius).

[5Les machines à 2 registres ont déjà été expérimentées dans le premier degré par Yves Lafont, mais ici il n’y pas besoin de nommer les registres, puisque l’index pointe sur l’un d’entre eux.

[6Cela peut aller jusqu’à la découverte des nombres premiers !

[7Il s’agit d’ailleurs d’un langage de programmation appelé P’’ et datant des années 1960.

[8Le prédécesseur d’un nombre est celui qui vient juste avant lui dans la comptine. Comme le prédécesseur d’un nombre est plus petit que lui, on aboutit donc à une simplification du calcul. Par exemple en calcul mental si je dois calculer 35-17 je soustrais d’abord 10 aux deux opérandes : 25-7 donnera le même résultat. Puis je soustrais 5 aux opérandes parce que 20-2 donne le mếme résultat 18.

[9Contextualisé cela donne « j’avais 5 litchis, j’en ai mangé 3, combien m’en reste-t-il ? » Alors je peux imaginer que j’ai mangé les 3 litchis un par un et je suis passé successivement par les étapes

  • j’ai 5 litchis, je vais en manger 3 en tout,
  • après avoir mangé un litchi, il m’en reste 4 et je vais en manger encore 2, un par un,
  • après avoir mangé un nouveau litchi il m’en reste 3 et je vais encore en manger un,
  • alors il m’en reste 2 et j’en ai mangé 3 donc j’arrête.

Documents joints

Scalable Vector Graphics - 1.2 ko
PDF - 12 ko

Commentaires