2016-08-15 31 views
1

有人可以幫助我瞭解幾件事情在迷你鋅教程:

function set of $T: 'intersect'(set of $T: x, set of $T: y) 

這回套X交集和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'是什麼意思?什麼是'var'?

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) 

回答

2

$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 intint是不同的類型。 int只是普通的數字。 var int是可變整數,即MiniZinc試圖分配值並解決問題的那些變量。

例如var 1..150: agevar int: age如果我們想解決一些年齡問題。

+0

我現在明白了。唯一沒有得到的是:($ U的集合[$ T])。它是$ T類型的數組嗎?那麼......'一套$ U'......只是讓我感到困惑。 @Kobbe –

+0

也許你可以提供這種數組的例子,然後明確告訴我該數組中的數據是$ T,什麼是$ U –

+0

由於它有點特別,因此更新了這個數組。 – Kobbe

相關問題