- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在弄清楚如何生成锯齿状数组的笛卡尔积时遇到了一些问题。我四处搜索,但我似乎无法找到迭代语言的实现。所以我想自己弄清楚,但我遇到了麻烦。让我们更清楚地定义问题
假设我有一个看起来像这样的数组
A = { {1}, {2, 3}, {4, 5, 6} }
我如何从那里去
B = { {1, 2, 4}, {1, 2, 5}, {1, 2, 6}, {1, 3, 4}, {1, 3, 5}, {1, 3, 6} }
编辑:现在这只是一个示例,第一个数组可以包含动态数量的数组,并且每个数组的大小都是动态的。
如果x是外层数组中元素的个数,y[]是一个长度为x的动态数组,则元素包含了内层数组中元素的个数。然后A的x变成B的y,B的x是A的y的乘积。(未证明,从例子中假设)
由于 A 的 x 是动态的,因此该函数必须是递归的。这是我的尝试。
int** cartesian (int** A, int x, int* y, int* newx, int* newy) {
*newy = x;
*newx = 1;
for (int i = 0; i < x; i++)
*newx *= y[i];
int** B = malloc(sizeof(int) * *newx * *newy);
int xi = 0;
int* tmp_prod = malloc(sizeof(int) * x);
recurse(x, 0, y, A, &xi, tmp_prod, B);
free(tmp_prod);
return B;
}
void recurse(int x, int xi, int* y, int** A, int* newx, int* temp_inner, int** B) {
if (xi < x) {
for (int i = 0; i < y[xi]; i++) {
temp_inner[xi] = A[xi][i];
recurse(x, xi + 1, y, A, newx, temp_inner, B);
}
} else {
for (int i = 0; i < x; i++) {
B[*newx][i] = temp_inner[i];
}
(*newx)++;
}
}
这就是我所了解的。递归函数建立一个[递归深度]的一个元素的临时数组,然后当它达到最大深度时,它分配给那个B,并增加Bs迭代器,回溯并选择[递归深度]的下一个元素,等等c.
问题是段错误,我不知道为什么。
最佳答案
问题出在你分配 B 的方式上。你需要将它分配为指向 int 的 newx 指针数组,然后将每个元素分配为 newy 数组> 整数。
int** B = malloc(sizeof(int*) * *newx);
for (unsigned int i = 0 ; i < *newx; i++) {
B[i] = malloc(sizeof(int) * *newy);
}
但我仍然坚持我之前使用迭代解决方案的答案。
关于c - 如何生成锯齿状数组的笛卡尔积?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4004631/
使用Cocos2d画一个更粗的圆: glLineWidth(20); ccDrawCircle(self.ripplePosition, _radius, 0, 50, NO); 但这就是显示的内容(
本学期我在计算机科学类(class)中遇到了一个挑战问题,这是上学期的复习题,但问题是:“给定一个参差不齐的数组,查找数组中是否有任何行的乘积为 48,如果是,则返回该行号。如果没有行包含 48 的乘
我一直在尝试将 sklearn 决策树中的 .dot 图插入到 pyplot 子图中,并且一直在努力做到这一点。 pygraphviz 库拒绝在我的 Windows 系统上工作,因此我使用以下方法插入
我有一个 UITableViewCell 子类,它有一些标签。所有这些标签都带有模糊或锯齿状的文本。它在设备上比在模拟器上更引人注目。 这是一个看起来很正常的标签: 这是一个看起来很糟糕的标签: 我该
作为LINQ-to-Entities投影的结果,我最终得到一个List,如果手动创建它,其外观如下所示: List data = new List(); data.Add(new ChartDataR
为什么我的css圈不流畅? 如果我做一个 HTML5 Canvas 真的很棒。 #circle { width: 100px; height: 100px;
我不明白 Numpy.arrays 相乘时会发生什么。 例如,带有锯齿状(或参差不齐)的数组 import numpy as np a = np.array([[1,2,3],[100,200]])
我正在尝试用 Python 计算时间序列的 Hurst 指数,该值决定了量化金融时间序列的一些均值回归特征。我采用了任意长度的时间序列,并选择将其拆分为数据 block ,该过程是计算 Hurst 指
我正在建立一个网站 - http://www.efficaxdevelopment.com 正如您在加载页面(在 IE 中)时看到的那样,页面上不是图像的文本或菜单看起来很糟糕,而在 FF 和 Chr
If you check, for instance, this shopping page ,您可以看到价格倾斜了几度。在 Chrome 上,这看起来“恰到好处”,在 Firefox 上,这看起来非
我是一名优秀的程序员,十分优秀!