作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我们可以使用 choco 求解器检查两个部分数之间的相等性吗?
我有一个二维数组,对于它的每个元素,它们的域是具有相同形式的不同数字:由 6 位数字组成的数字(元素可以具有的值的一些示例:781010、680101、391111) 。我的问题是,如何仅比较一个数字而不是整个数字?
我必须做一些看起来像这样的事情:
Model model = new Model();
IntVar[][] array = new IntVar[height][width];
....
// getting the domains for each element of array
....
for(int i = 0; i < height; i++) {
for(int j = 0; j < width; j++) {
model.arithm(array[i][j]3rdDigit, "=", array[i+1][j]4thDigit);
}
}
你能帮我吗?
最佳答案
您可以考虑将数字分解为一系列数字:对于当前的每个 IntVar,您可以创建一个包含 6 个 IntVar 的数组 arr(因为您的数字始终有 6 位)IntVars,并使用另一个 IntVar 来存储具有以下约束的值:
IntVar value = model.intVar(0,999999);
model.scalar(arr, new int[]{100000, 10000, 1000, 100, 10, 1}, "=", value).post();
然后您可以发布对值的其他约束(您可以将其存储在矩阵中,就像您已经做的那样)。
另一种可能会更慢的可能性是发布以下约束(不为数字创建变量):
for(int i = 0; i < height; i++) {
for(int j = 0; j < width; j++) {
IntVar thirdDigit = model.intVar(0,9);
model.mod(array[i][j], 1000, thirdDigit).post();
IntVar fourthDigit = model.intVar(0,9);
model.mod(array[i+1][j], 100, fourthDigit).post();
model.arithm(thirdDigit, "=", fourthDigit).post();
}
}
关于java - 巧克力解算器 : define a constraint on a part of an intVar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59337103/
我意识到 Windows 10 Docker 现在有 Kubernetes 选项,所以我想完全卸载 minikube 并改用 docker windows 附带的 Kubernetes 版本。 如何在
我有以下 S 的 IntVar[] 数组: IntVar[] S = model.intVarArray("Flights Schedule", 18, 0, 19); 我还有以下 Integer 的
我是一名优秀的程序员,十分优秀!