Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

EXTENSION DE CORPS (MATH)


Information sur la source

Catégorie :Maths & Algorithmes Classé sous : corps, extension, fini, irréductible, générique Niveau : Débutant Date de création : 15/01/2008 Vu / téléchargé: 2 771 / 55

Note :
7 / 10 - par 1 personne
7,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (2)
Ajouter un commentaire et/ou une note


Description

Voici un petite programme qui permet de gerer des corps de facon generique.
On peut obtenir des corps classiques comme les reels, les rationnels, ou
encore les corps finis Z/pZ (avec p premier). A partir de cela on peut
constuire des polynomes sur un corps, et puis faire des extensions de corps
a partir d'un polynome irreductible... on construit d'autres corps, comme
les complexes et des corps finis a 4,16,256,3,9,27... elements !!

Un petit detour dans le monde merveilleux des mathematiques :
Soit K un corps, et P un polynome irreductible de degre n sur K.
K[X] est l'anneau des polynomes a coefficients dans K. On note
K[X]/P la classe residuelle modulo P des polynomes de K[x],
autrement dit on considere seulement les restes des divisions
euclidiennes par P. (Autrement mathematiquement-pompeusement dit : on
quotiente l'ensemble K[X] par la relation d'equivalence A~B<=>P|A-B, et
on prend comme representant des classes d'equivalences le polynome de
degre strictement inferieur a n)

Noton L=K[X]/P cette ensemble. L est muni naturellement de l'addition,
soustraction, multiplication, regles d'associativite et de distributivite,
... et surtout de l'inverse (et donc de la division pour tout element non-nul)
La relation de bezout entre un polynome non-nul et P donne : XU+PV=PGCD(X,P)=1
car P est irreductible, dont premier avec tout polynome de degre strictement
inferieur a n. Ainsi "modulo P" on a XU=1, U est donc l'inverse de X dans L.
L est donc muni d'une structure de corps. Et L est un espace vectoriel sur K
de dimension n.

Dans le cas des corps finis, ceci montre que si K=Z/pZ, alors L est un corps
a p^n elements... reste a demontrer qu'il existe bien un polynome irreductible
de degre n... c'est un autre probleme !




La genericite du code pour la strucutre de corps ('FIELD') permet aisement de
construire c'est sur-corps, ce programme met bien en oeuvre l'utilisation
des extensions de corps.

C=R[X]/X^2+1 est le corps des complexes
Q[racine de deux] ) Q[X]/X^2-2
F16 = F2[X]/X^4+X+1 est le corps (a isomorphisme pres il est unique) a 16 elements
 

