Forum » Programiranje » Prolog
Prolog
Robocop1 ::
Pozdravljeni!
Potrebujem malce pomoči pri pisanju programa (seminarske naloge) v prologu.
Podanih imam več predikatov, vsak od njih sprejme 2 argumenta: število (0 - 9) in seznam števil, ki to število predstavljajo.
Na primer: code('0',[1,2,3,6,7,10,11,14,15,16]). To je le eden od predikatov.
Potem pa imam spet več predikatov, ki povedo za katero število gre, na primer: show([1,4,6,15,16]).
Pokazati bi moral torej število (izmed predikatov code), katerega seznam števil je najbolj podoben predikatu show. Izmeriti moram torej razlike - katere cifre so v nekem predikatu, pa jih v drugem ni, in obratno.
Potrebujem malce pomoči pri pisanju programa (seminarske naloge) v prologu.
Podanih imam več predikatov, vsak od njih sprejme 2 argumenta: število (0 - 9) in seznam števil, ki to število predstavljajo.
Na primer: code('0',[1,2,3,6,7,10,11,14,15,16]). To je le eden od predikatov.
Potem pa imam spet več predikatov, ki povedo za katero število gre, na primer: show([1,4,6,15,16]).
Pokazati bi moral torej število (izmed predikatov code), katerega seznam števil je najbolj podoben predikatu show. Izmeriti moram torej razlike - katere cifre so v nekem predikatu, pa jih v drugem ni, in obratno.
Blazzz ::
iz wikipedie
Dynamic programming
The following Prolog program uses dynamic programming to find the longest common subsequence of two lists in polynomial time. The clause database is used for memoization:
:- dynamic(stored/1).
memo(Goal) :- ( stored(Goal) -> true ; Goal, assertz(stored(Goal)) ).
lcs([], _, []) :- !.
lcs(_, [], []) :- !.
lcs([X|Xs], [X|Ys], [X|Ls]) :- !, memo(lcs(Xs, Ys, Ls)).
lcs([X|Xs], [Y|Ys], Ls) :-
memo(lcs([X|Xs], Ys, Ls1)), memo(lcs(Xs, [Y|Ys], Ls2)),
length(Ls1, L1), length(Ls2, L2),
( L1 >= L2 -> Ls = Ls1 ; Ls = Ls2 ).
Example query:
?- lcs([x,m,j,y,a,u,z], [m,z,j,a,w,x,u], Ls).
Ls = [m, j, a, u]
Dynamic programming
The following Prolog program uses dynamic programming to find the longest common subsequence of two lists in polynomial time. The clause database is used for memoization:
:- dynamic(stored/1).
memo(Goal) :- ( stored(Goal) -> true ; Goal, assertz(stored(Goal)) ).
lcs([], _, []) :- !.
lcs(_, [], []) :- !.
lcs([X|Xs], [X|Ys], [X|Ls]) :- !, memo(lcs(Xs, Ys, Ls)).
lcs([X|Xs], [Y|Ys], Ls) :-
memo(lcs([X|Xs], Ys, Ls1)), memo(lcs(Xs, [Y|Ys], Ls2)),
length(Ls1, L1), length(Ls2, L2),
( L1 >= L2 -> Ls = Ls1 ; Ls = Ls2 ).
Example query:
?- lcs([x,m,j,y,a,u,z], [m,z,j,a,w,x,u], Ls).
Ls = [m, j, a, u]
tx-z ::
Da ne odpiram nove teme; a lahko kdo razloži tole stvar, mamo neko križanko,
ki jo v prologu zapišemo kot:
Ampak ne razumem zakaj je to tko kakor je(najbrž se da tut na kšn drug način)...A lahko kdo razloži?
ki jo v prologu zapišemo kot:
crosswd(V1,V2,V3,H1,H2,H3) :- word(V1,_,V12,_,V14,_,V16,_), word(V2,_,V22,_,V24,_,V26,_), word(V3,_,V32,_,V34,_,V36,_), word(H1,_,V12,_,V22,_,V32,_), word(H2,_,V14,_,V24,_,V34,_), word(H3,_,V16,_,V26,_,V36,_).
Ampak ne razumem zakaj je to tko kakor je(najbrž se da tut na kšn drug način)...A lahko kdo razloži?
tx-z
Zgodovina sprememb…
- spremenilo: tx-z ()
Genetic ::
Besede V1,V2,V3,H1,H2,H3 resijo krizanko ce:
- je druga crka besede V1 (V12) enaka drugi crki besede H1 (V12);
...
- z word(W,C1,C2,C3,...) razbijes besedo W na znake C1,C2,... in te znake poimenujes (ce je _, te znak ne zanima);
- kjer se besede krizajo, morata imeti enak znak
- je druga crka besede V1 (V12) enaka drugi crki besede H1 (V12);
...
- z word(W,C1,C2,C3,...) razbijes besedo W na znake C1,C2,... in te znake poimenujes (ce je _, te znak ne zanima);
- kjer se besede krizajo, morata imeti enak znak
tx-z ::
Ajaaa, najprej je cela beseda, pol pa vsaka črka posebi. Jst sm pa mislu da je V1 že prva črka in mi je blo čudn zakaj je prva pomembna, druga pa ne; k druga je v bistvu šele prva:D No, hvala ;)
tx-z
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | Najprimernejša banka/kartica za dvigovanje s PayPal-aOddelek: Kaj kupiti | 2101 (1912) | Batash |
» | Excel - seštevanje vrednosti brez upoštevanja besedilaOddelek: Pomoč in nasveti | 7735 (7380) | arnecan1 |
» | Konfiguracija i7, prosim za nasvete čimprejOddelek: Kaj kupiti | 2970 (1253) | 1metek |
» | EsejOddelek: Šola | 4846 (4670) | OwcA |