From 268eb06e05c9a6062e0d34905bed2ecd1696f82c Mon Sep 17 00:00:00 2001
From: Aleksander Sadikov Kot vedno, poskusi prevesti na manjši problem. Naredi ustrezno primerjavo na začetku seznama, rep
+pa prepusti rekurziji. Saj znaš dostopati do prvih dveh elementov seznama, kajne? Aritmetične operatorje za primerjanje pa smo
+spoznali v prejšnjem sklopu. Če je podani seznam Operator Si pomislil na robni pogoj? Kaj je najbolj enostaven primer, ko je element v seznamu?
-Do katerega elementa najlažje prideš? Si pomislil na robni pogoj? Kaj je najkrajši urejen seznam?L
sestavljen iz glav H1
in H2
ter repa T
+in predpostavimo, da je rep T
z drugo glavo vred urejen ter nadalje velja, da je H1
manjši
+ali enak H2
, potem je celoten seznam L
urejen.==
je strožji od operatorja =
v smislu, da je za slednjega dovolj,
@@ -23,8 +37,7 @@ implicitno že kar v argumentih predikata (glavi stavka).
Vse kaže, da tvoj predikat vedno vrne false
. Si mu dal pravilno ime, si se morda pri imenu zatipkal?
Vse kaže, da tvoj predikat vedno vrne "false". Si mu dal pravilno ime, si se morda pri imenu zatipkal?
Če je ime pravilno, se morda splača preveriti tudi, če se nisi zatipkal kje drugje, je morda kakšna pika namesto vejice ali obratno, morda kakšna spremenljivka z malo začetnico?
Možno je seveda tudi, da so tvoji pogoji prestrogi ali celo nemogoči (kot bi bila npr. zahteva,
-da je X
hkrati starš in sestra od Y
ali kaj podobno zlobnega).
N
enako kot N + 1
ali kaj podobno logično zlobnega).
''',
'timeout': '''\
@@ -61,10 +74,14 @@ da je X
hkrati starš in sestra od Y
ali kaj podobno z
''',
'both_heads_omitted_from_recursion': '''\
-both_heads_omitted_from_recursion
+Jemlješ po dva elementa iz seznama preden greš v rekurzijo? Poskušaš malce prihraniti pri primerjavah, kajne? ;) +Ampak žal to ne gre! Od spodnjih dveh primerov eden deluje pravilno in eden ne, ugotovi v čem je razlika.
+?- is_sorted([1,3,14,16,24,25]).
?- is_sorted([24,25,14,16,1,3]).
min_used
+Poskusi rešiti brez uporabe predikata min/2
, s časovno zahtevnostjo O(n). Z uporabo
+min/2
je le-ta tipično O(n*n).