Source

  • ---------------
  • corps des reels
  • ---------------
  • x = +3.14159
  • y = +2.00000
  • x+y = +5.14159
  • x-y = +1.14159
  • x*y = +6.28319
  • x/y = +1.57080
  • -------------------
  • corps des complexes
  • -------------------
  • x = +0.000+1.000.i
  • y = +0.000+1.414.i
  • x+y = +0.000+2.414.i
  • x-y = +0.000-0.414.i
  • x*y = -1.414+0.000.i
  • x/y = +0.707+0.000.i
  • --------------------
  • corps des rationnels
  • --------------------
  • x = +1/3
  • y = -9/5
  • x+y = -22/15
  • x-y = +32/15
  • x*y = -3/5
  • x/y = -5/27
  • ----------
  • corps Z/7Z
  • ----------
  • x = 3
  • y = 6
  • x+y = 2
  • x-y = 4
  • x*y = 4
  • x/y = 4
  • ---------------------
  • polynomes (complexes)
  • ---------------------
  • A = (-1.000+0.000.i) + (+1.000+0.000.i).X^4
  • B = (+0.000+1.000.i) + (+1.000+0.000.i).X
  • A+B = (-1.000+1.000.i) + (+1.000+0.000.i).X + (+1.000+0.000.i).X^4
  • A*B = (+0.000-1.000.i) + (-1.000+0.000.i).X + (+0.000+1.000.i).X^4 + (+1.000+0.000.i).X^5
  • A/B = (+0.000+1.000.i) + (-1.000+0.000.i).X + (+0.000-1.000.i).X^2 + (+1.000+0.000.i).X^3
  • A%B = +0.000+0.000.i
  • -------------------------
  • bezout (Z/5Z) : A.U+B.V=G
  • -------------------------
  • A = (4) + (1).X + (4).X^2 + (1).X^3
  • B = (1).X + (1).X^2 + (1).X^3 + (1).X^4
  • U = (4) + (2).X
  • V = (3)
  • G = (1) + (1).X^2
  • ---------------------------------
  • extension de corps : C=R[X]/X^2+1
  • ---------------------------------
  • A = (+1.00000)
  • B = (+1.00000).j
  • A+B = (+1.00000) + (+1.00000).j
  • 1/(A+B) = (+0.50000) + (-0.50000).j
  • ------------------------------------------
  • extension de corps : Q[sqrt(2)]=Q[X]/X^2-2
  • ------------------------------------------
  • A = (+5/3)
  • B = (+1/1).sqrt(2)
  • A+B = (+5/3) + (+1/1).sqrt(2)
  • 1/(A+B) = (+15/7) + (-9/7).sqrt(2)
  • ---------------------------------------
  • extension de corps : F16=(Z/2Z)/X^4+X+1
  • ---------------------------------------
  • A^ 1 = (1).a
  • A^ 2 = (1).a^2
  • A^ 3 = (1).a^3
  • A^ 4 = (1) + (1).a
  • A^ 5 = (1).a + (1).a^2
  • A^ 6 = (1).a^2 + (1).a^3
  • A^ 7 = (1) + (1).a + (1).a^3
  • A^ 8 = (1) + (1).a^2
  • A^ 9 = (1).a + (1).a^3
  • A^10 = (1) + (1).a + (1).a^2
  • A^11 = (1).a + (1).a^2 + (1).a^3
  • A^12 = (1) + (1).a + (1).a^2 + (1).a^3
  • A^13 = (1) + (1).a^2 + (1).a^3
  • A^14 = (1) + (1).a^3
  • A^15 = (1)
  • A^16 = (1).a
  • B^ 1 = (1) + (1).a + (1).a^2
  • B^ 2 = (1).a + (1).a^2
  • B^ 3 = (1)
  • B^ 4 = (1) + (1).a + (1).a^2
---------------
corps des reels
---------------
   x   = +3.14159
   y   = +2.00000
   x+y = +5.14159
   x-y = +1.14159
   x*y = +6.28319
   x/y = +1.57080

-------------------
corps des complexes
-------------------
   x   = +0.000+1.000.i
   y   = +0.000+1.414.i
   x+y = +0.000+2.414.i
   x-y = +0.000-0.414.i
   x*y = -1.414+0.000.i
   x/y = +0.707+0.000.i

--------------------
corps des rationnels
--------------------
   x   = +1/3
   y   = -9/5
   x+y = -22/15
   x-y = +32/15
   x*y = -3/5
   x/y = -5/27

----------

corps Z/7Z
----------
   x   = 3
   y   = 6
   x+y = 2
   x-y = 4
   x*y = 4
   x/y = 4

---------------------
polynomes (complexes)
---------------------
   A   = (-1.000+0.000.i) + (+1.000+0.000.i).X^4
   B   = (+0.000+1.000.i) + (+1.000+0.000.i).X
   A+B = (-1.000+1.000.i) + (+1.000+0.000.i).X + (+1.000+0.000.i).X^4
   A*B = (+0.000-1.000.i) + (-1.000+0.000.i).X + (+0.000+1.000.i).X^4 + (+1.000+0.000.i).X^5
   A/B = (+0.000+1.000.i) + (-1.000+0.000.i).X + (+0.000-1.000.i).X^2 + (+1.000+0.000.i).X^3
   A%B = +0.000+0.000.i
-------------------------
bezout (Z/5Z) : A.U+B.V=G
-------------------------
   A = (4) + (1).X + (4).X^2 + (1).X^3
   B = (1).X + (1).X^2 + (1).X^3 + (1).X^4
   U = (4) + (2).X
   V = (3)
   G = (1) + (1).X^2
---------------------------------
extension de corps : C=R[X]/X^2+1
---------------------------------
   A       = (+1.00000)
   B       = (+1.00000).j
   A+B     = (+1.00000) + (+1.00000).j
   1/(A+B) = (+0.50000) + (-0.50000).j
