jueves, 25 de enero de 2007

Solución Cifras en Prolog

Aquí deixovos o código que fixen para Cifras (o de cifras e letras) en prolog:

%Suma,Resta ou Multiplica os elementos dunha lista
%Caso base: cando chega ao último número da lista inicializa
%o resto dos valores a ese número

resultado([X],X,X).

%Resto dos casos: Como fago backtracking a operación analízase despois do
%caso base xunto coa expresión, posto que está despois da chamada recursiva.

resultado([X|L],Res,Expr):-
resultado(L,X1,Expr2),Res is X1+X,Expr = (Expr2 + X).
resultado([X|L],Res,Expr):-
resultado(L,X1,Expr2),Res is X1-X,Expr = (Expr2 - X).
resultado([X|L],Res,Expr):-
resultado(L,X1,Expr2),Res is X1*X,Expr = (Expr2 * X).


%Inicio do exercicio onde se pasa a lista cos números,
%o resultado que se quere obter e unha variable Expr
%onde se devolve a solución en forma de expresión.

cifras(L,R,Expr):-

%Permuta a lista para ter todas as posibilidades posibles
permutation(L,Z),

%Crea todas as posibles sublistas:
append(S,_,Z),

%Chamo á función resultado
resultado(S,Res,Expr),

%Fago isto para que na solución só me aparezan os
%valores iguais á variable R
R=:=Res.

Omnibook

O outro día investigando para o ordenador do meu compañeiro de piso, púxenme a trastear un pouco polo web a ver se atopaba a maneira de poñerlle a regulación de brillo no seu Toshiba M40x, atopei un módulo chamado omnibook, compileino e conseguinlle poñer a regulación do brillo. Informar que o módulo que está dentro do kernel: toshiba_acpi non funciona con BIOS phoenix.
A páxina de Omnibook é: Omnibook .
Ahí xa vos explica como tendes que facer para instalalo, o típico: make, make install, modificar o /etc/modules e explícavos tamén como tendes que facer para empregalo.
Saúdos.