Journal d'un Terrien

Web log de Serge Boisse

On line depuis 1992 !

Publicité
Si cette page vous a plu, Copiez son adresse et partagez-la !
http://sboisse.free.fr/science/maths/Mes Recherches mathematiques/Integrale de parite.php
Savez-vous quels sont les articles les plus vendus sur Amazon.fr ?
Intégrale de parité
science > maths > Mes Recherches mathématiques > Intégrale de parité

Intégrale de parité

Voir aussi: mettre ici des notes entre [[]] vers des sujets voisins
What comes next Méthode de Newton(lien privé)

Pasted image 20250310100311.pngLa découverte de l'intégrale de parité est due au regretté Gérard Langlet. Il écrivait ses programmes en APL, ce qui les rend difficile à comprendre.
Mais le principe est très simple :

il s'agit de la propagation de la différence (en APL : \#) appliquée à un vecteur binaire. La fonction intégrale de parité est l'inverse du Code Gray.

Extrait (modifié) du site

Au moment ou il a fait cette découverte, Langlet s'intéressait au langage informatique APL. Ce nom ne vous dit peut-être rien, pourtant il s'agit d'un des premiers langages de programmation, presque aussi vieux que Cobol, Lisp, Basic, Fortran et PL/1. APL n'a pas eu le succès qu'il méritait, sans aucun doute parce qu'il nécessite un clavier spécial. En effet, ce langage, ultra puissant pour la construction de fonctions et d'expressions mathématiques, et en particulier le calcul matriciel, permet de définir tout fonction d'une manière extrêmement condensée, sous forme d'une chaîne de symboles ésotériques (APL est aussi réputé pour être illisible par les profanes) mais ultra-courte. Des fonctions qui nécessitent des pages de code C ou java (des langages "modernes") s'écrivent très souvent en APL sur une seule ligne !

En APL, l'opérateur binaire "#" signifie "différence". Ainsi 1#2 vaut 1 (1 est équivalent à "vrai" en APL), 1#1 vaut 0 parce que le 0 signifie aussi "faux" en APL (comme en Basic). Lorsqu'il est appliqué un un vecteur binaire (une chaîne de bits, valant chacun 0 ou 1), l'opérateur # est équivalent au XOR bit par bit des langages informatiques modernes (opérateur généralement noté "^" ). Ainsi 1 0 0 1 0#0 1 0 1 0(APL) = 18^10(Java) = = .

Mathématiquement, nous écrirons

En APL, le même opérateur a souvent un sens différent lorsqu'il a un ou deux arguments. Par exemple avec un seul argument qui est un vecteur de nombres, "#" signifie "faire les différences successives entre les nombres". Ainsi #2 3 4 vaut 1, parce que #2 3 vaut 1 (en effet 2 est différent de 3) et # 1 4 vaut 1 parce que 1 est différent de 4. Lorsque l'argument est une chaîne de bits, ou un nombre codé en binaire, # est l'opérateur (unaire ou binaire) parité : #100110 vaut 1 parce que le nombre de bits "1" est impair.

Gérard Langlet s'intéressait à l'opérateur APL de balayage, noté "" en APL : cet opérateur unaire prend en argument une fonction à deux arguments, et applique cette fonction entre tous les nombres d'un vecteur. Ainsi en APL "+1 2 3 4" renvoie la valeur 10, somme des quatre nombres 1, 2, 3, et 4. De même "* 1 2 3 4" renvoie la valeur 24, produit de ces quatre nombres.

Langlet a donc essayé de trouver les propriétés de l'opérateur suivant : \#. Cette fonction s'interprète ainsi : "Balayer successivement tous les bits du nombre et appliquer l'opérateur # entre chaque bit et le résultat obtenu pour le bit précédent".

Langlet l'a appelé propagation de la parité", ou encore intégrale de parité, pour des raisons que nous n'expliquerons pas ici. Par exemple #\1010 effectue les opérations suivantes :

  • On prend le premier bit à gauche de "1010", qui vaut 1. 
  • On applique # entre ce 1 et le second bit, qui vaut 0, le résultat est  1 parce que 1#0=1 
  •  on applique encore une fois # entre ce résultat 1 et le troisième bit (1), le résultat est 0
  •  puis une dernière fois entre ce 0 et le dernier bit(0), le résultat est encore 0. 
  • On collecte tous les résultats intermédiaires : 1100. C'est le résultat de l'opération #\1010

En langage mathématiques, et parce que APL est (quand même) un peut démodé 😉 nous noterons L'opérateur de propagation de parité : donc

Paritons

Langlet s'est alors demandé ce qui se passait en itérant à nouveau la propagation de la parité sur ce résultat, et ainsi de suite. On obtient une séquence cyclique de nombres (on revient toujours sur le nombre de départ), que Langlet a appelé le Pariton du nombre de départ.