------------------------------------------
extension de corps : Q[sqrt(2)]=Q[X]/X^2-2
------------------------------------------
   A       = (+5/3)
   B       = (+1/1).sqrt(2)
   A+B     = (+5/3) + (+1/1).sqrt(2)
   1/(A+B) = (+15/7) + (-9/7).sqrt(2)
---------------------------------------
extension de corps : F16=(Z/2Z)/X^4+X+1
---------------------------------------
   A^ 1 = (1).a
   A^ 2 = (1).a^2
   A^ 3 = (1).a^3
   A^ 4 = (1) + (1).a
   A^ 5 = (1).a + (1).a^2
   A^ 6 = (1).a^2 + (1).a^3
   A^ 7 = (1) + (1).a + (1).a^3
   A^ 8 = (1) + (1).a^2
   A^ 9 = (1).a + (1).a^3
   A^10 = (1) + (1).a + (1).a^2
   A^11 = (1).a + (1).a^2 + (1).a^3
   A^12 = (1) + (1).a + (1).a^2 + (1).a^3
   A^13 = (1) + (1).a^2 + (1).a^3
   A^14 = (1) + (1).a^3
   A^15 = (1)
   A^16 = (1).a
   B^ 1 = (1) + (1).a + (1).a^2
   B^ 2 = (1).a + (1).a^2
   B^ 3 = (1)
   B^ 4 = (1) + (1).a + (1).a^2

Fichier Zip

Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

Commentaires et avis

signaler à un administrateur
Commentaire de GUIDARK le 07/05/2008 23:10:58 7/10

fun ! Vive les maths !

signaler à un administrateur
Commentaire de The Void le 17/07/2008 13:24:08

Salut,

La présentation mathématiques est très intéressante, notamment quotienter l'espace des polynômes pour avoir des inverses via Bezout, je ne connaissais pas...

Par contre peux tu mettre un executable (en renommant .ex)? le fichier .dsw ne semble pas être compatible avec ma version de VS, je n'arrive pas à compiler :s

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

attendre que le shell soit fini C++ [ par McK_N ] Salut,je veux appeler la fonction Shell et je veux que mon programe arrête jusqu'à ce que le shell soit terminé.Comment puis-je le faire avec la fonct Afficher un dialog modal dans une dll d'extension... [ par MadPlop ] J'ai cree la DLL avec une classe de dialogue (avec la ressource de dialogue associee) et une autre classe. Les fonctions de ces classes fonctionnent s attribuer icone en fonction de l'extension [ par glipper ] Bonjour, Je suis en train de travailler sur un explorateur de fichier (du style 'l'explorateur windows'), et je cherche comment attribuer les bonnes demande une application en c++ pour automate a etat fini [ par hajimohamed1 ] salut tout le monde et surtout les developpeursje suis un developpeurs en c++ j'ai en ce moment un projet qui se resume de faire une application en c extension des devdays [ par sitesref ] les devdays de codes-sources. com s'étendront-elles au voisin francophone du nord, c'est-à-dire la Belgique ?ce serait une très bonne chose car cela p modifier l'extension d'un fichier [ par oudkaramla ] bonjour j'ai un soucis:j'ai un fichier dont le nom est contenu dans une variable de type char, le probleme est que je veux changer son extensionl'exte exports Shell Extension [ par guimou ] Hello tout le monde, j'ai un problème avec une Shell Extension. Les fonctions sont déclarées avec __stdcall et j'ai mis un .def avec le nom de la lib Apprenez moi des trucs [ par 01Dawi ] Bon je vous explique le topo.A l'origine je developpe sous visual basic. J'avais pratiquement fini un utilitaire melant dessin et texte. Bref je fini Classe liste chaînée générique [ par marik7335 ] &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Salut &#224; tous, &nbsp; Je souhaite g&#233;rer un parc de v&#233;hicules contenant des motos et des voitures. File Extension [ par vez_from_hell ] Bonjourpour commencer je d&#233;veloppe un programme de texte (un peu comme bloc notes) mais je ne sais pas comment, lorsque j'enregistre un fichier,


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,562 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.