From c50452d81b08d54b734f1da73b736bfbc2997215 Mon Sep 17 00:00:00 2001 From: Aleksander Sadikov Date: Tue, 22 Sep 2015 17:57:04 +0200 Subject: New problems with hints for famrel section added. This practically completes famrel section without some details. --- .../problems/family_relations/descendant_2/sl.py | 63 ++++++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 prolog/problems/family_relations/descendant_2/sl.py (limited to 'prolog/problems/family_relations/descendant_2/sl.py') diff --git a/prolog/problems/family_relations/descendant_2/sl.py b/prolog/problems/family_relations/descendant_2/sl.py new file mode 100644 index 0000000..fb60e76 --- /dev/null +++ b/prolog/problems/family_relations/descendant_2/sl.py @@ -0,0 +1,63 @@ +# coding=utf-8 + +id = 101 +name = 'descendant/2' +slug = 'the descendant relation' + +description = '''\ +

descendant(X, Y): X is a descendant (child, grandchild,...) of Y.

+
+  ?- descendant(patricia, X).
+    X = william ;
+    X = tina ;
+    X = thomas.
+
''' + +plan = ['''\ +

Brez rekurzije ne bo šlo... kako lahko problem prevedem na (en korak) manjši problem?

+

+

Loni naj zbriše imena relacij (parent, ancestor) s te slike!

+''', '''\ +

+''', '''\ +

Če je nek Z starš od X in je +ta Z hkrati potomec od Y, +potem je tudi X potomec od Y.

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

Je spol res pomemben?

+''', + + 'grandparent_used': '''\ +

Rešitev z "grandparent" bo premalo splošna, poskusi nadomestiti to z rekurzijo. +Skratka, poskusi prevesti na "manjši" problem, npr. potomec v enem koraku manj +(en korak bližji potomec)...

+''', + + 'base_case': '''\ +

Si pomislil na robni pogoj? Kaj je najbolj enostaven par (potomec, prednik)?

+

+''', + + 'descendant_of_oneself': '''\ +

Kako je lahko nekdo potomec samega sebe?

+''', + + 'descendant_need_not_be_parent': '''\ +

Potomec X pravzaprav ne rabi imeti otrok...

+''', + + 'wrong_direction': '''\ +

Si morda sprogramiral ravno obratno in zamenjal prednika s potomcem? +X naj bo potomec od Y in ne obratno!

+''', + + 'interesting_tidbit': '''\ +

Zanimivost: nalogo bi lahko rešil tudi z uporabo rešitve za relacijo "ancestor". +Samo obrni spremenljivki X in Y; +če je X potomec od Y, potem je Y prednik od X.

+''', +} + -- cgit v1.2.1