### ----------------------------------------------------
### -- Arithmetic::PaperAndPencil
### -- Licenses: Artistic-2.0
### -- Authors: Jean Forget
### -- File: doc/Description-fr.md
### ----------------------------------------------------
### -- Chunk 2 of 5
 :

```
3 fois 8, 24, je pose 4 et je retiens 2
3 fois 2, 6, et 2, 8, je pose 8 et je ne retiens rien
3 fois 6, 18, je pose 18

   628
   333
  ----
  1884

Je recopie la ligne 1884

   628
   333
  ----
  1884
 1884.

Je recopie la ligne 1884

   628
   333
  ----
  1884
 1884.
1884..
```

L'autre sous-variante ne correspond pas à une pratique connue (tout au
moins  connue  par   moi),  elle  est  simplement   l'extension  à  la
multiplication du principe  de la division préparée.  Sur une première
feuille de papier, le calculateur établit la table de mutiplication de
628. Dans le  cas de la division,  il faut aller jusqu'à  « 9 × 628 »,
ici  on sait  que l'on  peut  s'arrêter à  « 4  × 628 ».  Puis sur  la
deuxième page, la  multiplication proprement dite ne  comporte que des
copies de lignes :

```
1 fois 628,  628
2 fois 628, 1256
3 fois 628, 1884
4 fois 628, 2512
Page suivante

   628
   234
  ----

Je recopie la ligne 2512

   628
   234
  ----
  2512

Je recopie la ligne 1884

   628
   234
  ----
  2512
 1884.

Je recopie la ligne 1256

   628
   234
  ----
  2512
 1884.
1256..
```

En fait, la  variante « préparée » est moins efficace  que la variante
« avec raccourcis ».  Supposons que  le multiplicateur soit  `747`. La
variante avec raccourcis calculera uniquement `4  × 628` et `7 × 628`,
tandis  que  la  variante  « préparée » calculera  tous  les  produits
partiels de `2 × 628` jusqu'à `7 × 628`.

Il manque  la dernière étape, l'addition  des produits intermédiaires.
Cette étape est identique pour  les trois variantes, c'est pourquoi je
ne m'appesantis pas dessus.

### Variante « par jalousie »

Pour ce paragraphe, j'ai repris  l'exemple de la multiplication de 628
par 234,  qui donne 146 952.  Le multiplicande  est sur fond  bleu, le
multiplicateur sur fond vert et le produit sur fond rose. Ces couleurs
sont là uniquement pour faciliter la compréhension des exemples. Elles
ne figurent pas dans les véritables multiplications.

Longtemps avant  de lire  _Histoire d'algorithmes_ (_HAL_)  et _Number
Words and  Number Symbols_  (_NWNS_), j'avais  eu vent  d'une variante
rectangulaire  de  la  multiplication.  Elle  avait  la  forme  de  la
multiplication A1 ci-dessous.

![Les différentes possibilités de la multiplication en jalousie](rect-mult.png)

Dans _NWNS_ à la page 442, l'auteur donne un exemple de multiplication
en chiffres indo-arabo-latins (0, 1, 2,  3, etc) conforme au modèle A2
et le même exemple en chiffres indo-arabes (٠ pour 0, ١ pour 1,  ٢ pour 2, ٣ pour  3, etc)
et conforme au  modèle B3, avec la volonté de  mettre tout le résultat
sur la dernière  ligne en tassant les chiffres. Le  nom de la variante
vient  de  l'italien,  _multiplicare  per gelosia_,  ce  qui  signifie
« multiplier à  la manière d'une  jalousie » (dans le sens  de « store
vénitien »).

