- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我有两个二维点数组:
array1 = int[x][2]
array2 = int[y][2]
我想从这两个数组生成 4 个点的组合。结果应该放在一个列表中:
List<int[4][2]>
但我需要为每个组合指定我从 array1 中获取的点数(并从 array2 中获取剩余的点)。点的顺序无关紧要。而且不应该有重复。
例如:
array1={ {0,0} , {0,1} , {1,0} }
array2= { {1,1} , {2,1} , {2,2} , ... , {9,9} }
(从array1取1个点,从array2取3个点)
res= { {0,0} , {1,1} , {2,1} , {2,2} }
{ {0,0} , {1,1} , {2,1} , {3,2} }
...
{ {0,0} , {1,1} , {2,1} , {9,9} }
...
{ {0,1} , {1,1} , {2,1} , {2,2} }
...
从不:
res = { {0,0} , {1,1} , {1,1} , {1,1} }
...
两者都不是:
res= { {0,0} , {1,1} , {2,1} , {2,2} }
{ {0,0} , {1,1} , {2,2} , {2,1} }
...
(从array1取2个点,从array2取2个点)
...
(从array1取3个点,从array2取1个点)
...
我希望有人可以帮助我解决这个问题,因为我花了很多时间阅读/测试许多答案,但找不到解决方案。
PS/Edit:如果您可以提供 C# 代码,那就太好了。
最佳答案
这个问题已经被你的规定简化了,你只能按照它们在原始数组中的存储顺序检索点。
编辑:由于您规定结果应包含组合而不是排列,因此简化了这个问题。因此,为了简化事情,我们可以按照它们在原始数组中的存储顺序检索点,这样可以避免排列它们。
您提议翻译任何其他语言,所以我将使用 JavaScript。请注意,JavaScript 数组包括它们的长度,因此您需要单独传递长度(或者传递数组的末尾)。
function combinations(array1, count1, array2, count2)
{
var result = [];
combine(array1, 0, count1, array2, 0, count2, [], result);
return result;
}
function combine(array1, offset1, count1, array2, offset2, count2, chosen, result)
{
var i;
var temp;
if (count1) {
count1--;
for (i = offset1; i < array1.length - count1; i++) {
temp = chosen.concat([array1[i]]); // this copies the array and appends the item
combine(array1, i + 1, count1, array2, offset2, count2, temp, result);
}
} else if (count2) {
count2--;
for (i = offset2; i < array2.length - count2; i++) {
temp = chosen.concat([array2[i]]);
combine(null, 0, 0, array2, i, count2, temp, result);
}
} else {
result.push(chosen); // don't need to copy here, just accumulate results
}
}
关于c# - 来自 2 个点数组的 4 个点的组合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13547025/
我有一个问题需要分而治之解决。有一个包含 N 个点的集合 S。如果有一个平行于轴的正方形,只包含S中的两个点p1和p2,则我们称p1和p2为 friend 点。 现在,我需要使用分而治之算法来计算 S
为 iPad 编程时,字体(和其他)大小以“磅”为单位指定。我已经看到将点作为独立于屏幕分辨率的像素的引用。但是我无法确定一个点的实际大小(即以英寸为单位)。一个点是否等于标准 iPad 屏幕上的一个
我有一个来自 Hadley Wickham 的 ggplot2 书中的问题。 我在这里有这个数据框: class % group_by(class) %>% summarise(n = n
好的,这是一些代码( pdfDocument 是 com.itextpdf.text.Document ): PdfPTable table = new PdfPTable(1); PdfPCell
我正在尝试添加一个 if 语句,如果小于 17,则将另一张牌添加到 DealerHand 中。 目前,它只是记录: 7 19 [ { suit: '♦', value: 9, points: 9 },
我正在编写一个程序,我需要: 对图像的每个像素进行测试 如果测试结果为真,我必须向点云中添加一个点 如果测试结果为假,什么都不做 我已经在 CPU 端 C++ 上编写了一个工作代码。现在我需要使用 C
我是一名优秀的程序员,十分优秀!