02 juillet 2007

Devenir H4ck3rz, pour les nuls

Internet, ce n'est pas que des casinos maltais ou des vidéos de chutes en skate, c'est aussi le commerce en ligne : transactions de fonds, numéros de cartes bleues et date d'expiration associée, tout ça circule tranquillement sur le réseau. De manière codée, certes, mais avec des clefs de codages bien connues de tous puisqu'elles sont publiques... Aujourd'hui, apprenons ensemble à décoder les chiffrements renfermant le code de la carte bleue de Mr Dupont qui vient de s'acheter un chouette vélo d'appartement.


Remontons à l'origine de la cryptographie, avec le code de César (comme son nom l'indique, inventé par Jules César). Le principe de ce code est tout simple : on décide d'une clé k, et on fait correspondre à chaque lettre du message la lettre de l'alphabet décalée de k lettres. Si k=3, on a A->D, B->E etc.

Prenons cet exemple : "VBVYJPYJPYJP KJPNNZ G'VIVIVN ZO HJPYN G'XVAZ".
Donné ainsi, déchiffrer le code peut nécessiter plusieurs minutes.
Si je précise qu'il s'agit d'un code de César, il n'y aura plus que 25 clés à tester.

Si j'ajoute que la clé est 8, le code sera cassé en quelques secondes.


Le tour de force des cryptages qui ont lieu sur internet, c'est que tout le monde sait que le codage utilisé est le codage RSA (Du nom de leur auteurs, Ron Rivest, Adi Shamir et Len Adleman), et que la paire de clés de codage est (relativement) publique ! (Pour plus de sécurité, le codage RSA est associé à l'OAEP, mais je ne vais pas en parler dans cet article)

-----

En plus, le codage RSA est plutôt simple à mettre en œuvre pour n'importe qui connaissant l'arithmétique (nombres premiers, nombres premiers entre eux, divisions euclidiennes et congruences) ! Voyons comment cela fonctionne :

Tout d'abord, Arnaud, maître en chef de la cryptographie, choisit deux nombres p et q tous les deux premiers. Il calcule ensuite le produit n=pq. n est alors la première clé de cryptage, qu'il mettra à disposition de tout le monde sur internet. Il choisit ensuite un autre nombre e, premier avec (p-1)(q-1), qu'il mettra à disposition de tout le monde sur internet.

Maintenant, Bernard a une terrible envie de passer un message secret à Arnaud, mais il sait que son ennemi juré, Christophe, guette. Ce message secret, c'est M, un entier positif plus petit que n.
Pour le coder, il suffit simplement de calculer le reste de la division euclidienne de Me par n :

RSA1

Et le tour est joué, le message est codé ! Bernard n'a plus qu'à l'envoyer à Arnaud qui pourra le décoder.
Avant tout ça, Arnaud a aussi calculé l'entier d tel que RSA2.

Pour décoder C, il y a juste à calculer Cd modulo n. Le résultat sera alors M.

Le plus difficile pour Christophe (qui ne connait ni p, ni q, ni d), c'est de trouver ce nombre d. Pour cela, il lui faudra factoriser n en p×q, puis trouver d selon la relation ci-dessus.

-----

Petit exemple :
On prend les clés de cryptage suivantes
n = 1653277069
e = 65537

Et mon message caché, c'est :
C = 305880301

Pour décrypter ce message, il faut donc savoir factoriser. Comme ce n'est pas un nombre trop énorme, on peut encore le faire : 1653277069 = 41113  x  40213.
On a donc T=(p-1)(q-1) = 41112  x  40211 = 1653195744
Il faut à présent calculer d (L'inverse de e modulo T). Cet inverse, c'est d=1104341921.
On décode à présent le message.
Cd modulo n = 1615210520

En le décodant, on a 16.15.21.05.20 -> P.O.U.E.T

Et voilà un beau message décodé !

-----

Allez, passons à un petit exercice ! Saurez-vous décoder ce message codé, sachant que pour le coder, j'ai utilisé :

n =
28419181913810437345824250197567708730088202978694
28913715429476242088608345960904066292721435918199
21106779056877531440875230218032640311325038378896
92339352650802850904343984369558897929963233427

e = 65537

Et voici mon message codé :
C =
11702615899972603057258578189422057798020038730314
78892622538509244478308728446193131481112246707511
12640561090848642523271203957773047992148675956812
22080098315061823288413981706052270284295473961

Le premier ou la première qui réussira à le décoder gagnera un magnifique cadeau d'une valeur inestimable !

 

-----

Bref, pour hacker en toute tranquillité, il suffit simplement de savoir factoriser des grands nombres !

(Ai-je omis de préciser que dans l'état actuel des choses, il est impossible de factoriser un nombre à plus de 200 chiffres ?... Quand on sait que les clés de chiffrements des banques sont de l'ordre de 300 chiffres...)

Il faut tout de même se rassurer : ce système garde encore quelques failles, tout n'est pas perdu pour les hackers !


Sources :
La page Wikipedia sur RSA (avec démonstration)
Générer des grands nombres premiers
Calculs sur de grands entiers

Posté par El Jj à 17:49 - Commentaires [14] - Permalien [#]
Tags : ,


24 juin 2007

Mon papa, il est mille fois plus fort que le tien !

- Mon papa, il est plus fort que le tien !
- Nan, c'est le mien le plus fort !
- C'est pas vrai, parce que le mien, il est 100 fois plus fort !
- Nan, le mien, il est un million de fois plus fort !
- Mais le mien, il est un millions plus une fois plus fort !

Bon, évidemment, à moins de s'essouffler, on peut continuer cette discussion intéressante indéfiniment, tant qu'on arrive à trouver des nombres toujours plus grand... Alors, comment mettre K.O. son adversaire au jeu du "Mon papa, c'est le plus fort" ? Tel est l'objet de cet article !

Pour atteindre des grands nombres, rien ne vaut les puissances de 10, c'est d'ailleurs comme ça que commencent toute bonne partie de "mon papa, c'est l'plus fort". Les choses risquent fort de commencer comme ça, les plus simples des grands nombres :
Cent (100), Mille (1 000) , un million (1 000 000), un milliard (1 000 000 000), etc.

Et après ?
Le débat fait rage, puisque deux écoles s'affrontent. D'un côté, ceux qui adoptent la progression par 1000 et ceux qui adoptent la progression par 1 000 000, ce qui rend les discussions à propos de grands nombres incompréhensibles (d'où l'utilisation des puissances de 10).   
    Selon la règle traditionnelle, on a ensuite le trillion (1012), le quatrillion (1015), le quintillion (1018), le sextillion (1021), le septillion (1024), l'octillion (1027) etc.
    Selon la règle officielle, on a ensuite le billion (1012), trillion (1018), le quatrillion (1024), le quintillion (1030), le sextillion (1036), le septillion (1042), l'octillion (1048) etc.
    Il y a encore d'autres systèmes utilisés, mais on va rester sur le système officiel.

Mais tout ça, finalement, ça reste des petits nombres, on peut aller bien plus loin. Archimède, par exemple, en s'amusant à compter les grains de sables, a supposé que la sphère terrestre pouvait contenir 1064 grains de sable... Carl Sagan, quant a lui, a estimé le nombre d'atomes dans l'Univers a 1080.

Et après ?
On peut toujours trouver des nombres plus grands ! Leur gros problème résidera dans le fait qu'il ne représentent pas grand chose de physique.

C'est histoire de créer des grands nombres que Kasner demanda à son neveu un nom pour le nombre qu'il venait d'inventer, 10100 (utilisé pour parler d'un nombre grand qui n'est pas l'infini). Alors âgé de 8 ans, son neveu lui répondit "gogol". C'est ainsi que le gogol fut né, un "un" suivit de cent "zéros". C'est d'ailleurs de là que vient le nom du moteur de recherche, qui, à terme, devrait recenser un gogol de pages... Ce nombre reste malgré tout à peu près égal à 70! (factorielle de 70, c'est à dire, 1×2×3×...×70).

