• Aucun résultat trouvé

1 Exercise 1 1.

N/A
N/A
Protected

Academic year: 2022

Partager "1 Exercise 1 1."

Copied!
3
0
0

Texte intégral

(1)

1 Exercise 1

1. static int N = 16;

2. 0

3. static boolean equal(List X, List Y) { List l1 = X;

List l2 = Y;

while (l1 != null && l2 != null && l1.hd == l2.hd) { l1 = l1.tl;

l2 = l2.tl;

}

return l1 == l2;

}

4. static int base10(List X) { int res = 0;

List l = X;

while(l != null) { res = res*N+l.hd;

l = l.tl;

}

return res;

}

2 Exercise 2

1. static boolean[] T = new boolean[n];

2. static void imprimeEnumeration(int n, boolean[] T) { if (n<1)

imprime(T);

else {

T[n-1] = false;

imprimeEnumeration(n-1,T);

T[n-1] = true;

imprimeEnumeration(n-1,T);

} } 3. Θ(n2n)

3 Exercise 3

1. (a) ¬x1

(b) new BooleanExpr(2,0,false, new BooleanExpr(3,0,false,

new BooleanExpr(0,0,false,null,null),

new BooleanExpr(2,0,false,new BooleanExpr(0,1,false,null,null),null)),null);

(c) BooleanExpr(int v) {

select = 0; Var = v; Cste = false; argg = null; argd = null;

}

1

(2)

BooleanExpr(boolean c) {

select = 1; Var = 0; Cste = c; argg = null; argd = null;

}

BooleanExpr(BooleanExpr x, BooleanExpr y) {

select = 3; Var = 0; Cste = false; argg = x; argd = y;

}

(d) static BooleanExpr Non(BooleanExpr x) { return new BooleanExpr(2,0,false,x,null);

}

static BooleanExpr Ou(BooleanExpr x, BooleanExpr y) { return Non(new BooleanExpr(Non(x),Non(y)));

}

static BooleanExpr Implique(BooleanExpr x, BooleanExpr y) { return Ou(Non(x),y);

}

2. (a) static boolean eval(BooleanExpr E, boolean[] T) { switch(E.select) {

case 0: return T[E.Var];

case 1: return E.Cste;

case 2: return !(eval(E.argg,T));

case 3: return eval(E.argg,T) ? eval(E.argd,T) : false;

case 4: return eval(E.argg,T) ? true : eval(E.argd,T);

default: return false;

} }

(b) static boolean enumereSAT(BooleanExpr E, int n, boolean[] T) { if (n<1)

return eval(E,T);

else {

T[n-1] = false;

boolean res = enumereSAT(E,n-1,T);

T[n-1] = true;

return res && enumereSAT(E,n-1,T);

} }

static boolean SAT(BooleanExpr E) { boolean[] T = new boolean[N];

return enumereSAT(E,N,T);

} (c) Θ(k), Θ(k2n)

3. (a) static BooleanExpr Neg(BooleanExpr E) { switch(E.select) {

case 0: case 1: return Non(E);

case 2: return E.argg;

case 3: return new BooleanExpr(4,0,false,Neg(E.argg),Neg(E.argd));

2

(3)

case 4: return new BooleanExpr(Neg(E.argg),Neg(E.argd));

default: return E;

} }

static BooleanExpr NNF(BooleanExpr E) { switch (E.select) {

case 0: case 1: return E;

case 2: return Neg(NNF(E.argg));

case 3: return new BooleanExpr(NNF(E.argg),NNF(E.argd));

case 4: return new BooleanExpr(4,0,false,NNF(E.argg),NNF(E.argd));

default: return E;

} }

(b) static BooleanExpr simplifier(BooleanExpr E) { if (E==null)

return E;

else {

BooleanExpr e1 = simplifier(E.argg);

BooleanExpr e2 = simplifier(E.argd);

switch (E.select) {

case 2: return (e1.select==2) ? e1.argg : Non(e1);

case 3:

switch (e1.select) { case 0:

if (e2.select == 0 && e1.Var==e2.Var) return e1;

else return new BooleanExpr(e1,e2);

case 1:

return e1.Cste ? e2 : new BooleanExpr(false);

} case 4:

switch (e1.select) { case 0:

if (e2.select == 0 && e1.Var==e2.Var) return e1;

else return new BooleanExpr(e1,e2);

case 1:

return e1.Cste ? new BooleanExpr(true) : e2;

}

default: return E;

} } }

3

Références

Documents relatifs

The battery pack should be incorporated under the chassis and put inside a metallic box (having a square shape with no cover). In order to built this metallic box, the

Complète cette série statistique de sorte que sa moyenne soit égale à 15.. Complète cette série statistique de sorte que sa moyenne soit égale

Complète cette série statistique de sorte que sa moyenne soit égale à 15.. Complète cette série statistique de sorte que sa moyenne soit égale

préfages. Leurs chiens attaqués par ceux des Bourguignons, les battirent &amp; les obligèrent à fe réfugier derrière leurs maîtres. is du foleil.. Lune le tg préfage

avant que la mort vieiwe mettre fin à leurs tourments. Après un séjour de plus de deux mois à Sac- latoo, notre voyageur désirant retourner à Kouka pour y rejoindre

Let k be an

pistes de lecture de Raphaël Billé fistes de lecture de Philippe cury pistes de lecture de Michel Loreau plstes de lecture de Virginie Maris.. ',./,/ Dans une indifférence

On suppose que cette fonction existe et on ne cherchera pas à donner une expression