Что обозначают $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 если мы хотим решить проблему возраста

Другие вопросы по тегам