Re: Para construir un paquete que requiere interactuar con una BD?
> > Si todavía no me crees, dime una forma de satisfacer la dependencia
> > A | C, A | D, B | C, B | D en la cual no suceda que estén instalados
> > (A y B) o (C y D), como es tu objetivo.
>
> Bueno, actualmente tengo php4-mysql | php4-pgsql, mysql-client |
> postgresql-client y me parece que es equivalente a las cuatro
> combinaciones...
Pues no lo es. De esa forma es posible instalar php4-mysql para
satisfacer la primera condición y postgresql-client para satisfacer
la segunda, y dselect quedaría contento, pero eso no es lo que tú quieres.
Tú quieres que haya que instalar, o bien php4-mysql y mysql-client,
o bien php4-pgsql y postgresql-client.
> Pero no, me entendiste mal - quiero justo lo contrario. Quiero que
> _sólamente_ puedas instalarlo con A+B o con C+D, no con A+D ni con B+C.
"Oh, señor, dame paciencia... ¡pero dámela ya!"
Columna v1. Tabla de verdad de (A && B) || (C && D)
Columna v2. Tabla de verdad de (A || C) && (A || D) && (B || C) && (B || D)
A B C D v1 v2
0 0 0 0 0 0
0 0 0 1 0 0
0 0 1 0 0 0
0 0 1 1 1 1
0 1 0 0 0 0
0 1 0 1 0 0
0 1 1 0 0 0
0 1 1 1 1 1
1 0 0 0 0 0
1 0 0 1 0 0
1 0 1 0 0 0
1 0 1 1 1 1
1 1 0 0 1 1
1 1 0 1 1 1
1 1 1 0 1 1
1 1 1 1 1 1
La tabla está generada con este programa:
#include <stdio.h>
int main() {
int A, B, C, D, v1, v2;
printf("A B C D v1 v2\n");
for (A = 0; A <= 1; A++) {
for (B = 0; B <= 1; B++) {
for (C = 0; C <= 1; C++) {
for (D = 0; D <= 1; D++) {
v1 = (A && B) || (C && D);
v2 = (A || C) && (A || D) && (B || C) && (B || D);
printf("%d %d %d %d %d %d\n", A, B, C, D, v1, v2);
}
}
}
}
return 0;
}
Esto quiere decir, dado que las dos últimas columnas son siempre idénticas,
que v1 y v2 son expresiones lógicas equivalentes, que es lo que he
estado tratando de decirte desde el principio.
Si todavía te quedan dudas, compila y ejecuta tú mismo el programa,
te aseguro que no hay ningún truco.
Reply to: