From 0b8a785ce0212783b45a328ba2ab6600ae05d333 Mon Sep 17 00:00:00 2001 From: Aleksander Sadikov Date: Wed, 30 Mar 2016 14:34:45 +0200 Subject: Hints and plans for slowest_sort_ever/2 added. --- prolog/problems/sorting/slowest_sort_ever_2/sl.py | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) (limited to 'prolog') diff --git a/prolog/problems/sorting/slowest_sort_ever_2/sl.py b/prolog/problems/sorting/slowest_sort_ever_2/sl.py index 03a77b1..b94a5e7 100644 --- a/prolog/problems/sorting/slowest_sort_ever_2/sl.py +++ b/prolog/problems/sorting/slowest_sort_ever_2/sl.py @@ -4,12 +4,20 @@ name = 'slowest_sort_ever/2' slug = 'Uredi seznam elementov s pomočjo naključnih permutacij' description = '''\ -

slowest_sort_ever(L, SL): seznam SL vsebuje elemente seznama L v naraščajočem vrstnem redu. Časovna zahtevnost algoritma naj bo O(n * n!).

+

slowest_sort_ever(L, SL): seznam SL vsebuje elemente seznama L v naraščajočem vrstnem redu. Namig: časovna zahtevnost algoritma naj bo zanemarljivih O(n * n!).

 ?- slowest_sort_ever([2,3,1,5,4], L).
   L = [1,2,3,4,5].
 
''' +plan = ['''\ +

Ta naloga je malce bolj za šalo... Vse kar potrebuješ sta dve vrstici oz. dva prologova cilja.

+''', '''\ +

Morda lahko izkoristiš rešitev kakšnih prejšnjih nalog?

+''', '''\ +

Katera izmed prejšnjih nalog ima časovno zahtevnost O(n!)? Uporabi jo!

+'''] + hint = { 'eq_instead_of_equ': '''\

Operator == je strožji od operatorja = v smislu, da je za slednjega dovolj, @@ -23,11 +31,11 @@ implicitno že kar v argumentih predikata (glavi stavka).

''', 'predicate_always_false': '''\ -

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).

+da je N enako kot N + 1 ali kaj podobno logično zlobnega).

''', 'timeout': '''\ @@ -36,10 +44,11 @@ da je X hkrati starš in sestra od Y ali kaj podobno z ''', 'no_permute': '''\ -

no_permute

+

Hmmm, premisli, katera izmed nalog, ki smo jih reševali do sedaj ima časovno zahtevnost O(n!)? +Kako bi jo lahko izkoristil?

''', 'no_isSorted': '''\ -

no_isSorted

+

Si na pravi poti, še malo. Morda lahko uporabiš še kakšno prejšnjo rešitev?

''', } -- cgit v1.2.1