Как сложные условия представлены в таблице решений

Я пытаюсь смоделировать шаблон таблицы решений.

Почему я понимаю простые правила вроде

(x>10 and y<10) print "red" может быть представлен в таблице решений с одной строкой, использующей два столбца для условий и один столбец для действия.

+-----+-----+-------------+
|  X  |  Y  |   Action    |
+-----+-----+-------------+
| >10 | <10 | Print "red" |
+-----+-----+-------------+

Как условия вроде

((x>10 and y<10) or x>1) or z<5 and y>5 print "red" представлены в таблицах решений.

Я предполагаю, что указанное выше большое условие представлено во многих строках, где истинна комбинация различных мини-условий. с той же частью действия повторяется. Есть ли способ свести подобные условия к таблицам решений?

Однако в этом случае действие запускается несколькими строками. Где как у нас только одно действие. Есть ли столбец для группировки?


person Coder 477    schedule 13.12.2016    source источник


Ответы (1)


Один из подходов - дать номера действий и ссылаться на них из таблиц решений. Если действие было запущено во время оценочного прогона, последующие запуски игнорируются.

Вот пример:

+-----+-----+-----+--------+
|  X  |  Y  |  Z  | Action |
+-----+-----+-----+--------+
| >10 | >10 |  -  |   1    |
+-----+-----+-----+--------+
| >10 | <10 |  -  |   2    |
+-----+-----+-----+--------+
| >50 |  -  |  -  |   2    |
+-----+-----+-----+--------+
|  -  |  -  |  >5 |   2    |
+-----+-----+-----+--------+

Номер действия соответствует действию из этой таблицы:

+-----+--------------+
|  #  |   Action     |
+-----+--------------+
|  1  | Print "red"  |
+-----+--------------+
|  2  | Print "blue" |
+-----+--------------+

Если действие №2 запускается из-за x>10 AND y<10, оно не будет запускаться снова, даже если x>50 или z>5.

person Sergey Kalinichenko    schedule 21.12.2016