Ainsi, en partant de "10110011", on obtient :

1	0	1	1	0	0	1	1
1	1	1	0	1	0	1	0
1	0	0	1	1	1	1	1
1	1	0	1	0	0	0	0
1	0	1	1	1	0	0	0
1	1	1	0	0	1	0	0
1	0	0	1	0	1	1	0
1	1	0	1	1	1	0	1
1	0	1	1	0	0	1	1

#TBC calcul faux (gray)
la suite est périodique. Si l'on part d'un nombre N, dont le nombre "1" est m (on l'appelle la masse du nombre N), alors la taille du cycle est la première puissance de 2 supérieure ou égale à m.

Dans l'exemple, ci-dessus m=5 et la période est 8.

Génitons

en partant de "111111", on obtient :

1	1	1	1	1	1
1	0	0	0	0	0
1	1	0	0	0	0
1	0	1	0	0	0
1	1	1	1	0	0
1	0	0	0	1	0
1	1	0	0	1	1
1	0	1	0	1	0
1	1	1	1	1	1

cf le calculateur excel : pariton.xls (Fichier sur D)(lien privé)
#TBC calcul faux

Les paritons issus des séquences 111... sont appelés Génitons . En partant de d'un nombre de bits "1" en nombre , on obtient le géniton d'ordre , noté

De telles structures sont récursives et même fractales : les seize nombres situés dans le coin supérieur gauche du géniton-8  constituent précisément  le géniton-4. En fait le géniton d'ordre 8 est précisément composé de :
G4 G4
G4 Z4
où Z4 est la matrice 4x4 remplie uniquement de zéros.
Voici une image du géniton G(256)

Pasted image 20220921164105.png

On remarque qu'il s'agit d'une structure en tapis de Sierpinski, bien connu des matheux parce qu'il s'agit de la représentation de la parité des nombres dans un triangle de Pascal.

Fanion, Hélicon, Cogniton

On peut également disposer les différences en triangle, ce que Langlet appelait le fanion :

	1 0 1 1 0 0 1 1 1 0 0  Bi
	 1 1 0 1 0 1 0 0 1 0
	  0 1 1 1 1 1 0 1 1
	   1 0 0 0 0 1 1 0
	    1 0 0 0 1 0 1
	     1 0 0 1 1 1
	      1 0 1 0 0
	       1 1 1 0
	        0 0 1
	         0 1 
	          1

Ce qui fait penser au triangle de Pascal et au What comes next Méthode de Newton(lien privé)

Langlet appelle "signal binaire" le sommet de ce triangle, et Hélicon le coté gauche, 1101111001 . Il nommait aussi Cogniton le coté droit, lu de bas en haut : 11100110100

On peut aussi les retrouver à partir du pariton de B :

[1] 0	1	1	0	0	1	1	1	0  (0)
 1 [1]	1	0	1	0	1	0	0	1  (0)
 1	0  [0]	1	1	1	1	1	0	1  (1)  ()
 1	1	0  [1]	0	0	0	0	1	1  (0)   N
 1	0	1	1  [1]	0	0	0	1	0  (1)   O
 1	1	1	0	0  [1]	0	0	1	1  (1)   T
 1	0	0	1	0	1  [1]	0	1	0  (0)   I
 1	1	0	1	1	1	0  [1]	1	1  (0)   N
 1	0	1	1	0	0	1	1  [0]	0  (1)   G
 1	1	1	0	1	0	1	0	1  [0] (1)   O
 1	0	0	1	1	1	1	1	1	1 [(1)]  C
 1	1	0	1	0	0	0	0	0	0	0  [hélicon]
 1	0	1	1	1	0	0	0	0	0	0
 1	1	1	0	0	1	0	0	0	0	0
 1	0	0	1	0	1	1	0	0	0	0
 1	1	0	1	1	1	0	1	0	0	0
 1	0	1	1	0	0	1	1	1	0	0

Langlet a découvert les relations suivantes :

relations de Langlet

Voir aussi :

Publicité
Commentaires

Commentaires (0) :

Page :



Ajouter un commentaire (pas besoin de s'enregistrer)

Pseudo :
Message :


image de protection
En cliquant sur le bouton "Envoyer" vous acceptez les conditions suivantes : Ne pas poster de message injurieux, obscène ou contraire à la loi, ni de liens vers de tels sites. Respecter la "netiquette", ne pas usurper le pseudo d'une autre personne, respecter les posts faits par les autres. L'auteur du site se réserve le droit de supprimer un ou plusieurs posts à tout moment. Merci !
Ah oui : le bbcode et le html genre <br>, <a href=...>, <b>b etc. ne fonctionnent pas dans les commentaires. C'est voulu.
< Retour en haut de la page