From 15f86bdee80340c414c07b300fea4f513ae04588 Mon Sep 17 00:00:00 2001 From: Aleksander Sadikov Date: Wed, 30 Mar 2016 18:26:19 +0200 Subject: Hints and plans for isort/2 added. --- prolog/problems/sorting/is_sorted_1/sl.py | 4 ++-- prolog/problems/sorting/isort_2/sl.py | 21 ++++++++++++++++----- prolog/problems/sorting/quick_sort_2/sl.py | 2 +- 3 files changed, 19 insertions(+), 8 deletions(-) (limited to 'prolog') diff --git a/prolog/problems/sorting/is_sorted_1/sl.py b/prolog/problems/sorting/is_sorted_1/sl.py index 7362655..5db9a71 100644 --- a/prolog/problems/sorting/is_sorted_1/sl.py +++ b/prolog/problems/sorting/is_sorted_1/sl.py @@ -85,7 +85,7 @@ Ampak žal to ne gre! Od spodnjih dveh primerov eden deluje pravilno in eden ne, ''', '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).

+

Poskusi rešiti nalogo brez uporabe predikata min/2. Tvoja rešitev naj ima časovno zahtevnost O(n). +Z uporabo min/2 je le-ta tipično O(n*n).

''', } diff --git a/prolog/problems/sorting/isort_2/sl.py b/prolog/problems/sorting/isort_2/sl.py index acd3276..0005951 100644 --- a/prolog/problems/sorting/isort_2/sl.py +++ b/prolog/problems/sorting/isort_2/sl.py @@ -10,6 +10,18 @@ description = '''\ L = [1,2,3,4,5]. ''' +plan = ['''\ +

Ob sprehodu po seznamu (pravzaprav ob vračanju) vsakič vstavi trenutni element na pravo mesto.

+''', '''\ +

Ko greš po seznamu na vsakem koraku vzameš stran glavo (le-ta gre na sklad), rep pa gre v rekurzijo +(problem/seznam je nekoliko krajši in je to možno). Rekurzija ti vrne urejen rep, vse kar moraš narediti ti je, +da na pravo mesto vstaviš prej odvzeto glavo. Seveda za vstavljanje izkoristiš rešitev kakšne prejšnje naloge.

+''', '''\ +

Če je seznam L sestavljen iz glave H in repa T in če predpostavimo, +da rep T rekurzija pravilno uredi v SortedTail in če v urejen rep SortedTail +na ustrezno mesto vstavimo glavo H, potem smo dobili urejen celoten seznam L.

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

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

''', 'base_case': '''\ -

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? Kateri seznam lahko urediš povsem brez dela?

''', 'recursive_case': '''\ @@ -32,11 +43,11 @@ Do katerega elementa najlažje prideš?

''', '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 X hkrati večji in manjši od Y ali kaj podobno logično sumljivega).

''', 'timeout': '''\ @@ -45,6 +56,6 @@ da je X hkrati starš in sestra od Y ali kaj podobno z ''', 'min_used': '''\ -

min_used

+

Poskusi rešiti nalogo brez uporabe predikata min/2.

''', } diff --git a/prolog/problems/sorting/quick_sort_2/sl.py b/prolog/problems/sorting/quick_sort_2/sl.py index ab3e87e..bb2dd82 100644 --- a/prolog/problems/sorting/quick_sort_2/sl.py +++ b/prolog/problems/sorting/quick_sort_2/sl.py @@ -37,7 +37,7 @@ implicitno že kar v argumentih predikata (glavi stavka).

''', 'base_case': '''\ -

Si pomislil na robni pogoj? Kateri seznam lahko uredim povsem brez dela?

+

Si pomislil na robni pogoj? Kateri seznam lahko urediš povsem brez dela?

''', 'recursive_case': '''\ -- cgit v1.2.1