2016-04-26 14 views
0

私はいくつかの基本的な操作でプログラミングを制約しています。私は任意の要素の出現回数をペアの配列でxと数えたいと思います。Minizinc、ペアの配列内の出現数をカウントする

たとえば、次の配列は2つの要素と1つおきの要素を持ちます。

sampleArray = [{8,13}, {21,34}, {8,55}] 

私はおそらく組み込み関数を使用して、この情報を抽出するために、午前か疑問。

答えて

0

私はあなたがここでやりたいことを正確に理解していません。ペアの最初の要素だけを数えますか?

表示する例は2次元の行列ではなく、セットの配列です。 2次元の行列(array2dで構築されている)を持っていると、各ペアの最初の(?)要素を抽出して数えやすくなります。

一般に、「カウント」とおそらく「グローバル_カーディナリティ」という2つのグローバル制約があります。 http://www.minizinc.org/2.0/doc-lib/doc-globals-counting.html

+0

説明:特定の数値、たとえば8を含むセットの数を取得したいとします。したがって、上記の例は2を返します。 –

+0

「int:n = 8;」とします。 (確認したい番号)を入力します。次に、 "sampleArray"ペアの "n"の出現回数はsum([1..3のsampleArray [i] | iのn)です)。 – hakank

+0

1つの制約を持つ[code](http://pastebin.com/Z6PTrCU6)があります。ただし、意図したとおりに動作していません。入力を使用する場合: solutions = 5; solution_lab = [1,1,2,2,2]; solution_group = [{1,2}、{3,4}、{5,6}、{1,2,3}、{7,8}]; teachers = 2; timeslots = 3; 私が取得: 時間教師ラボ学生 1:1 1 1 1..2 2:1 1 1 3..4 3:1 1 2 5..6 4:1 1 2 1 ... 3 5:1 1 7.8 しかし、ラボを行った学生の集合を結合したい(最後の列は行1と2に1..4、 3,5,6,7,8})。私は何をすべきか? –

関連する問題