Что обозначают $T, [$T], $U в уроке minizinc
Может ли кто-нибудь помочь мне понять пару вещей из учебника по мини-цинку:
function set of $T: 'intersect'(set of $T: x, set of $T: y)
Это возвращает пересечение множеств х и у. Очевидно, x и y являются множествами - но что означает $T в этом контексте?
function var set of int: 'union'(var set of int: x, var set of int: y)
Вернуть объединение множеств x и y . из того, что я понимаю, x - это набор целых чисел, а y - также набор целых чисел - но что означает "var set of int"? что такое "вар"?
function set of $U: array_union(array [$T] of set of $U: x)
Вернуть объединение множеств в массиве x. Могли бы вы объяснить:
function set of $U
а также:
array_union(array [$T] of set of $U: x)
1 ответ
$T
или же $U
означает любой тип. $T
может быть int
, float
и т. д. Если это говорит int
, то вы должны предоставить int
, но если это говорит $T
Вы можете поставить любой тип.
В выражении function set of $U: array_union(array [$T] of set of $U: x)
, $U
а также $T
могут быть разных типов, но в function set of $T: 'intersect'(set of $T: x, set of $T: y)
все $T
должны быть такими же. Различные переменные для $
просто означает, что они могут быть другого типа. Та же переменная $
имя и все должны иметь одинаковый тип.
Пример: function set of float: array_union(array [int] of set of float: x)
а также function set of int: 'intersect'(set of int: x, set of int: y)
,
array [$T]
является немного особенным и просто означает, что массив может иметь любое измерение. т.е. array [int]
, array [int,int]
или же array [int,int,int,int,int]
и т.д. array [$T] of set of $U
означает, что у нас есть массив размера $T
, например [int,int]
двумерный массив. Этот массив заполнен наборами любого типа. Например, наборы целых чисел, например {1,4,7,145}.
var int
а также int
разные типы. int
это просто обычные цифры. var int
переменные целые числа, то есть те переменные, которые MiniZinc пытается присвоить значению и решить проблему.
Например var 1..150: age
или жеvar int: age
если мы хотим решить проблему возраста