| > | restart; |
| > | Exercice 1 |
Question a
| > | ens:=proc(E,f)
local n,i,s; n:=nops(E);s:=NULL; for i from 1 to n do if f[i]=1 then s:=s,E[i]; fi; od; {s}; end: |
| > | ens([a,b,c,d,e,f],[1,1,0,0,0,1]); |
| > |
Question b
| > | ens2:=proc(E,l)
local n,s; n:=nops(l); s:={seq(E[l[k]],k=1..n)}; end: |
| > | ens2([a,b,c,d,e,f],[1,3,4,5]);
|
| > |
Question c
| > | ens3:=proc(E,l,k)
local i,n,s; n:=nops(l);s:=NULL; for i from 1 to n do if l[i]=k then s:=s,E[i]; fi; od; {s}; end: |
| > | ens3([a,b,c,d],[3,2,2,1],2); |
| > |
Question d
| > | colle:=(d,z)->[d,op(z)]: |
| > | colle(a,[u_1,u_2,u_3]); |
Question e
| > | map2(colle,1,{[0,1],[1,0]}); |
| > |
Exercice 2
Question a
| > | parties:=proc(n) options remember;
local gauche,droite,p; if n=0 then p:={[]} else on construit les parties de E à n éléments à partir de celles E'= E privé du premier élément noté 0 gauche:=map2(colle,0,parties(n-1)); gauche contient toutes les parties E' vues comme des parties de E droite:=map2(colle,1,parties(n-1)); droite contient toutes les parties de E' aux quelles on ajoute l'élément 0 p:={op(gauche),op(droite)}; on fusionne ces deux ensembles de parties fi; end: |
| > | parties(3); |
Question b
| > | map2(ens,[a,b,c,d],parties(4)); |
| > |
Exercice 3
Question a
| > | combinaison:=proc(n,k) options remember;
local gauche,droite,combi; if is(n<0) or is(k<0) or is(k>n) then combi:={}; dans ce cas le problème n'a pas de solution elif n=0 or k=0 then combi:={[]}; dans ce cas seule l'ensemble vide convient taiter le cas n=k est inutile car on le cas k>n ou n<0 ou k<0 suffit à compenser cette absence On considère E'=E privé du dernier element noté n else gauche:=combinaison(n-1,k); gauche contient les combinaisons à k éléments de E', vues comme des combinaisons de E droite:=combinaison(n-1,k-1); droite contient les combianisons à k-1 éléments de E' droite:=map2(colle,n,droite); on ajoute aux combinaisons de droite, l'élémént n combi:={op(gauche),op(droite)}; on fusionne les ensembles de combinaisons droite et gauche fi; combi; end: |
| > | combinaison(4,2); |
| > |
Question b
| > | map2(ens2,[a,b,c,d,e],combinaison(5,3)); |
| > |
| > |