Et après ?
On a le nombre de Shannon (10120), c'est à dire, le nombre théorique possible de parties d'échec !

Et après ?
Et bien, c'est à ce moment là qu'il faut citer l'asaṃkhyeya (असंख्येय, pour les grammar nazi du sanskrit), qui vaut environ 10140, qui est un nombre bouddhiste, littéralement "au dela des nombres". C'est le nombre considéré comme étant le plus grand. En effet, un bouddhiste jouant au jeu du "Mon papa c'est l'plus fort" ne pourra pas aller plus loin que "Mon papa est un Asaṃkhyeya de fois plus fort que toi"... La valeur de l'asaṃkhyeya reste cependant sujette à caution, puisqu'il vaut 105×2^103 ou 107×2^103 (un nombre possédant environ 1032 chiffres.

Et après ?
Mais ces nombres sont ridiculement petits par rapport à ce qui suit : les plex ! Dans la foulée du gogol fut inventé le gogolplex, égal à 10un gogol. (D'où le nom du siège social de google, le googleplex). D'autres mathématiciens ont prolongé le concept, un disant qu'un N-plex valait 10N, et donc, le gogolplexplex vaut 10un gogolplex.

Et après ?
Et bien, c'est là que Knuth arrive et propose un tout nouveau système de puissance.
Avant, nous avions l'écriture ab, que l'on comprenait comme ça :

a_b

Et bien, Knuth propose un système de doubles flèches verticales :

aflflb

On a, par exemple, 3flfl3
ou   9flfl5, nombre considérablement plus grand que le gogolplex.

Et après ?
Et bien, Knuth a encore agrandi son concept de flèches, en proposant la triple flèche, la quadruple flèche et la n-flèche définie de manière récursive. Ca donne alors quelque chose comme ça :

aflflflb

On a, par exemple, 2flflfl3

Et en généralisant, ça donne :

aflflnb

Ces nombres ont eu une application concrète, celle du nombre de Graham, le plus grand nombre jamais utilisé dans une démonstration mathématique (une sombre histoire de coloration d'hypercube), qui correspond au 64e terme de cette suite :
u1 = 4
u2 = 3flflflfl3     (Avec 4 flèches)
u3 = 3flpoints3     (Avec u2 flèches)
Et ainsi de suite jusqu'à u64, le nombre de Graham, qui aura u63 flèches...

Et après ?
Et bien à ce niveau là, on se dit que les nombres deviennent trop grand (ce qui n'est pas peu dire...) et qu'il serait inutile d'en chercher des encore plus grand... Et pourtant, il existe une notation permettant d'en avoir des encore plus grands ! C'est la notation des flèches de Conway !
Dans la notation de Conway, les nombres s'écrivent sous la forme d'une chaîne, comme 2 → 15 → 42 → 7. Dans ce cas là, la chaîne est de longueur 4, composé d'une chaîne queue (2  → 15  → 42) et d'un terme de tête (7).

La valeur numérique de cette chaîne est définie de manière récursive :

  • Une chaîne de longueur 1 représente le nombre.
    • Si la chaîne est de longueur 2, c'est l'exponentiation classique : 
      p → q = pq
  • Si le terme de tête est 1, la chaîne est égale à sa chaîne de queue :
    Y → 1 = Y
  • De manière similaire, la présence d'un 1 dans la chaîne la coupe :
    Y → 1 → X = Y
  • Si la chaîne est de longueur supérieure ou égale à 3, elle est égale à une chaîne de même longueur égale où le nombre de tête est décrémenté, et où l'avant-dernier terme est considérablement plus grand :
    Y → p → q = Y → (Y → p-1 → q) → q-1 (pour p,q ≥ 2)

Cette dernière propriété permet de réduire la taille des chaînes.
Ainsi, la chaîne 2 → 15 → 42 → 7 est égale à 2 → 15 → (2 → 15 → 41 → 7) → 6 (chaîne de longueur 4, avec un terme de tête plus petit). En appliquant cette règle de récursion encore 5 fois, le dernier terme sera 1, ce qui permet de "diminuer" à 3 la longueur de la chaîne. Seulement, le dernier terme de cette nouvelle chaîne de longueur 3 est immensément grand...

Ainsi, on peut encadrer le nombre de Graham G avec des nombres de la notation de Conway :

encadrement

Mais le nombre de Graham reste ridiculement petit par rapport au nombre 3fl3fl3fl3...

Et après ?
On pourrait toujours s'amuser à définir une notation correspondant à des itérations de notation des flèches de Conway, mais pour l'instant, aucun mathématicien n'a jugé utile de le faire...

- Mon papa, il est plus fort que le tien !
- Nan, c'est le mien le plus fort !
- C'est pas vrai, parce que le mien, il est 100 fois plus fort !
- Nan, le mien, il est factoriel de l'itération d'un nombre de Graham de fois de la notation en flèche de Conway avec le gogolplex...plex avec un Asaṃkhyeya de "plex"  de fois plus fort que ton père !!!!
- Euh... et ben... euh... Le mien, il est factoriel de l'itération d'un nombre de Graham de fois de la notation en flèche de Conway avec le gogolplex...plex avec un Asaṃkhyeya de "plex" plus une fois plus fort !


Sources :
Les grands nombres
Notation des puissances itérés de Knuth
Notation des flèches chaînées de Conway

Posté par El Jj à 03:35 - Commentaires [18] - Permalien [#]
Tags : , ,

18 juin 2007

La numération des marchands d'œufs

J'en avais déjà parlé sur mon autre blog, mais il est hors de question que je n'en reparle pas ici : la numération des marchands d'œufs (ou d'huitres).

Pour comprendre ce qu'est cette numération, il faut se replacer dans le contexte :
- Bonjour madame la marchande d'œfs, je voudrais 12 œufs !
- Pardon ?
- Euh, je veux dire, je voudrais une douzaine d'œuf !
- Ah ! tenez, les voici.

C'est là que le problème se pose : les marchands d'œufs sont incapables de s'exprimer avec d'autre unités que la douzaine ou la demie douzaine. Résultat, pour commander 72 œufs, il faut faire preuve d'ingéniosité et commander "une demie-douzaine de douzaines d'œufs" (car 6×12=72) !

La numération des marchands d'œufs, c'est simplement une façon de compter les œufs propre au monde de l'ovocommerce. Voici un petit tutorat pour s'exprimer comme un chef et ne plus hésiter lors d'une commande d'huîtres pour la nouvelle année.

Les trois unités de bases sont la douzaine, la demie-douzaine et la demie-demie-douzaine (respectivement 12,6 et 3).
Ensuite, il faut savoir que l'on peut à sa guise multiplier ces nombres de bases grace au mot magique "de". On a alors une demie-demie-douzaine de demie-demie-douzaines pour désigner 9.

Évidemment, cela limite énormément la possibilité de commande, c'est pourquoi on peut ajouter deux autres mots de vocabulaires, "un peu moins d'" et "un peu plus d'" que l'on peut combiner aux diverses douzaines pour leur ajouter ou retrancher une unité. On a alors un peu plus d'une douzaine pour désigner 13 et un peu moins d'une demie-demie-douzaine pour parler de 2.

La multiplication marche toujours avec le "de", ce qui permet d'obtenir comme 8, avec un peu moins d'une demie-demie-douzaine d'un peu plus d'une demie-demie-douzaine.

Dans le jargon de la numération des marchands d'œufs, on appelle les nombres que l'on peut exprimer ainsi des "nombres de classe 1". Il est pas important de voir que les nombres de classe 1 se multiplient à merveille en ajoutant un petit "de".

Il arrive ensuite que des nombres ne soient pas des nombres de classe 1, comme par exemple 17. Par contre, on peut exprimer de 18 (une demie-demie-douzaine de demie-douzaines d'oeufs). Il suffit donc de dire que 17, c'est un peu moins de 18, c'est à dire, un peu moins de une demie-demie-douzaine de demie-douzaines d'oeufs.

A noter que cette fois ci, il n'y a pas d'apostrophe, on dit bien "un peu moins de" et "un peu plus de" dans le début des nombres de classe 2.

Il existe ensuite les nombres de classe 3, que l'on ne peut tout simplement pas exprimer dans la numération des marchands d'œufs, mais qui donc irait songer à acheter 58 œufs ?

Pour vous aider dans ce  nouveau système de numération, voici un petit traducteur très utile ! (Les étoiles indiquent les nombres de classe 2)

Donnez le nombre à traduire :

Et maintenant, il n'y a plus aucune raison à ne pas vouloir s'occuper des courses pour le repas de Noël !


Sources : nulle part, c'est une invention personnelle...

Posté par El Jj à 02:21 - Commentaires [10] - Permalien [#]
Tags :

09 juin 2007

Best online roulette gambling

Qui n'a jamais rêvé de gagner au loto ? A part les trois hippies au fond, personne ! Avec une chance sur 14000000 de gagner le gros lot, finalement, personne n'y crois vraiment...Par contre, pour ce qui est des jeux de casinos, le chance de gain nous sont beaucoup plus favorable.
Pour peu que les machines soient fiables comme dans un casino digne de ce nom (et contrairement à ce que l'on peut trouver sur internet), on peut même facilement calculer ses probabilités de gains. La roulette française, par exemple, contient 37 cases : 18 cases rouges, 18 cases noires et une verte. En misant sur le rouge, la probabilités de gagner est donc de 18/37=48,64%.

Bref, si je mise 1€ sur le rouge, j'ai 48,64% de chance de gagner mon euro, et 51,35% de perdre mon euro.

Depuis de nombreuses années, les joueurs ont tenté de chercher a faire basculer les probabilités en leur faveurs. De nombreuses techniques ont été mises au point : poupées vaudoo, prière, menace procès en justice ou application de la loi des grands nombres sur des petits nombres. Évidemment, rien de tout cela ne marche.

Pendant ces mêmes années, les mathématiciens probabilistes ont également cherché des techniques
pour gagner au casino, alias, martingales. Et en cherchant assez longtemps, ils les ont trouvé !
Le sujet de cette note est donc très simple :

Comment gagner à la roulette ?
(ou tout autre jeu d'argent de hasard pur, comme le pile ou face, la roulette russe ou le dé)

De nombreuses martingales existent, je vais vous présenter les principales :

La martingale classique (comment s'assurer de gagner 1€ ?)
Cette martingale est la plus simple de toutes :
On commence par miser 1€ sur le rouge.
Si le rouge tombe, vous venez de gagner un euro, et vous pouvez vous arrêter là.
Si c'est perdant, vous misez à nouveau sur le rouge, mais cette fois ci, 2€.
Si le rouge tombe, vous gagner 2€-1€(perdu à la première partie)=1€
En cas de perte, il faut miser 4€, puis continuer à doubler tant que l'on perd. (Tant que l'on perd, on mise tour à tour 1,2,4,8,16,32...)
Dès que le rouge sortira, le gain couvrira les pertes qui ont précédé, avec un petit plus de 1€.

La grande martingale (comment s'assurer de gagner 1€ par parties jouées ?)
On procède de la même façon que pour la martingale précédente, mais au lieu de miser le double de la mise précédente, on joue le double plus une unité. (Tant que l'on perd, on mise tour à tour 1,3,7,15,31...)
Au premier gain, on remportera autant de mise que de parties jouées. Ensuite, on peut partir du casino.

Le piquemouche (comment gagner autant en risquant plus ?)
On procède de la même façon que pour la martingale classique, mais au lieu de doubler les gains tout de suite, on se laisse d'abord un peu désirer. Tour à tour, il faut miser 1,1,1,2,2,2,4,4,4 et ainsi de suite.
Gagner au deuxième coup ne fera pas gagner un seul euro, mais aura le mérite de ne pas en faire perdre. En gagnant au troisième coup, la balance sera tout de même déficitaire de 1€, et il faudra recommencer pour espérer gagner cet euro.
De toutes les martingales présentées celle-ci est la pire de toutes, le seul point positif étant son nom rigolo.

La montante américaine (comment se prendre la tête inutilement)
Cette technique est différente des autres, il ne faut l'arrêter qu'une fois que la balance est positive.
On commence par miser une unité, puis deux, puis trois (si les deux premiers jeux sont perdant, dans le cas contraire, on arrête de jouer). En même temps, il faut noter sur un petit papier la suite des mises que l'on fait : 1/2/3.
Ensuite, tant que l'on perd, il faut miser la somme de la première et de la dernière mise inscrite sur le papier (on mise 4 et on l'écrit à la suite de la liste).
Si le jeu est gagnant, on raye de la liste les deux chiffres ayant composé la somme, et on mise à nouveau le premier et dernier nombre inscrit sur la liste. On continue jusqu'à rembourser ses dettes de jeu.

 

Bon, évidemment, si tout cela marchait, ça se saurait : les casinos auraient depuis des lustres mis la clé sous la porte.
Prenons le cas de la martingale classique : pour gagner 1€, il faut pouvoir tenir la perte successive d'une grosse somme d'argent. En perdant 10 fois de suite, par exemple, il faudra miser au onzième coup 1024€, en en ayant déjà perdu presque autant. Il est vrai que 10 noirs/vert de suite est quelque chose de plutôt rare (un peu plus d'une chance sur 1000), mais quand on espère gagner le gros lot avec la martingale classique, il faut compter jouer au moins mille fois, et les dix successive arriveront peut-être... (avec 63% de chances)
En fait, pour être sûr à 100% de gagner, il faudrait posséder un compte en banque infini. En jouant un très grand nombre de fois, même avec un gros compte en banque, on finira toujours ruiné.

En fait, Dubins et Savage ont démontré en 1956 que la meilleure façon de gagner à un jeu aléatoire qui nous est défavorable est de minimiser le nombre de parties jouer ; en fait, si le jeu est défavorable, il n'y a absolument aucun moyen d'inverser les probabilités en notre faveur (à moins d'un compte en banque infini).

Et pour finir, une fois n'est pas coutume, voici un petit script permettant de tester un grand nombre de fois les différentes martingales. On peut paramétrer tout un tas de choses pour adapter les tests à autre chose qu'une chance simple à la roulette. En choisissant "expérimentation" dans le menu déroulant, vous pouvez même jouer à la roulette, comme le titre l'annonçait ! (sauf peut-être pour "best") (Utilisez avec précaution le bouton "jouer 500 fois", les navigateurs ont un peu tendance à faire la gueule)

Compte en banque :

Mise unitaire :

Probabilités de gain : %

Gain : fois la mise

Et comme dirait un sage philosophe : la meilleure façon de gagner au loto, c'est de ne pas jouer. Surtout que plus on gagne d'argent, plus la déprime qui suit est violente...


Sources :
Beaucoup de wikipedia, et un peu d'un site de casino qui proposait à la fin de chaque explication un lien pour aller faire de la roulette online..

Posté par El Jj à 02:17 - Commentaires [23] - Permalien [#]
Tags :

03 juin 2007

Zéro divisé par zéro égalent ?...

Combien ça fait, zéro divisé par zéro ?

En voilà une bonne question qui revient souvent après la remarque "Jj, tu fais bien des études de maths ?..." pendant les dîners familiaux. (Déjà deux fois en une semaine)

Menons donc l'enquête ! Pour celà, rien de plus simple, on prend une calculette qui traîne, par exemple, une TI-30Xa, simple calculette de collégien des années 2000 et on tape "0/0"... "Error"... Testons alors une calculatrice plus évoluée, style lycéen des années 2002, une TI-82. "0/0"... "ERR: DIVIDE BY 0"...Tout porte à croire qu'il ne faut surtout pas diviser par 0...

Quelques règles élémentaires nous donne quelques informations sur "0 divisé par 0" :
* Zéro divisé par n'importe quel nombre, ça donne zéro. (Mais il faudrait que cet autre nombre ne soit pas 0)
* Quand on divise un nombre par lui-même, on obtient un.  (Tant que ce nombre n'est pas zéro)
* Quand on divise un nombre par quelque chose de très proche de zéro, on trouve quelque chose de très grand. (Histoire de ne pas encore rentrer dans les histoires de calcul infinitésimal)
Donc, les trois ensembles, ça devrait donner quelque chose comme 0/0=0 ou 1 ou autre chose.

On est pas plus avancés...

Plutôt que de voir 0 comme le néant, le vide absolu, voyons plutôt 0 comme un nombre extrêmement petit, tellement petit qu'on ne le voit pas. Pour trouver combien vaut 0/0, on va appeller le 0 du dessus x et le zéro du dessous y : ce qu'il faut savoir, c'est à quoi ressemble x/y quand x et y sont deux nombre non nuls, mais presque.

On peut envisager tout un tas de possibilités. Parmi elles, le cas où :
- x est aussi grand que y (par exemple, x=y). Dans ce cas, puisque x≠0, on a 0/0 = x/x = 1. (Soit 0/0=1)
- x est aussi grand que le carré de y (x=y²) : si y est proche de 0, x est encore plus proche de 0. Ca donne donc 0/0 = y²/y = y = 0 (Soit 0/0=0)
- y est aussi grand que le carré de x (x²=y). Ca donne que 0/0 = x/x² = 1/x = ∞ (Soit 0/0=∞)

En fait, pour répondre à la question "combien font zéro divisé par zéro" avec des considération analytiques, il faudrait savoir quel est le plus petit des deux zéros, ce qui, en soit, a autant de sens que la question "combien font zéro divisé par zéro ?" (Malheureusement, la fonction f(x,y)=x/y ne sera pas continue au point (0,0)).

C'est ce qui donne la grande hantise des lycéens : la forme indéterminée ! Le genre de chose qui peut donner des résultats souvent spectaculaires :

limites

Bref :
- Ca fait combien, zéro divisé par zéro ?
- Ca fait zéro puissance zéro...

Posté par El Jj à 02:30 - Commentaires [18] - Permalien [#]
Tags : , ,



27 mai 2007

J'aimerais tant revoir Syracuse

"Prenez un entier supérieur à 1.
S'il est pair, divisez le par 2.
S'il est impair, multipliez-le par 3 et ajoutez 1.
Réitérez ensuite les deux précédentes étapes"

Ce qui est surprenant dans cette histoire, c'est que la suite obtenue tombera toujours sur 1, peut importe l'entier choisit au départ.

Et ce qui est encore plus surprenant, c'est que personne ne sait pourquoi !

formule

Ce problème est couramment appelé Conjecture de Syracuse. (mais aussi problème de Syracuse, algorithme de Hasse, problème de Ulam, problème de Kakutani, conjecture de Collatz, conjecture du 3n+1 ou plus poétiquement la suite de grêlons)

On a encore beaucoup de mal à en décider la paternité, les tests ADN n'ont pas encore été faits...
En fait, tout commence avec Lothar Collatz, dans les années 1930, qui s'amuse à faire des transformations itératives d'entiers et regarde ce que ça donne.
Dans les années 50, Helmut Hasse se rend à l'Université de Syracuse (près de New York, pas du tout en Sicile) et remporte un grand succès en diffusant son problème.
Pendant la seconde guerre mondiale, le polonais Stanislas Ulam reprend le problème à son nom, et, dix ans plus tard, S. Kakutani reprend le problème pour le diffuser à son tour sous son nom.
Et, dans l'histoire, personne n'a réussit à le résoudre.
A l'époque de la guerre froide, on parlait de ce problème comme d'un complot soviétique pour ralentir les recherches aux États-Unis...
Dans ces années là, un mathématicien hongrois, Paul Erdõs, proposait 500$ à qui arriverait à résoudre le problème (ça vaut pas le millions offert à qui résolverait P=NP...).

Bref, toute cette fabuleuse histoire pour dire que le problème a déjà bien vécu, si bien qu'un joli vocabulaire s'est créé autour du problème.
La trajectoire (ou le vol) d'en entier donné est la suite donnée plus haut.
Le temps de vol, c'est le nombre de terme avant l'apparition du premier 1.
L'altitude maximale est simplement le plus grand terme de la suite.
Le temps de vol en altitude, c'est le nombre de termes nécessaires pour qu'un terme de la suite soit inférieur au premier terme (les plus matheux d'entre vous remarqueront qu'il suffit de démontrer que le temps de vol en altitude est fini pour démontrer la conjecture)
Le facteur d'expansion, c'est simplement l'altitude maximale divisée par le premier terme.

Et pour faire des choses jolies, on peut mettre ça sous forme graphique :

graphiks

Avec tout ça, vous devriez pouvoir comprendre ce petit script :

 

Nombre de départ :

 

 

 

On peut s'amuser à chercher les nombres donnant le plus grand temps de vol, la plus grandes altitude maximale ou le plus long temps de vol en altitude inférieurs à un certain nombre.
Parmi les nombres inférieurs à 100, les champions sont 27 (en altitude maximale et temps de vol en altitude) et 97 (en durée de vol).
Parmi les nombres inférieurs à 1000, les champions sont 703 (en altitude maximale et temps de vol en altitude) et 871 (en durée de vol).
Vous pouvez ensuite tenter de chercher les meilleurs inférieurs à 10000...

En 2004, la conjecture a été vérifiée pour tous les nombres inférieurs à 264 (1,8 × 1019)
Les seules démonstrations que l'on a réussi a réussi à donner pour l'instant sont heuristiques (statistiques) : en considérant que les nombres impairs, on trouve qu'en moyenne, le prochain nombre impair vaut 3/4 du nombre précédent, ce qui a tendance à décroitre.
En 2006, Alain Slakmon et Luc Macot, mathématiciens québécois se basent la dessus pour donner une démonstration probabiliste de la question, démonstration vraie, mais, comme le signale leur auteurs, "Comme il s’agit d’une approche probabiliste, nous ne pouvons affirmer qu’il s’agit d’une preuve absolument irréfutable de la véracité de la conjecture. Il reste une toute petite possibilité que certains nombres y résistent". Cette possibilité est cependant petite... Mais pas impossible...


Sources :
Un site perso et un site moins perso
Article sur la démonstration probabiliste sur CyberSciences

Posté par El Jj à 16:40 - Commentaires [6] - Permalien [#]
Tags : ,

20 mai 2007

Si c'est rond, c'est Poincaré

Rappelez-vous, c'était il y a une semaine...
Vous appreniez (sans doute avec effroi) que l'on pouvait concevoir que par un point extérieur à une droite ne passe aucune droite parallèle (géométrie elliptique) ou alors, une infinité (géométrie hyperbolique).
A propos de la géométrie hyperbolique, j'en était resté à un simple "Il y en a tout un tas, et n'en comprenant aucune d'entre elle, je ne peux pas en dire tellement plus".

Et bien, votre humble serviteur s'est renseigné sur le sujet (en fait, il est tombé sur l'article par hasard), et finalement, un monde dans lequel les carrés n'ont pas d'angles droits mérite pleinement sa place dans ce blog... Petite visite guidée au pays de la géométrie hyperbolique selon Poincaré.

Imaginons un disque. Un simple disque. Pour compliquer, appelons le "plan hyperbolique de Poincaré".
Pour avoir une bonne géométrie, il faut des droites et des points. Un "point" sera simplement un point appartenant au plan de Poincaré. Pour la notion de "droite", on prendra les diamètres du cercle et les arcs de cercle orthogonaux au pourtour du disque.
Les choses ressembleront alors à quelque chose comme ça :
poincare

H est le plan hyperbolique de Poincaré

Plusieurs droites y sont représentées. On peut voir que les 4 premiers axiomes d'Euclide sont bien conservés, notamment celui selon lequel il n'existe qu'une unique droite passant par deux points distincts.

Et l'axiome des parallèles ? On voit qu'il n'est pas respecté : il existe plusieurs droites passant par le point M qui ne coupent pas la droite D (T1, T2).






Maintenant, faisons attention à ne pas tout mélanger, surtout en matière de mesure des longueurs ! Le schéma ci-dessus n'est qu'une représentation. Plus on s'approche du bord du cercle, plus deux points proches en apparence seront éloignés. Un être vivant qui se déplacerait sur le plan de Poincaré ne pourrait jamais en atteindre les bords. Et nous, simple observateurs de cet être, le verrions rapetisser au fur et à mesure qu'il avance. Les angles, cependant, restent identiques pour tout le monde.


carrehyp
Ceci est un carré... Si si ! Les quatre angles sont égaux, les quatre côtés aussi

Dans le monde hyperbolique de Poincaré, la somme des angles d'un triangle est toujours inférieure à 180° (pi radians). Et ce qui est épatant la dedans, c'est que la différence avec pi donne la mesure de l'aire de ce triangle ! C'est peut-être un détail pour vous, mais quand même, c'est fou !
Et en conséquence, il n'existe pas de carrés à proprement parler, la somme des angles d'un quadrilatère étant toujours inférieure 360° (2pi radians). Il existe bien des "carrés", mais ils ne possèdent pas d'angles droits.

Autant il n'y a pas de quadrilatère avec quatre angles droits, autant il existe des pentagones droits avec 5 angles droits, des hexagones droits, et ainsi de suite... (heptagone, octogone, nonagone, triacontakaiheptagone...)

pentag
Un magnifique pavage du pan hyperbolique par des pentagones réguliers droits (en blanc)


Et encore plus fort : il existe un infinigone régulier ! C'est un polygone régulier, avec tous ses côtés égaux et tous ses angles égaux (à 120°). Et le plus fort, c'est que l'on peut paver le plan avec !

infinigone
(Plan pavé d'infinigones réguliers)

Mais tout n'est pas si compliqué dans cette vision de la géométrie, puisqu'on peut y faire beaucoup de choses impossibles à faire dans le plan euclidien. On peut, par exemple, y réaliser la quadrature du cercle. Et, encore plus fort, la conjecture P=NP est vérifiée ! (Mais pour le millions de dollars, c'est dans le plan euclidien qu'il faut le démontrer).
Bon, les choses deviennent plus difficiles quand on commence à s'intéresser à un espace hyperbolique de dimension 5 ou supérieures, mais je crois que dans l'état actuel du blog, ce n'est pas très intéressant...

Escher1
Limite Circulaire I
(M.C. Escher)



Sources :

Pour la science, n°316 février 2004 (que l'on peut lire ici)
De jolies illustrations provenant de ici
Ici, un applet java sympathique

Posté par El Jj à 12:12 - Commentaires [6] - Permalien [#]
Tags : ,

18 mai 2007

Le mystère du pentagone et du ruban...

Parce que ce blog aussi peut tomber à 9,81 m/s² dans l'inutilité, répondons aujourd'hui à cette question e-mail posée par Kaki (vous aussi, envoyez vos questions, peut-être elles seront tirées au sort pour y répondre) :

Pourquoi, quand on fait un nœud simple avec un ruban, on obtient un pentagone ?

ruban

En voilà une merveilleuse question qui nécessite que l'on s'y intéresse vraiment ! Pour comprendre ce phénomène, il faut remonter à l'origine du nœud, à la manière dont on le forme. Puisque un long discours vaut mieux que quelques images, et que j'ai pas le temps de discourir, voici quelques images :

Mode_d_emploi

Etape un : ...
Etape deux : ...
Etape trois : ...

Etape quatre : on tire des deux côtés. Les différents pliages vont alors s'agencer entre eux pour former un magnifique pentagone régulier.

 

Pour comprendre d'où il vient, il suffit simplement de s'intéresser aux pliages aboutissant au nœud terminé :

pliages

Etape un : On plie selon quelque chose qui ressemble à [ab]
Etape deux : On plie selon quelque chose qui ressemble à [cd]
Etape trois : On plie selon quelque chose qui ressemble à [ef]

 

Et à l'étape quatre, on tire des deux côtés, de manière à ce que toutes les longueurs soient minimales. Cela revient à avoir effectué les pliages de manière à ce que [ac] et [df] correspondent exactement à la largeur du ruban (donnant ainsi les points a', b', d' et f' : ac=a'c', df=d'f').


pentagone

Les pliages donnent tout un tas d'égalités entre les différentes longueurs, identifiées par leur couleurs dans le schéma ci-dessous.

pliages2

Et c'est là que cet exposé devient impossible à suivre !
soit x la mesure de l'angle ecd
(cd) étant la bissectrice de ecd, on a ecd=bcd
ecd et cdb sont alterne-interne : ecd=cdb
On a donc bcd=cdb, cbd est donc isocèle : cb=bd=de=ec=bd'=ec'

On peut alors trouver tout un tas de triangles semblables et d'angles alternes-internes, donc, plein d'angles égaux.

pliages3

On a alors (ec')//(cf)//(da)//(bd')
On se retrouve avec ec'fc et adbd' étant des losanges, et acfd un parallélogramme.
De quoi conclure que ef=cd=ab et ac=fd. De la à conclure que tout est égal, il n'y a qu'un pas, que je n'hésite pas à franchir (il suffit d'ajouter le segment [a'f] pour voir apparaitre tout un tas de triangles semblables isocèles).

On a alors ac=cd=de=eb=ba : abcde est un pentagone régulier !

(Il y a peut être (et très sûrement) plus rapide, mais j'ai jamais été très fan de ce type de géométrie...)

 

Message personnel : Maintenant, Kaki, c'est à toi de jouer !

Posté par El Jj à 21:32 - Commentaires [3] - Permalien [#]
Tags : , ,

12 mai 2007

Puisque le Petit Prince l'a dit

C'est bien joli de parler de maths, mais pourquoi ne pas parler un peu de littérature ?!...
Je me sens d'humeur à parler d'Antoine de Saint Exupéry, du Petit Prince... Pourquoi ne pas faire une petite analyse de la portée philosophique de l'œuvre ? En effet, ça... Nan, parlons plutôt de maths, je suis là pour ça !

 

On prête à Antoine de Saint Exupéry un dialogue entre lui et le Petit Prince, conversation durant laquelle le Petit Prince affirme sans sourciller son théorème (Le théorème du Petit Prince) : "Si un triangle a trois angles droits, alors il est équilatéral".

 

Ce à quoi vous aimeriez bien lui répondre  : "Et la marmotte, elle met le chocolat dans le papier d'alu. C'est pas possible d'avoir trois angle droits dans un triangle ! Rho le nul !".
Ce à quoi le Petit Prince vous répondrait, sûrement avec dédain, que vous avez tort, et commencerait à vous faire la morale. Et pour vous enfoncer encore plus, il vous dessinerait ce fameux triangle :


3anglesdroits

Le triangle ABC est bien un triangle équilatéral qui possède trois angle droits...

Et toutes ces histoires comme quoi la somme des mesures des angles d'un triangle est toujours égale à 180° ?... Eh oui, on vous a toujours menti, mais rassurez-vous, c'était pour votre bien...


-------


Il est donc l'heure de découvrir la vérité : tout ce que l'on apprend en géométrie depuis la maternelle, ce n'est qu'une vision euclidienne du domaine... Petit cours approximatif de l'histoire des mathématiques.

Avant Euclide, on faisait de l'arithmétique et de la géométrie, sans trop se poser de questions philosophiques comme "qu'est ce qu'un point ?" ou "qu'est ce qu'une droite". Vers 300 avant JC, Euclide en avait marre de tout ça, mit les pieds dans le plat et donna tout un tas de définitions sur ces concepts (Ndlr : totalement indigestes).
A partir de toutes ces définitions, il donna 5 postulats (des propriétés que l'on décide vraies et sur lesquelles on fonde toute une théorie mathématiques - au contraire d'un axiome, on ne s'interdit pas de chercher la démonstration d'un postulat) :
1 - Un segment de droite peut être tracé en joignant deux points quelconques.
2 - Un segment de droite peut être prolongé indéfiniment en une ligne droite.
3 - Étant donné un segment de droite quelconque, un cercle peut être tracé en prenant ce segment comme rayon et l'une de ses extrémités comme centre.
4 - Tous les angles droits sont congruents (Celle là, je la comprends pas bien...)
5 - Par un point extérieur à une droite, on peut mener une et une seule parallèle à cette droite.
(A noter que Hilbert passe derrière en 1899, et propose 21 postulats comme base de la géométrie euclidienne... En fait, il y en avait un en trop dedans, mais c'est un détail)

Et pendant de très nombreuses années, les mathématiciens se sont toujours accordés à accepter les quatre premiers postulats (devenant, de fait, un axiome), mais pour le cinquième, ça bloquait... Ils étaient intimement persuadés qu'il était démontrable à partir des quatre premiers.
Et lors de nombreuses recherches infructueuses, ils tentèrent de voir ce que cela donnerait si ce cinquième postulat était faux.

Et si, par un point extérieur à une droite donnée, ne passait aucune droite parallèle ?

Créé par Riemann, cela donne une géométrie elliptique. Au lieu du plan, on évolue sur une sphère, et les droites, ce sont les cercles possédant le même centre que celui de la sphère. Là-dedans, les triangles peuvent (entre autres) avoir trois angles droits...

Para_riemann
Par M ne passe aucune droite parallèle à D.

Et si, par un point extérieur à une droite donnée, passent une infinité de parallèles ?

On se retrouve avec une géométrie hyperbolique, crées par Lobatchevsky, Klein ou Poincaré (à des époques différentes). Tout un tas de modèles équivalent existe, mais j'en parlerait surement une autre fois sur le blog. En gros, ça donne quelque chose comme ça :

Para_lobatchevski
Géométrie hyperbolique de Lobatchevsky : par M passent une infinité de parallèles à D.

Maintenant, vous savez... Ne nous laissons pas dicter la géométrie par Euclide ! Il ne faut pas se laisser faire !

(Surtout qu'aujourd'hui, avec tout les concepts qu'on a inventés depuis, la géométrie euclidienne a laissé sa place à des choses encore plus alambiquées : dimensions infinies, distances négatives ou géométrie fractale).


Vous pouvez lire ce passage du Petit Prince ici. A noter que la discussion entre Antoine et Le Petit Prince n'est en réalité pas dans le bouquin du même nom, c'est simplement un hommage par un mathématicien au Petit Prince.
(Et pour les sources, c'est encore Wikipedia, d'où proviennent les deux dernières images).

Posté par El Jj à 22:13 - Commentaires [6] - Permalien [#]
Tags : ,

05 mai 2007

Un millions de dollars pour un sudoku

(Je ne cherche pas à rentrer dans tous les rouages de la question, juste une visite guidée de détails plus ou moins intéressants)

Rappelez-vous, c'était il y a une semaine : vous avez découvert ce qu'était un problème NP-complet, comme celui de la faisabilité du sudoku (et plein d'autres, j'ai donné plein d'exemples), et ce qu'était un problème de classe P...

Le grand problème du problème NP-complet, c'est que dans l'état actuel des choses, un ordinateur met généralement beaucoup de temps pour en venir à bout. Savoir si un sudoku de 10 000 cases est faisable est pour un ordinateur quelque chose d'inenvisageable (avec le manque de chance, la réponse nécessiterait dans les 10^20000 calculs... )...

Inenviseageable ?... Là est la véritable question... Cette question porte un nom : "A-t-on P=NP ?"
Peut-être il existe quelque part, bien caché, un algorithme capable de déterminer si ce sudoku est faisable en un temps admissible, polynomial...
Pendant ce temps là, les mathématiciens cherchent...

Et pour cause : un millions de dollars est prévu pour la personne qui arrivera à démontrer que P=NP, ou arrivera à démontrer son contraire.
Et pourtant, c'est facile de le démontrer : il suffit simplement de trouver un algorithme polynomial qui résolve un problème Np-complet (Ou alors montrer que pour un problème NP-complet précis, il est impossible de trouver un algorithme polynomiale qui réponde à la question).
Ce qui est bien avec les problèmes NP-complets, c'est qu'il sont tous plus ou moins pareils : en résoudre un, c'est la même chose que tous les résoudre. Montrer que un seul est polynomial, c'est montrer qu'ils le sont tous... Idem pour l'inverse.
Bon, c'est pas forcément évident, à vrai dire, mais c'est faisable, avis aux amateurs...
(Enfin, c'est en théorie à la portée des amateurs en cherchant une démonstration du type évoqué ci-dessus, mais tout porte à croire que si la démonstration existe, elle porterait plutôt sur les définitions précises des diverses classes)

Et en attendant d'avoir une démonstrations, qu'en pensent les mathématiciens ?... Un sondage (encore un...) a été réalisé en 2002 sur la question :
45 % pensent que la question sera résolue avant 2050
27 % pensent qu'elle sera résolue après
5% pensent qu'on ne trouvera jamais, que ça sert à rien de chercher et qu'il vaudrait mieux chercher autre chose
(Et les autres ne pensent rien sur la question)

Mais ce qui est encore plus intéressant, c'est la deuxième question posée dans le sondage : "Est-ce que P=NP ?". A ça, on a :
61% pensent que P≠NP
9% pensent que P=NP
Et les 30% qui restent... pensent que c'est ni l'un, ni l'autre...

Et si la véritable réponse était là... Et si la question P=NP était indémontrable ?...
C'est tout à fait possible, Gödel a démontré 1931 qu'en mathématiques, tout n'est pas démontrable. Un théorème indémontrable (dans un système de démonstration donné) est appelé "indécidable".
Heureusement, c'est possible de démontrer que quelque chose n'est pas démontrable (c'est ça qu'est beau, en mathématiques !)...

Et que se passe-t-il si on montre que "P=NP ?" est indécidable ?... Et bien, on ne sera pas plus avancés : les ordinateurs rameront toujours autant pour trouver la réponse d'un problème compliqué, mais on pourra admettre que P≠NP, et démontrer de nouvelles choses à partir de ça...

Et pour résoudre le sudoku, on gardera le papier et le crayon. Ou alors, on peut lire un bon bouquin, les sudoku, en fait, c'est nul...


Sources :
Pour la science - n°334, août 2005

Posté par El Jj à 11:53 - Commentaires [5] - Permalien [#]
Tags : , ,



« Début   23  24  25  26  27  28  29  30  31  32    Fin »