sách gpt4 ai đã đi

arrays - MiniZinc - (多维)数组的数组

In lại 作者:行者123 更新时间:2023-12-01 21:50:46 29 4
mua khóa gpt4 Nike

我想知道 MiniZinc 语言中是否可以有(多维)数组的数组。

确实,我想解决 worker 的时间表问题。我的目标是检查它们是否每周至少有 1 天可用。每个 worker 都由一个整数索引,我每周都有他们的日程安排。

对我来说,像这样的数组:[[number_of_week, weekday]]可能是一个解决方案。

例如,第 1 周周一/周五和第 2 周周二/周四有空的工作人员 1 可以通过以下数组进行建模:(“1 » 表示该工作人员有空)

[[| 1,0,0,0,1,
| 0,1,0,1,0 |],
[...],...]

如果可以的话,如何声明这种数组?我也愿意接受有关建模此约束的任何建议。

抱歉我的英语不太好,提前谢谢你,尼古拉斯。

1 Câu trả lời

我不确定我是否完全理解您的问题,但您可以拥有多维数组,如下所示:

array[1..3,1..3] of int: a = array2d(1..3,1..3,
[1,0,0,
0,1,0,
1,1,0]);

或使用其他语法:

array[1..3,1..3] of int: a = 
[|1,0,0
|0,1,0
|1,1,0|];

但是,您不能在数组中包含数组,即这是不允许允许的:

% This is NOT valid MiniZinc code! 
array[1..3,1..3] of int: a =
[[[1,0,0],[1,0,1]],
[[0,1,0],[0,1,1]],
[[1,1,0],[0,0,0]]];

另请注意,不能有“参差不齐”的数组:每行和每列中的元素数量必须相同。

关于您的具体约束,如果我理解您的描述,您可能会定义一个 3D 数组,如下所示:

int:_num_workers = 2;
int: num_weeks = 3;
int: num_days = 4;
array[1..num_workers,1..num_weeks,1..num_days] of int: a =
array3d(1..num_workers,1..num_weeks,1..num_days,
[
% worker 1
% week1 week2 week3
1,0,0,1, 1,1,0,1, 0,0,1,1,

% worker 2
% week1 week2 week3
1,0,0,0, 0,0,0,1, 1,1,1,0
]);

特别注意创建 3D 数组的 array3d 构造。因此,您可以使用 a[w,e,d] 访问工作人员 w của 周的 ngày 日。

关于arrays - MiniZinc - (多维)数组的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48278879/

29 4 0
行者123
Hồ sơ cá nhân

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá Didi Taxi miễn phí
Mã giảm giá Didi Taxi
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com