Math'O Man : le Blog des Maths

Accélerer le temps de calcul


Revisitons la multiplication !


Vous croyez déjà tout savoir sur la multiplication ? Vous allez être surpris ! Voici trois méthodes pour multiplier deux nombres entiers.
  • Multiplication posée du bon élève.
  • Multiplication posée de deux nombres, comment calculer le produit de deux nombres


     
  • Méthode du cancre.
  •  

    Comment multiplier deux nombres, méthode des paresseux

    Mode d'emploi : A gauche on prend toujours la moitié en arrondissant, s'il le faut, vers le bas ; à droite on prend toujours le double. Puis on supprime les lignes (en noir) dont le nombre gauche est pair et à droite on additionne les lignes restantes (en rouge).
     
     
  • Méthode de Karatsuba (publiée en 1962).
  • On sépare chaque facteur en deux parties
    Multiplication selon Karatsuba
    puis on effectue les multiplications suivantes :

    Algorithme pour la multiplication de Karatsuba

    Le résultat est ensuite
    Trouver le produit de deux nombres entiers
Remarque
L'idée de tout ça c'est de se ramener à des opérations élémentaires (opérations entre deux nombres entre 0 et 9). Sur un ordinateur le choix d'un bon algorithme peut accélerer considérablement le temps de calcul — quelques jours pour des facteurs constitués de plusieurs milliards de chiffres ! Le calcul avec de très grands nombres n'est pas une question purement théorique mais a beaucoup d'applications, notamment en théorie de cryptage.
 
Questions
  1. Pourquoi la méthode du cancre fonctionne-t-elle ? Les deux facteurs jouent des rôles différents; lequel choisir pour quel rôle ?
  2. Utilisez la méthode de Karatsuba pour calculer 3116 x 1014. Pourquoi cette méthode fonctionne-t-elle ?
  3. Avec la méthode classique (multiplication posée du bon élève), combien de multiplications élémentaires sont nécessaires pour calculer le produit de deux nombres à n chiffres ?
  4. En réitérant la méthode de Karatsuba on obtient un algorithme. Combien de multiplications élémentaires sont alors nécessaires pour calculer le produit de deux nombres à n chiffres ? Comparer avec l'algorithme classique.
Réponses
Cliquez pour afficher les solutions en format pdf.

Et pour finir une vidéo présentant une méthode qui produit une belle calligraphie — elle s'appelle donc la multiplication chinoise !

L'idée de base de la multiplications chinoise est le fait suivant : un ensemble de n droites parallèles coupe un autre ensemble de m droites parallèles en nxm points.

Pourquoi ne pas lire aussi :


Une calculatrice en ligne

Il peut arriver en plein dimanche, quand tous les magasins sont fermés, qu'on doit effectuer un calcul avec la calculatrice, mais les piles de celle-ci sont vides. Pas de panique, il existe une

qui permet de faire les calculs de base et avec des fonctions trigonométriques, exponentielles et logarithmes. (Mais elle ne possède pas la possibilité de dessiner des graphes.)

Avertissement :
L'abus de calculatrice nuit gravement aux cerveaux des jeunes qui
ne veulent pas apprendre leur table de multiplication !



LES ZROFS - Le calcul mental

Une statistique sur les acquis d'élèves en terminale

En complément de mon billet sur une génération dyslexique en maths voici quelques statistiques. Une analyse avec des idées sur ce qu'on peut encore sauver et sur les conséquences dans l'enseignement supérieur sera donné dans un billet ultérieur. En attendant j'invite mes lecteurs à lire l'article concernant la baisse de niveau sur le blog Mathéphysique.

L'échantillon est constitué des 54 élèves de deux classes de terminale ES d'un même lycée en 2007/2008. Les questions portent sur le calcul élémentaire et ont été posées dans un devoir sur table. L'utilisation de la calculatrice était permise.

Le taux de réussite au bac de ces deux classes était de 55% environ. Si on extrapole avec le taux de réussite au premier exercice ci-dessous, cela signifie qu'au moins 40% des 54 candidats ont obtenu le bac sans savoir interpréter correctement un prix tel qu'il est affiché dans un supermarché.

