28.01.2015 Views

TP noté

TP noté

TP noté

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Université de Provence<br />

Année 2010/11<br />

Ce <strong>TP</strong> est noté :<br />

• qualité du code et de l’architecture fonctionnelle<br />

• présence de commentaires<br />

• degré de fonctionnement et résistance aux tests<br />

<strong>TP</strong> noté<br />

Licence math-info 2 e année S3<br />

Fondements de l’informatique<br />

1 Arrangements<br />

Le nombre d’arrangements (suite de k éléments distincts choisis dans un ensemble de n éléments) que l’on peut faire<br />

est noté A k n et vaut<br />

n!<br />

(n−k)! .<br />

1. Écrire un fonction calculant A k n et ayant comme paramètres les deux entiers n et k.<br />

2 Relation d’équivalence<br />

On rappelle qu’une relation d’équivalence ≡ est :<br />

1. transitive, c’est-à-dire que ∀a, b, c ∈ E, a ≡ b et b ≡ a → a ≡ c ;<br />

2. réflexive, c’est-à-dire que ∀a ∈ E, a ≡ a ;<br />

3. symétrique, c’est-à-dire que ∀a, b ∈ E, a ≡ b ⇔ b ≡ a.<br />

Soit une relation binaire R sur N k = {1, 2, . . . , k} donnée sous la forme d’une matrice booléenne (diagramme<br />

cartésien) de taille k × k.<br />

1. Écrire une fonction testant si R est une relation d’équivalence. La fonction prendra en paramètre la matrice<br />

booléenne de la relation et renverra True si la relation une une relation d’équivalence et False sinon.<br />

2. Écrire une fonction renvoyant la partition de N k en classes d’équivalence d’une relation d’équivalence ≡ sous<br />

forme d’une liste de listes (chaque liste correspondant à une partie).<br />

⎛<br />

⎜<br />

⎝<br />

1 0 0 1 0<br />

0 1 1 0 1<br />

0 1 1 0 1<br />

1 0 0 1 0<br />

0 1 1 0 1<br />

⎞ ⎛<br />

⎟ ⎜<br />

⎠ ⎝<br />

1 0 0 1 0<br />

0 1 0 0 1<br />

0 1 1 0 1<br />

1 0 0 1 0<br />

0 1 1 0 1<br />

La matrice de gauche correspond à une relation d’équivalence ayant comme partition en classes d’équivalences<br />

{{1, 4}, {2, 3, 5}}. La matrice de droite ne correspond pas à une relation d’équivalence.<br />

⎞<br />

⎟<br />

⎠<br />

3 Passer d’une relation antisymétrique à une relation d’ordre<br />

On rappelle qu’une relation d’ordre ≼ est :<br />

1. transitive, c’est-à-dire que ∀a, b, c ∈ E, a ≼ b et b ≼ a → a ≼ c ;<br />

2. réflexive, c’est-à-dire que ∀a ∈ E, a ≼ a ;<br />

3. antisymétrique, c’est-à-dire que ∀a, b ∈ E, a ≼ b et a ≠ b ⇒ b ⋠a.<br />

On cherche à obtenir une relation d’ordre ≼ à partir d’une relation antisymétrique R. Pour cela, on va compléter la<br />

relation R en mettant en relation dans ≼ des couples d’éléments qui n’étaient pas en relation dans R. Dans la matrice<br />

(diagramme cartésien) de la relation R, cela revient à changer certains des 0 en 1. Chacune de ces modifications dans<br />

la relation s’appelle complétion.<br />

Soit une relation antisymétrique R sur N k = {1, 2, . . . , k} donnée sous la forme d’une matrice booléenne de taille<br />

k × k.<br />

1


1. Écrire une fonction renvoyant la matrice (diagramme cartésien) d’une relation réflexive O obtenue par complétion<br />

minimale de R, c’est-à-dire qu’il ne doit pas exister de relation réflexive O ′ obtenue à partir de R avec strictement<br />

moins de complétions.<br />

2. Écrire une fonction renvoyant la matrice (diagramme cartésien) d’une relation d’ordre ≼ obtenue par complétion<br />

minimale d’une relation O réflexive et antisymétrique, c’est-à-dire qu’il ne doit pas exister de relation d’ordre ≼ ′<br />

obtenue à partir de O avec strictement moins de complétions.<br />

⎛<br />

⎜<br />

⎝<br />

1 1 0 0 1<br />

0 0 0 0 0<br />

0 0 0 1 0<br />

1 0 0 1 0<br />

0 0 0 0 1<br />

⎞ ⎛<br />

⎟ ⎜<br />

⎠ ⎝<br />

1 1 0 0 1<br />

0 1 0 0 0<br />

0 0 1 1 0<br />

1 0 0 1 0<br />

0 0 0 0 1<br />

⎞ ⎛<br />

⎟ ⎜<br />

⎠ ⎝<br />

1 1 0 0 1<br />

0 1 0 0 0<br />

1 1 1 1 1<br />

1 1 0 1 1<br />

0 0 0 0 1<br />

La matrice de gauche correspond à une relation antisymétrique R. La matrice au centre correspond à la relation<br />

réflexive O obtenue par complétion minimale de la relation R. La matrice de droite correspond à la relation d’ordre<br />

≼ obtenue par complétion minimale de la relation O.<br />

⎞<br />

⎟<br />

⎠<br />

2

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!