Probleme serieux,.. les maths

martani Messages postés 48 Statut Membre -  
martani Messages postés 48 Statut Membre -
Bonjour,
quand on donnes un enfant un ensemble (mathématique bien sure) et on demande les sous ensemble de cet ensemble, il va faire quoi? ok il nous donne les parties mais meme les humain ne sais pas comment le cerveau se brouille pour avoir des solutions au problème.
alors mon probleme c le suivant
pour n entier donné on cherche les solutions de a1+a2+....=n avec les a dans un ensemble l et l'ordre des a compte
par exemple si l={1,2} et n=4
donc les solutions:
2+2;
2+1+1
1+2+1
1+1+2
1+1+1+1

et l'autre probleme c
on a un ensemble E a n element on cherche les ensemble des parties deux a deux disjoints et de taille dans la liste l et dont l'union et E.
exemple E={a,b,c} et l={2,1} donc la solution c
{{a},{b},{c}},{{a},{b,c}},{{b},{a,c}},{{c},{a,b}}

j'espere que vous pouvez m'aider en plus si les sol sont dans un language fonctionnel ça serai mieux
Configuration: Windows Vista
Firefox 3.0.3

1 réponse

  1. martani Messages postés 48 Statut Membre
     
    salut a tous voici l'algo su premier probleme mais il compte pas l'ordre c implementer en OCAML

    let rec ajout a l=
      match l with
      []->[]
      |x::s->[a::x]@(ajout a s);;
    	
    let rec enum n p=
    	if n<=0 then [[]]
    	else
    		begin
    		if p=[] then []
    		else
    			begin
    				let x::s=p in
    					if x<=n then (ajout x (enum (n-x) p))@(enum n s)
    					else enum n s
    			end
    		end;;


    voila et
    enum 4 [1;2]
    donne
    [[2;2];[1;1;1;1];[1;1;2]];;


    i wish that help
    0