En publiant ces exemples anonymes, je ne veux pas me moquer des élèves. Nous avons tous fait des erreurs lorsque nous étions élèves, et continuons à en faire — nobody is perfect! Le problème réside dans la fréquence des erreurs (faire des erreurs doit rester l'exception et ne pas devenir la règle) et le type des erreurs (ce ne sont pas de simples erreurs de concentration).

CALCUL D'UN PRIX — 8 élèves ont réussi, taux de réussite: 15%

Calculer un prix

Faux calcul de prix (erroné)

Calculer un prix  (faux)

Calcul de prix (faux)

CALCUL DE POURCENTAGE — 24 élèves ont réussi, taux de réussite: 44%

Calculer un pourcentage

Faux calcul de pourcentage

calculer un pourcentage (faux)

Calcul d'un pourcentage (faux)

TROUVER UNE EQUATION DE DROITE — 11 élèves ont réussi, taux de réussite: 20%

déterminer l'équation d'une droite

déterminer l'équation d'une droite

trouver une équation de droite


EQUATION DE PREMIER DEGRE — 5 élèves ont réussi, taux de réussite: 9%

Résoudre correctement une équation de premier degré

Résoudre une équation de premier degré (faux)

Résoudre une équation de premier degré (faux)


SIMPLIFIER UNE FRACTION — 2 élèves ont réussi, taux de réussite: négligeable

Calculer avec une fraction double correctement

Comment ne pas calculer avec une fraction double

Calculer avec une fraction double  (faux)


Autres exemples

Remarque:
Les questions étaient regroupées comme premier exercice d'un DST. La barême était indiqué et assurait 1 point par question (sur 20 points dans le devoir complet). Dans "taux de réussite" on a compté les bonnes réponses; l'absence de réponse comptait comme une fausse réponse.

Casse-tête pour les fêtes

Noël est le temps des casse-noisettes, non des casse-têtes pour mes amis les matheux. Voici une égalité :

\sum_{k=0}^n\left\(\begin{array}{c}2n+1\\2k+1\end{array}\right\)(2k+1)\:=\:2^{2n-1}(2n+1).

Le but est de démontrer qu'elle est vraie pour tout entier n strictement positif. Comme d'habitude en maths c'est la dévise short is beautiful, c'est-à-dire il faut trouver une solution courte et élégante, sans avoir beaucoup de calcul à faire. On pourra s'inspirer de l'image d'un père noël ayant des cadeaux à distribuer dans des chaussettes...

Lundi matin: petite leçon amusante de calcul

Pour nous reveiller commençons la semaine par une petite révision de calcul! Il s'agit d'un cours amusant et pas trop difficile. Il ne faut pas avoir la bosse de maths pour le réussir, juste un peu d'imagination. Tout le monde peut y participer, car on peut le faire avec le programme de mathématiques que nous avons tous appris à l'école. Voici donc ce petit cours de maths agrémenté de quelques exercices:

Leçon et questions: Maths pour les génies (cliquez)

C'est un document powerpoint — après l'avoir ouvert utilisez les flèches de votre clavier pour avancer.

Les mystères du cerveau : les mathémagiciens

Je suis mathématicien et je sais calculer, presque toujours correctement mais pas brillamment. Les génies en calcul mental m'ont toujours impressionné. A l'école, quand j'avais douze ans, j'avais un ami qui calculait plus vite (et plus juste) que notre prof ; par exemple il trouvait très rapidement si un grand nombre (plus grand qu'un milliard) était divisible par 7 ou non. Je le trouvais toujours très intelligent ; il n'est pas devenu mathématicien mais médecin.

Le travail d'un mathématicien-chercheur est de raisonner, le calcul n'est qu'un outil pour arriver à ses fins. Mais quelques s'intéressent aussi au calcul mental et s'y perfectionnent. Par exemple l'américain Arthur Benjamin du Harvey Mudd College en Californie. Voici une belle vidéo de sa prestation :

L'allemand Rüdiger Gamm joue dans un autre registre . Il n'est pas mathématicien (n'a pas fait de bac) et ne semble pas s'intéresser au raisonnements mais uniquement aux calculs. Selon les chercheurs ses compétences étonnantes ne relèvent pas seulement du calcul en temps réel mais de la mémorisation d'une immense banque de données. La manière dont il stocke ces données et comment il y accède si rapidement est un secret que lui-même ne se pas vraiment expliquer. Dans la vidéo ci-dessus il donne la première centaine des chiffres de l'écriture décimale de la fraction 62/167. Après un temps de recherche silencieux il se lance dans la récitation des chiffres, et c'est plus rapide que je ne pourrais les lire...

A chacun son cerveau. Celui des chimpanzés réserve également des surpises. Des primatologues ont trouvé qu'ils sont capables des mémoriser la localisation de chiffres affichés seulement pendant une fraction de seconde à l'écran d'un ordinateur ; ensuite ils les touchent dans l'ordre croissant. Essayez de faire aussi vite qu'eux dans cette vidéo !

Probablement ces sont des capacités que nos ancêtres avaient également lorsqu'ils cherchaient des fruits sur des arbres, en passant par une liane. Or aujourd'hui homo sapiens n'en a plus besoin, donc le gène correspondant s'est perdu chez nous au fil de l'évolution.

Une génération dyslexique en maths

Je me rappelle qu'une fois, en plein concert à la Philharmonie de Munich, le pianiste Alfred Brendel interrompit son jeu car le public qui toussait. Il se retournait vers la salle et disait : "Die Grundlage der Musik ist die Stille." Traduction : la base de la musique c'est le silence.

J'aimerais adapter cette phrase aux mathématiques : "La base des mathématiques c'est le calcul". Et je pense au calcul le plus simple, les opérations élémentaires qui devraient être maîtrisées par tous les citoyens d'un pays moderne (à l'exception de quelques rares personnes souffrant d'une sorte de dyslexie des nombres) : addition, soustraction, multiplication et division. Si les élèves ne savent plus calculer, le professeur devrait arrêter son cours, comme Alfred Brendel, et le reprendre plus tard...

Autrefois, grâce à la scolarisation, le savoir progressait d'une génération à l'autre
Dans cet extrait de film des années cinquante un représentant essaie en vain de dissuader Ma and Pa Kettle que 25 divisé par 5 donne 14.

Aujourd'hui c'est le récul: beaucoup de bachéliers ne savent plus calculer
Lorsque j'enseignais en deux classes de terminale ES dans un lycée en région parisienne, j'étais confronté à un problème majeur : le programme du baccalauréat porte sur les dérivées et les intégrales, les logarithmes et les exponentielles. Or la majorité de ces élèves en terminale ne connaissait pas les règles élémentaires de calcul, beaucoup confondaient l'addition avec la multiplication et la soustraction avec la division. Voici un florilège extraits de quelques copies de bacs blancs :

Confusion entre division et soustraction

Confusion entre multiplication et division

Grande confusion des opérations de base

Non-compréhension d'une égalité                Difficultés avec les fractions

Tout ça pourrait faire rire si ce n'étaient que quelques cas isolés. Mais ce type d'erreurs n'est plus exceptionnel, il est devenu la règle (voir mes statistiques). Il semble qu'aujourd'hui il est impossible de demander à un élève en terminale d'effectuer un calcul élémentaire sans faire d'erreur. Le nombre d'élèves acceptés en première (même en section S) et qui ne connaissent pas la table de multiplication est légion.

Le roi est nu
Certains diront que tout cela n'a pas d'importance car les mathématiques n'interviennent que peu dans notre vie quotidienne et que d'autres facilités sont plus déterminantes pour bien réussir dans la vie. Peut-être. Je serais le dernier à exiger que tous mes co-citoyens connaissent les logarithmes et les intégrales. Mais ce qui me gêne beaucoup c'est que le calcul élémentaire n'est pas acquis et qu'en même temps on habitue les élèves à utiliser un langage de bois mathématique qui prétend qu'il y a une compréhension des objets impliqués tandis qu'au fond rien n'est compris. Sous un splendide manteau de termes savants (intégrales, limites, théorème des valeurs intermédiaires, etc.), le roi est nu ! C'est digne des Impostures intellectuelles à la Sokal-Bricmont...
Evidemment il est impossible, en dernière année de lycée, de rattraper avec des cours de soutien toutes ces bases manquées. Soit on fait les choses correctement dès le départ, soit on ne les fait pas, c'est-à-dire on élimine des programmes scolaires le calcul supérieur avec les fonctions.

Ci-dessous un dernier exemple qui me rend heureux et triste à la fois — triste car cet élève ne maîtrise pas du tout le programme du collège (règles de calcul avec les fractions), et heureux car il a appris ce que je lui enseignais en terminale (règles de dérivation). Mais en fin de compte, quelle est la valeur de ses connaissances en calcul différentiel s'il ne sait pas simplifier correctement la fraction qu'il obtient ?

La question posée était de dériver la fonction f(x)=x-\ln(4x-2). Voici sa réponse :

Simplification d'une fraction

Calcul des fractions sur une partition de musique

Les professeurs de maths au collège embêtent les élèves avec des questions comme

Quel nombre est plus grand, 3/4 ou 7/9 ?

Avant l'arrivée des logiciels d'impression musicale, les imprimeurs de partitions de musique devaient bien maîtriser ce genre de calcul de fractions pour faire les bons alignements verticaux.

partition

Par exemple dans la première mesure de l'extrait ci-dessus, où les violons sont en 3/4 et les autres en 4/4, il fallait bien réfléchir si le la indiqué en rouge doit être placé avant le indiqué en vert. En fait, le la est attaqué avant le car 1/5 est un peu plus grand que 3/16.

Clairement il s'agit là de questions assez théoriques parce que le tempo de cette musique est rapide et qu'on n'entend pas ces détails dans le tutti de l'orchestre (un aperçu de le page entière de cette partition est ici.) Et les violonistes ne se demandent probablement pas pourquoi ils doivent jouer leurs 5-uplets légèrement plus vite que les triplets qui se trouvent dans les mesures suivantes !

Question : qui a composé cette musique ?
Indication : il s'agit d'un ballet écrit pour les fameux Ballets Russes de Diaghilev à Paris.

Réussir son bac

Pour bien réussir un concours le mieux c'est de le préparer avec des annales. C'est aussi vrai pour le premier concours que vous passerez dans votre vie : le baccalauréat.

Le style de sujets de bac de mathématiques ne change pas soudainement d'une année à l'autre. Mais il peut être différent des exercices que vous trouvez dans votre manuel scolaire ou que votre professeur vous pose en classe. Si vous maîtrisez bien les sujets des cinq dernières années, je crois le jour du bac vous n'aurez pas de mauvaises surprises. C'est pourquoi je vous conseille de vous préparer avec des sujets corrigés de bac en mathématiques.

Il est important aussi d'apprendre à gérer son temps. Si par exemple votre épreuve de bac dure trois heures, trouvez un créneau libre de trois heures non-interrompu pour vous enfermer dans votre chambre en éteignant le téléphone, l'ordinateur, la télé et concentrez vous sur le sujet. Prenez ensuite une bonne pause afin de comparer vos solutions avec le corrigé. Après une semaine refaites le même sujet pour contrôler si vous avez retenu les méthodes du corrigé...

En général, je vous conseille une règle valable pour tous les apprentissages (musique, sport, etc.) : travaillez d'abord la justesse, puis la rapidité, et pas dans le sens inverse ! Au départ votre but n'est pas de répondre à toutes les questions mais de donner des réponses complètes et justes aux exercices que vous maîtrisez ; plus tard la rapidité viendra de façon automatique. Un correcteur préfère une copie qui traite seulement la moitié des questions mais de manière correcte à une copie qui traite toutes les questions avec la moitié des réponses fausses !

Un dernier conseil: les sujets de bac nécessitent jamais de très longs calculs. Si vous avez besoin d'une page de calcul pour prouver une question, votre solution est peut-être juste mais elle est certainement trop longue. Donc même si vous savez faire un exercice, prenez quand même le temps de survoler le corrigé afin de vous impregner d'une rédaction concise qui dégage les points importants. Cela tient en particulier pour les candidats qui aspirent à la mention au bac!

Question autour d'une singularité essentielle et le théorème de Picard

A la fin de mon article Hyperelliptic action integral, Annales de l'institut Fourier 49(1), p. 303–331, j'ose la conjecture suivante:

Une conjecture autour d'une singularité.
Soit D le disque unité du plan complexe et U_1,U_2,\,\dots\,,U_n un recouvrement du disque épointé D*= D\{0} par des ouverts. Sur chaque ouvert U_j soit f_j une fonction holomorphe injective telle que df_j=df_k sur toutes les intersections U_j\cap U_k. Alors ces différentielles se recollent en une 1-forme méromorphe sur D.

Il est clair que la 1-forme est holomorphe sur D*. Si son résidu est nul, alors la conjecture découle facilement du grand théorème de Picard, cité ci-dessous. Mais si le résidu est non-nul, je ne sais pas la démontrer.
Toute preuve ou tout contre-exemple sont les bienvenus — à vrai dire les contre-exemples un peu moins car je crois (guidé par mon intuition géométrique des surfaces de Riemann) que cette conjecture est vraie...

En 1880 Charles Emile Picard (1856-1941) prouva le théorème suivant.

Grand théorème de Picard.
Une fonction holomorphe ayant une singularité essentielle prend, sur tout voisinage de cette singularité, tout nombre complexe une infinité de fois comme valeur, sauf peut-être un.

Exemple typique pour le théorème de Picard

La fonction définie par
\:f(z)=e^{1/z}=\sum_{k=0}^{\infty}\:\frac1{k!z^k}\;

est holomorphe sur \mathbb{C}\backslash0 et possède une singularité essentielle en 0. L'image de f épargne-t-il une valeur (Picard dit "sauf peut-être un")? Oui, et comme f(z)\neq0 pour tout z\in\mathbb{C}\backslash0, cette valeur épargnée est forcément zéro; le théorème affirme alors que pour tout nombre complexe w\neq0 et pour tout \epsilon>0 il existe une infinité de nombres complexes z tels que 0<|z|<\epsilon et f(z)=w.

Calcul direct avec cet exemple

Dans l'exemple ci-dessus on peut se debrouiller par un calcul direct sans invoquer le théorème de Picard. En effet, fixons un nombre complexe non-nul w et un \epsilon>0. Il existe alors deux réels r>0 et \varphi tels que
w=re^{i\varphi}.

Pour tout n \in \mathbb{N} posons u_n=\ln r+i(\varphi+2\pi n) et z_n=1/{u_n}. Alors \lim_{n\to\infty}z_n=0.
Ainsi on a on a
f(z_n)=e^{u_n}=e^{\ln r+i(\varphi+2\pi n)}=re^{i \varphi}=w.

Par conséquence, en prenant n assez grand, on voit que w possède une infinité d'antécédents dans le disque épointé 0<\,|z|\,<\epsilon.

Un exemple moins évident

Notons P l'ensemble des nombres premiers et considérons la fonction définie par
 
g(z)=\sum_{p \in P}^{}\frac{1}{p!z^p}.

On peut appliquer le théorème de Picard, car il y a une singularité essentielle à l'origine.
En revanche, il me semble impossible de faire un calcul explicite...

Sur les priorités dans l'enseignement en terminale S

Aujourd'hui est paru dans le journal le Monde un article sur la suppression de l'enseignement obligatoire d'Histoire-Géographie en terminale S. Les commentaires se chauffent beaucoup :

Jeunes amis de S & futurs incultes bonjour! Si vous avez la malchance d'être bons en maths, vous n'aurez plus le droit d'accéder à la culture. Etc., etc....

Je ne comprends pas cette excitation. Je suis tout à fait d'accord avec cette réforme. Je pense qu'à partir d'un certain point il faut commencer à se spécialiser et si c'est en terminale, donc juste deux ans après le moule unique du collège unique, ce n'est vraiment pas trop tôt (*). Cela ne signifie pas qu'on devient ignorant en histoire. Lorsque je passais mon bac de maths (en Allemagne) le système me permettait de ne plus prendre de cours d'histoire-géo ni de français pendant la première et la terminale — et pourtant aujourd'hui je parle le français et je ne crois pas d'être inculte. A partir d'un certain âge il faut laisser les personnes choisir leurs priorités et leur faire confiance que, le moment venu, ils vont chercher à se cultiver dans d'autres domaines à leur propre initiative.

J'irai même plus loin : il faudrait supprimer les cours de langue obligatoires en classes préparatoires scientifiques ou à l'université pour leur laisser le temps de bien assimiler leurs cours en sciences. Evidemment un scientifique d'aujourd'hui doit maîtriser au moins l'anglais et une autre langue etrangère, mais encore une fois : je pense qu'il aurait dû l'apprendre avant le bac pour ensuite compléter ses connaissances, à son propre gré, par un vocabulaire scientifique. (**) Le fait qu'il y a encore des cours d'anglais en CPGE scientifiques ou à la fac n'est, pour moi, qu'une preuve que le système d'enseignement des langues au collège et au lycée a échoué et n'a pas réussi à donner des bases suffisantes pour que l'étudiant puisse se perfectionner de manière autonome.

De manière générale, je suis contre le zapping qu'on fait dans l'enseignement actuel : trop de matières et trop de zapping à l'intérieur du programme d'une matière. L'idée de vouloir faire un peu de tout, et tout en même temps, est très déstabilisant pour les élèves — et en fin du compte peu est acquis. A mon avis le mieux est ce qu'on appelle un T-shaped knowledge, c'est-à-dire on commence avec une base solide, puis on rentre à fond dans une matière. Cela permet à l'élève de gagner de la confiance en soi, et ensuite il peut transposer les méthodes acquises dans un deuxième domaine pour construire son

\prod-shaped knowledge !

(*) Il faut aussi rappeler le fait qu'aujourd'hui un trop grand nombre de bacheliers S arrivent en études supérieures sans savoir manipuler correctement une équation avec des fractions ou des racines carrées (programme du collège). On peut en voir des exemples ici. J'enseigne aujourd'hui dans le supérieur et il est flagrant de voir combien d'étudiants en première année ont des lacunes graves en raisonnement et en calcul simple. Je ne peux que saluer une réforme du lycée qui leur laisse plus de temps pour réviser ces notions qu'ils ont zappées dans un système de collège unique qui attend sa réforme à lui.

(**) Il serait souhaitable en CPGE qu'on fasse de temps en temps cours ou TD de maths en anglais. Quant à moi, j'essaie au moins de leur donner des exercices posés et corrigés en anglais ou allemand, comme par exemple ici.