Dans  _HAL_,  cela  commence  page 26  avec  une  multiplication  dans
laquelle le  multiplicateur a un  seul chiffre et utilisant  le modèle
A1. Cet exemple est tiré du
[_Līlāvatī_](https://sanskritlibrary.org/catalogsText/titus/class/bhasklil.html)
de Ganesa.  _HAL_ donne  plusieurs noms  pour cette  technique : « par
tableau », « par grillage », « par  filets » et « par jalousie ». J'ai
conservé ce  dernier, qui est identique  en anglais et qui  reprend le
terme italien donné par _NWNS_.

Ensuite, dans _HAL_, la page 28 présente une multiplication extraite de
[_Miftāh   al-hisāb_](https://gallica.bnf.fr/ark:/12148/btv1b10030739h.image)
du mathématicien  Al-Kāshī'. Dans  cette multiplication, les  côtés du
rectangle sont  inclinés de 45°  par rapport  à l'horizontale ou  à la
verticale. De plus, les nombres sont en base 60 (degrés, minutes, etc)
en caractères arabes et écrits de droite à gauche. Page 29, il y a une
multiplication B2 écrite de droite à gauche, le multiplicateur ayant un
seul chiffre comme à la page 26. Page 30, vous
trouvez une multiplication selon le  modèle A2 et en chiffres chinois,
venant de _Jiunzhang suanfa bilei  daquan_, un manuscrit de 1450. Page
32, il  y a une multiplication  A2 et une multiplication  B1 provenant
d'un traité anonyme publié en 1478  à Trévise et une multiplication B2
et une multiplication A2 provenant  d'un traité d'arithmétique de 1494
écrit par Luca Pacioli.

La  multiplication  A1 est  un  peu  encombrante,  mais on  peut  s'en
accommoder. La multiplication B1 peut
prêter à confusion, le multiplicateur étant collé à la dernière partie
du produit. Quant à la  multiplication B3, elle est presque illisible,
elle n'est pas  pédagogique (quelqu'un qui découvre  cette variante ne
peut pas deviner comment sont calculés les trois
derniers  chiffres)  et elle  est  incompatible  avec des  coordonnées
ligne-colonne de type `Int`. Par  conséquent, le module ne prévoit que
la  multiplication A2  et la  multiplication B2,  renommées simplement
« jalousie-A »  et « jalousie-B »,  ainsi  que  la multiplication  A1,
nommée  elle aussi  « jalousie-A »,  mais avec  en  plus un  paramètre
`:product<straight>`.  Ce paramètre  peut s'appliquer  également à  la
multiplication  « jalousie-B ». Je  signale  en outre  que les  lignes
internes horizontales  et verticales ne  sont pas tracées.  Cela donne
ceci :

```
   6 2 8               6 2 8             6 2 8          6 2 8
  --------            --------         --------       --------
 1|1/0/1/|            |1/0/1/|         |\4\8\2|       |\4\8\2|
  |/2/4/6|2           |/2/4/6|2       4|2\0\3\|2     4|2\0\3\|
 4|1/0/2/|           /|1/0/2/|         |\8\6\4|       |\8\6\4|
  |/8/6/4|3         / |/8/6/4|3       3|1\0\2\|5     3|1\0\2\|\
 6|2/0/3/|         / /|2/0/3/|         |\2\4\6|       |\2\4\6| \
  |/4/8/2|4       / / |/4/8/2|4       2|1\0\1\|9     2|1\0\1\|\ \
  --------       / /  --------         --------       -------- \ \
   9 5 2        1 4 6  9 5 2             1 4 6          1 4 6  9 5 2
```

Avec une petite  différence dans la mesure où je  ne sais pas utiliser
le  soulignement en  Markdown. Je  l'ai  remplacé ici  par de  simples
tirets. Dans le HTML généré, le  multiplicande et la dernière ligne du
rectangle utilisent la balise HTML de soulignement `<u>`. En revanche,
les traits verticaux et diagonaux  sont représentés par des caractères
« pipe », « slash » et « backslash ».

### Variante « bateau » (_boat_)

Cette variante est décrite dans _NWNS_ à la page 440. Elle ressemble à
la  variante  « boat » de  la  division,  c'est  pourquoi je  lui  ai
attribué le même nom.

Karl Menninger commence  par décrire le principe  indépendamment de la
disposition  réelle des  chiffres. Reprenons  la multiplication  234 ×
628. Le  premier produit intermédiaire  est le  produit 234 ×  6. Cela
donne :

```
  24
 18
12
------
   628
------
 234
```

Le  deuxième produit  intermédiaire  est  234 ×  2,  en réécrivant  le
multiplicateur  234   aligné  cette   fois  avec   le  chiffre   2  du
multiplicande. La multiplication devient alors :

```
   08
  06
 04
------
  24
 18
12
------
   628
------
 234
  234
```

Et le troisième produit intermédiaire est 234 × 8, après avoir écrit
le multiplicateur aligné avec le chiffre 8 du multiplicande :

```
    32
   24
  16
------
   08
  06
 04
------
  24
 18
12
------
   628
------
 234
  234
   234
```

Finalement, l'addition des produits intermédiaires

```
146952
------
    32
   24
  16
------
   08
  06
 04
------
  24
 18
12
------
   628
------
 234
  234
   234
```

Cela,  c'était le  principe. En  fait,  la multiplication  se fait  en
écrivant chaque chiffre dans la première case disponible dans la bonne
colonne. Et je supprime les zéros de tête. Je reprends les différentes
étapes, en mettant en regard le principe (après avoir enlevé les zéros
de tête) et le réel.

<pre>
  24
 18         12
12         1284
------     ------
   628        628
------     ------
 234        <strike>234</strike>
</pre>

Deuxième étape.

<pre>
    8
   6
  4
------
  24         4
 18         126
12         12848
------     ------
   628        <strike>6</strike>28
------     ------
 234        <strike>2344</strike>
  234        <strike>23</strike>
</pre>

Troisième étape.

<pre>
    32
   24
  16
------
    8
   6
  4
------       12
  24         463
 18         1264
12         128482
------     ------
   628        <strike>62</strike>8
------     ------
 234        <strike>23444</strike>
  234        <strike>233</strike>
   234        <strike>2</strike>
</pre>

Et l'addition des produits intermédiaires.

<pre>
  146952
  ------
      32
     24
    16
  ------
      8
     6
    4          69
  ------       <strike>12</strike>5
    24        4<strike>463</strike>
   18        1<strike>1264</strike>2
  12         <strike>128482</strike>
  ------     ------
     628        <strike>628</strike>
  ------     ------
   234        <strike>23444</strike>
    234        <strike>233</strike>
     234        <strike>2</strike>
</pre>

En fait, dans  la description de _NWNS_, les  produits élémentaires se
font de  droite à  gauche, alors que  je les ai  exécutés de  gauche à
droite ci-dessus. Voir la différence  ci-dessous, avec sur la première
ligne les  étapes successives de  droite à  gauche et sur  la deuxième
ligne les étapes successives de gauche à droite

<pre>
               8         28
    24        124       1124
  ------     ------     ------
     628        628        <strike>6</strike>28
  ------     ------     ------
   23<strike>4</strike>        2<strike>34</strike>        <strike>234</strike>

              1          12
  12         128        1284
  ------     ------     ------
     628        628        <strike>6</strike>28
  ------     ------     ------
   <strike>2</strike>34        <strike>23</strike>4        <strike>234</strike>
</pre>

Page 441,  _NWNS_ présente la  version médiévale de  l'opération, dans
laquelle  chaque produit  élémentaire  est  additionné aux  précédents
immédiatement après avoir été calculé, et non pas à la fin. Là encore,
le calcul  se fait  de droite à  gauche. Les  résultats intermédiaires
sont `4 × 6 = 24`, `30 × 6 + 24 = 204` et `200 × 6 + 204 = 1404`, puis
`4 × 2 + 14040 = 14048`, `30 × 2  + 14048 = 14108` et `200 × 2 + 14108
= 14508` et je vous laisse compléter pour le chiffre 8.

<pre>
                                                           5
                                                1          <strike>1</strike>
               0         40         40         4<strike>0</strike>0        4<strike>0</strike>0
    24        2<strike>2</strike>4       1<strike>22</strike>4       1<strike>22</strike>48      1<strike>224</strike>8      1<strike>224</strike>8
  ------     ------     ------     ------     ------     ------
     628        628        <strike>6</strike>28        <strike>6</strike>28        <strike>6</strike>28        <strike>62</strike>8
  ------     ------     ------     ------     ------     ------
   23<strike>4</strike>        2<strike>34</strike>        <strike>234</strike>        <strike>2344</strike>       <strike>2344</strike>       <strike>2344</strike>
                                     23         2<strike>3</strike>         <strike>23</strike>
</pre>

Là encore on pourrait  envisager d'effectuer les produits élémentaires
de gauche à droite. C'est d'ailleurs ce qui se faisait sur les abaques
et bouliers. On a donc `2  × 6 = 12`, `3 × 6 + 120 =  138` et `4 × 6 +
1380 = 1404`, puis `2  × 2 × 10 + 1404 = 1444`, `3 ×  2 + 1444 = 1450`
et `4 × 2 + 14500 = 14508`.

<pre>
                                               5         5
                         4          44        4<strike>4</strike>        4<strike>4</strike>
              3          <strike>3</strike>0         <strike>30</strike>        <strike>30</strike>0       <strike>30</strike>0
  12         1<strike>2</strike>8        1<strike>28</strike>4       1<strike>28</strike>4      1<strike>284</strike>      1<strike>284</strike>8
  ------     ------     ------     ------    ------    ------
     628        628        <strike>6</strike>28        <strike>6</strike>28       <strike>6</strike>28       <strike>62</strike>8
  ------     ------     ------     ------    ------    ------
   <strike>2</strike>34        <strike>23</strike>4        <strike>234</strike>        <strike>234</strike>4      <strike>234</strike>4      <strike>2344</strike>
                                     <strike>2</strike>3        <strike>23</strike>        <strike>23</strike>
</pre>

### Multiplication égyptienne ou russe

Des  camarades   de  classe   m'ont  appris  il   y  a   longtemps  la
multiplication égyptienne.  Plus tard,  d'autres sources  m'ont montré
que ce  n'était pas exactement  la multiplication égyptienne,  mais la
multiplication  russe,  également  nommée « multiplication  du  paysan
russe ».  La multiplication  égyptienne repose  sur le  même principe,
mais  avec  une disposition  différente.  Supposons  que l'on  veuille
multiplier 628  par 234. On place  les deux nombres côte  à côte (avec
suffisamment d'espace). Puis on divise par deux le nombre de gauche et
on multiplie par  deux le nombre de droite, jusqu'à obtenir le nombre 1.

```
234     628
117    1256
 58    2512
 29    5024
 14   10048
  7   20096
  3   40192
  1   80384
```

Ensuite, sur  chaque ligne, lorsque le  nombre de gauche est  pair, on
raie le nombre de droite.

<pre>
234     <strike>628</strike>
117    1256
 58    <strike>2512</strike>
 29    5024
 14   <strike>10048</strike>
  7   20096
  3   40192
  1   80384
</pre>

Et on fait la somme des nombres restants

<pre>
234     <strike>628</strike>
117    1256
 58    <strike>2512</strike>
 29    5024
 14   <strike>10048</strike>
  7   20096
  3   40192
  1   80384
     ------
     146952
</pre>

On peut considérer  que les divisions par deux  et les multiplications
par deux  soient suffisamment simples  pour ne  pas avoir à  les poser
ainsi :

```
234|2        628     117|2      1256
03 |---        2      17|--        2   etc
 14|117     ----       1|58     ----
  0|        1256                2512
```

Mais même avec cette simplification,  c'est long. Cela revient à faire
une multiplication en  binaire, même si vous travaillez  en décimal ou
en  hexadécimal. J'ai  presque  laissé tomber,  mais finalement,  j'ai
décidé de l'inclure dans le module.

Une autre difficulté.  La méthode repose sur le fait  que l'on dispose
d'un critère simple  pour déterminer si un nombre est  pair ou impair.
En base 10, c'est facile, il suffit  de jeter un coup d'œil au chiffre
des unités. Si le chiffre est pair,  le nombre est pair. Si le chiffre
est  impair,  le  nombre  est  impair. Ce  critère  est  valable  pour
n'importe quelle base de numération paire,  mais pas pour les bases de
numération impaires. Il faut trouver autre chose.

En base 10, le critère de divisibilité par 3 ou par 9 consiste à faire
la somme des  chiffres. Si le nombre obtenu se  constitue de plusieurs
chiffres, on  itère le processus.  Lorsqu'il ne reste plus  qu'un seul
chiffre, on peut conclure.  Si c'est 3, 6 ou 9,  le nombre initial est
divisible par  3. Si c'est 9,  le nombre initial est  divisible par 9.
C'est le même principe  en base 9 pour la divisibilité par  2, 4 et 8.
C'est le même principe  en base 11 pour la divisibilité par  2, 5 et A
et c'est le même principe en base 13 pour la divisibilité par 2, 3, 4,
6 et C.

Prenons  par exemple,  le nombre  45269 en  base 11.  La somme  de ses
chiffres est 26  en base 10 ou  24 en base 11.  Une deuxième itération
donne la  somme 2+4 = 6,  qui est un  chiffre pair. 45269 est  donc un
nombre pair. Heureusement, d'ailleurs, car  il s'agit de 65536 en base
10. Mais 45269 n'est pas divisible par 5 ni par A (10 en base 10).

De même, pour 45268, la somme des  chiffres est 25 en base 10, soit 23
en base 11 pour la première itération, et 5 pour la seconde itération.
Donc 45268 (soit  65535 en base 1) est un  nombre impair divisible par
5.

Si la  base de numération  _b_ est  impaire, 2 est  automatiquement un
diviseur de _b_-1. Donc la méthode de la somme des chiffres fonctionne
pour toutes les bases de numération impaires.

Dans le cas de la divisibilité  par 2, le critère peut être simplifié.
Dans le nombre,  on compte les chiffres impairs et  on ne s'occupe pas
des chiffres pairs.  Il n'y a même plus besoin  de les additionner, il
suffit de les compter.  Si le compte est pair, le  nombre est pair. Si
le compte  est impair,  le nombre est  impair. En  reprenant l'exemple
ci-dessus, le nombre 45269 en  base 11 contient deux chiffres impairs,
5  et 9.  Il est  donc pair.  Quand  au nombre  45268 en  base 11,  il
contient un seul chiffre impair, il est donc impair.

Division
--------

### Division standard

Lorsque  j'ai  appris  la  division standard,  le  calcul  des  restes
intermédiaires   se  faisait   avec   une   opération  combinant   une
multiplication et une soustraction : multiplication du diviseur par le
chiffre  du  quotient et  soustraction  de  ce résultat  au  dividende
partiel. Longtemps  après, j'ai entendu dire  que cette multiplication
et  cette  soustraction étaient  séparées.  Je  me suis  renseigné  en
consultant  des  tutoriels pour  savoir  quelle  était précisément  la
méthode  utilisée :  prépare-t-on  la  division en  calculant  les  10
premiers   multiples   du   diviseur,  ou   bien   effectue-t-on   les
multiplications au fil de l'eau selon les besoins ?

Dans ces [deux](https://www.youtube.com/watch?v=BC_QZjyEdpw)
[tutoriels](https://www.youtube.com/watch?v=eIo9tZ6T5CY),
les auteurs  supposent que l'élève  connaît par cœur les  multiples du
diviseur (la table des 52 dans un  cas et la table des 35 dans l'autre
cas).  Cela me  semble irréaliste.  Un point  annexe, pour  le premier
tutoriel : les nombreuses pauses entre les phrases et le fait que l'on
ne tienne  pas compte du cas  particulier du zéro m'incitent  à penser
que cette vidéo  a été générée par un logiciel  analogue au mien (avec
un format de sortie MPEG ou MP4 au lieu de HTML). Ce n'est pas en soit
un défaut.

Dans ce [tutoriel](https://www.youtube.com/watch?v=IQFKMnvwFPM),
il est clairement  dit que l'on commence par calculer  la table des 23
ou des 16  (ou plus généralement la table des  multiples du diviseur).
Également,  ce tutoriel  précise qu'il  n'y  a pas  une seule  méthode
orthodoxe de division, il y en  a plusieurs, c'est à chacun de choisir
une méthode et de s'exercer à son utilisation.

Ce [tutoriel](https://www.youtube.com/watch?v=bn-IZD-jgl8),
est lui aussi  intéressant. On y retrouve  le « harponnage » (présenté
plus en  détail ci-dessous).  Ce harponnage est  fait avec  des traits
courbes et il  est appelé « chapeau » ou « parapluie »  alors que j'ai
appris  à tracer  ce harponnage  avec des  traits droits  et je  ne me
souviens  pas du  nom  que j'ai  appris à  l'origine.  Un autre  point
intéressant  dans  ce  tutoriel   est  le  mécanisme  essai-et-erreur,
consistant à  calculer un premier  chiffre possible avec  une division
1-par-1 ou 2-par-1 et à le  décrémenter en boucle tant que l'on trouve
une erreur. Un dernier point  intéressant est la vérification à chaque
étape. Chaque  fois que l'on obtient  un chiffre pour le  quotient, on
compare le reste intermédiaire au  diviseur. Si le reste est inférieur
au  diviseur,  il n'y  a  _a  priori_ pas  de  problème.  Si le  reste
intermédiaire  est  supérieur  ou  égal  au diviseur,  alors  il  y  a
assurément  un  problème   de  calcul.  J'ai  appris   à  faire  cette
vérification, mais j'ai choisi de ne pas l'implémenter dans le module.

Et finalement un [tutoriel](https://www.youtube.com/watch?v=pbwoawMMEhU)
qui enseigne  la division  telle que  je l'ai  apprise ou  presque, en
combinant  la  multiplication et  la  soustraction.  Il  y a  même  le
harponnage, avec, comme  ci-dessus, des traits courbes  alors que j'ai
appris  à  le  faire  avec  des traits  droits.  Une autre  différence
marquante est  que les retenues  sont écrites puis barrées,  alors que
j'ai appris à les conserver dans ma mémoire.

La conclusion de tout cela est que je ne dois pas décider par moi-même
quelle est la  solution othodoxe, mais je dois  fournir des paramètres
permettant  à  l'utilisateur de  choisir  quelle  variante il  préfère
générer.

### « Harponnage » dans la division standard

Un point qui mérite peut-être  d'être signalé, c'est le « harponnage »
de la  première ligne. Notons  en préalable  qu'il ne s'agit  pas d'un
terme officiel. C'est un terme que j'ai pioché lorsque j'ai commencé à
écrire  le module  et  sa  documentation. Dans  un  tutoriel que  j'ai
consulté ultérieurement, c'était  appelé « chapeau » ou « parapluie ».
Je ne  me souviens plus s'il  y avait un nom  particulier lorsque j'ai
appris les divisions dans les années 1960-1970.

On ne  voit pas  le harponnage  dans l'exemple du  2 décembre  1970 au
début de cette  documentation, mais on peut le voir  dans les exemples
ci-dessous.

![Exemples de divisions avec harponnage](division-hooks.png)

Tout  d'abord, une  précision sur  la  division du  centre, « 27000  ÷
250 ». Il  y a  une simplification  par 10,  pour obtenir  la division
« 2700  ÷  25 », plus  rapide  à  calculer.  C'est  pour cela  que  le
harponnage se produit sur la deuxième ligne dans ce cas.

Le harponnage  simple sert  à repérer l'endroit  du dividende  où l'on
soustraira le  premier chiffre du premier  reste intermédiaire. Ainsi,
lorsque  l'on divise  270 par  25  ou par  18, le  premier chiffre  du
premier reste sera sous le « 7 ».

Le  harponnage  double  a la  même  utilité  et  en  plus, il  sert  à
déterminer la portion du dividende qui servira à effectuer la division
mentale avec le diviseur réduit à un seul chiffre. Ainsi, pour diviser
2700 par  25, la  première évaluation  se fera  avec « 2  ÷ 2 »  et la
soustraction du  reste se fera sous  le « 7 ». Pour diviser  11340 par
108, la première évaluation se fera  avec « 1 ÷ 1 » et la soustraction
du premier reste se fera sous le  « 3 ». Et pour diviser 2700 par 375,
la  première évaluation  se fera  avec un  dividende à  deux chiffres,
c'est-à-dire « 27  ÷ 3 » et la  soustraction du premier reste  se fera
sous le deuxième « 0 ».

On peut  voir que  le double harponnage  du dividende  s'accomp