2017-10-20 29 views
1

Étant donné un ensemble A avec 10 éléments, comment trouver le nombre de relations d'équivalence en utilisant des instructions if imbriquées? Tout d'abord, nous pouvons considérer l'ensemble 12,3, ..., 10 pour notre but. Cela fera la même chose.Calculer le nombre de relations d'équivalence pour un ensemble ayant 10 éléments

Nous pouvons créer un tableau de taille 10 × 10 de sorte que nous obtenons toutes les combinaisons de 2 éléments de 1,2,3, ..., 10. Notez que la diagonale de la matrice carrée contient (a, a) pour tout a {1,2,3 ..., 10}. Donc, 2 à la puissance: la moitié supérieure de la diagonale + la diagonale donne un compte des relations symétriques. Comment utiliser sinon les conditions de la programmation pour compter le nombre total de relations d'équivalence? J'essaie d'utiliser l'une des moitiés supérieure ou inférieure en fait. Cela réduirait la complexité temporelle du programme, mais comme je ne l'ai pas terminé, je ne peux pas commenter plus.

L'algorithme du pire cas est peut-être de créer un tableau 2D et de vérifier en utilisant if-else si les deux symétriques et transitives sont satisfaites ou non. Mais cela utiliserait O (n²). J'essaie d'obtenir un meilleur algorithme.

+0

Um ... "Nombre de relations d'équivalence" - qu'est-ce que cela veut dire? Le problème typique d'un étudiant consisterait à prendre * une relation d'équivalence donnée donnée * et à compter le nombre de * classes d'équivalence * dans un ensemble. Est-ce ce dont vous parlez? Ou s'agit-il d'autre chose? – AnT

+0

C'est ce que je voulais dire: https://fr.m.wikipedia.org/wiki/Equivalence_relation –

+0

C'est aussi ce que je voulais dire. Et je ne comprends toujours pas ce que vous entendez par "calculer le nombre de relations d'équivalence". Le nombre de relations d'équivalence différentes pour un ensemble d'éléments 'N' est exactement le nombre de façons de diviser cet ensemble original en sous-ensembles (le nombre de * partitions *). Ce numéro est appelé ** numéro de Bell ** (https://fr.wikipedia.org/wiki/Bell_number, l'article mentionne explicitement les relations d'équivalence). Le nombre est connu pour être '115975' pour un ensemble de' 10' éléments. Est-ce ce que vous cherchez? Mais je ne vois pas ce que "si déclarations" ont à voir avec cela. – AnT

Répondre

2

Il existe une bijection entre les relations d'équivalence sur un ensemble et les partitions de l'ensemble. Compter le nombre de relations d'équivalence revient à compter le nombre de partitions. Le nombre de partitions d'un ensemble avec n éléments est le Bell Number B_n.

Il existe une formule de relation de récurrence et aucun besoin de if/then/else imbriqué. Veuillez mettre à jour votre question afin de préciser ce que vous essayez de réaliser et quelles sont vos contraintes sur la solution.

+0

Je connais le concept de partition/numéros de Bell. Mais j'aimerais trouver le moyen de le faire en utilisant if/else imbriqué. –

+0

@ thomasdickens112 Qu'entendez-vous par «le faire»? – fjardon

+0

Je veux dire la procédure pour le faire en utilisant if/else imbriqué au lieu d'utiliser les numéros de Bell. Quelques indices m'aideraient aussi. –