parties d un ensemble - Algo - Programmation
Marsh Posté le 11-06-2004 à 18:38:58
Soit x un élément de E. L'ensemble des parties de E, c'est la réunion disjointe de F et G
F : l'ensemble des parties qui ne contiennent pas x
G : l'ensemble des parties qui contiennent x
Bon, c'est juste un début. J'espere que tu n'as rien contre la récursivité
Pour calculer F, tu fais ca récursivement sur E, apres lui avoir oté un x arbitraire. Il n'y aura donc pas de x dans les sous ensembles de F.
Pour calculer G, tu prends F et tu ajoutes un x a chaque sous ensemble.
Marsh Posté le 11-06-2004 à 19:34:32
oui, j'avais cette idée la en tête, mais je dois alors mal le transcrire dans le language que j'utilise, c'est à dire caml.
Je pense que j'appliquais la récurrence à chaque sous partie F et G comme tu le dis , mais ça ne marche pas et je vois pas le probleme.
Car je dois ensuite récupérer tous les ensembles trouver et c'est la que ça coince
Marsh Posté le 11-06-2004 à 22:47:35
Du Caml, excellent!
Poste ton code, si y'en a pas trop...
Marsh Posté le 11-06-2004 à 22:48:10
xara a écrit : oui, j'avais cette idée la en tête, mais je dois alors mal le transcrire dans le language que j'utilise, c'est à dire caml. |
poste poste !
Marsh Posté le 11-06-2004 à 22:56:03
Bon allez, j'ai pas pu m'empecher...
Code :
|
Marsh Posté le 12-06-2004 à 12:52:40
ok merci pour l'aide.
(moi j'avais fait un truc du style
let rec parties liste=
match liste with
[]->[[]]
|t::q->(t:parties q))@(parties q);;
mais en effet ça marchait pas trop )
Il me reste plus qu'à faire la fonction totale ( celle ci étant juste une fonctin auxiliaire)
Marsh Posté le 12-06-2004 à 12:58:21
Ben t'étais pas loin sauf que quand tu fais
Code :
|
tu lui demandes d'ajouter un élément (qui n'est pas une liste) a une liste de listes. Normal que ca passe pas
Marsh Posté le 11-06-2004 à 18:28:07
Salut,
Je dispose d'un ensemble à n éléments ( les éléments étant placés dans une liste) et je voudrai avoir un algo qui me retourne les 2^n parties de cet ensemble dans une liste.
Si vous pouviez m'éclairer un peu.. merci d'avance