问题标签 [contiguous]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
190 浏览

arrays - 多于 N 个进程的分段错误

我在调用 SUB EXC_MPI (MOD01) 时遇到了无效的内存引用,并且恰好在 MPI_StartAll 处(已注释)。

来电来自:

当 MAIN(实际上是模块中的子)第二次调用 MYSUB(上面的代码)时,会在运行时引发分段错误。该错误不是系统性的,从某种意义上说,如果将作业拆分为一定数量的进程,例如 NPMAX,则程序可以工作,这取决于分解的数组。由于 procs 比 NPMAX 多,程序会出现段错误。更多环境条件:

  • 几乎 [编译器 + mpi 独立]:[gfortran+ompi]、[gfortran+mpich] 和 [ifort+mpich] 出现同样的问题。
  • 发生在基于 deb (glibc) 的 mini hpc 和 pc 上(“严重” nec、sun、ibm 上没有问题)

可以看出,MOD02 将不连续的切片数组 Y0 传递给交换过程 (MOD01)。我几乎可以克服故障(NPMAX 增长一个数量级)的唯一方法是来回交换尺寸,但这会导致执行速度减慢大约 2 倍。我敢打赌,永久交换 X/Y/Y0尺寸会解决,但我不想失去像 SUB01 这样的嵌套循环的效率(第一个尺寸比其他尺寸大得多)。

实际上,MOD02 创建了一个临时数组。明确地这样做并不能解决问题。

强制分配堆或堆栈并不能解决问题。

有什么提示吗?谢谢阅读

更新:在每次调用时初始化(在 sub exc_mpi 中的 if 语句中调用 exc_init() )确实可以解决,但由于 MAIN (未列出)循环很多,因此效率完全低下。

UPDATE2(在@Gilles 之后):即使传递一个连续的数组(在本例中为 Y1)并且 mpi 没有创建临时数组,此解决方法也不起作用。

0 投票
1 回答
482 浏览

algorithm - 最大值连续子序列算法

这个问题的输入是一个A[1...n]实数数组。A[i],A[i+1],...A[j]您需要找出通过将 的连续子序列的所有数字相加可以获得的最高值是多少A。如果A不包含负数,则问题很简单,可以通过将 的所有元素相加来解决AA但是,当包含正数和负数的混合时,它变得更加棘手。

例如,对于A = [-2,11,-4,13,-5,-3],解决方案是20 (11-4+13=20)。对于A = [-2,1,-3,4,-1,2,1,-5,4],解为6 (4-1+2+1=6)。一个空子序列的个数之和是0

在O(n^3)中存在解决此问题的蛮力解决方案,但也可以在线性时间内解决该问题。

  1. 设计一种算法,在线性时间内解决上述问题。用伪代码展示你的算法。
  2. 简要说明您的算法如何以及为何起作用。
  3. 简要解释一下为什么你的算法确实在线性时间内运行。
0 投票
1 回答
1974 浏览

c - 如何为结构数组动态分配内存

我对C相当陌生,并且无法弄清楚如何将连续内存分配给结构数组。在这个作业中,我们得到了一个代码的外壳,并且必须填写其余部分。因此,我无法更改变量名称或函数原型。这是给我的:

我只是不确定如何去做这些评论在分配函数中所说的内容。

0 投票
1 回答
579 浏览

r - 如何在 R 的稀疏矩阵中查找并命名连续的非零条目?

我的问题在概念上很简单。我正在寻找一种计算效率高的解决方案(我自己的解决方案我最后附上)。

假设我们有一个可能非常大的稀疏矩阵,如左下角的矩阵,并且想要用单独的代码“命名”每个连续的非零元素区域(参见右侧的矩阵)

在我的应用程序中,连续元素将形成矩形、线或单点,它们只能与顶点相互接触(即矩阵中不会有不规则/非矩形区域)。

我想象的解决方案是将稀疏矩阵表示的行和列索引与具有适当值(“名称”代码)的向量匹配。我的解决方案使用了几个for loops并且适用于中小型矩阵,但随着矩阵的尺寸变大(> 1000)会很快陷入循环。这可能取决于我在 R 编程方面不是那么先进的事实——我找不到任何计算技巧/函数来更好地解决它。

任何人都可以提出一种计算上更有效的方法来在 R 中做到这一点吗?

我的解决方案:

提前感谢您的任何帮助或指示。

0 投票
1 回答
44 浏览

sql-server-2008 - 在两列中对连续行进行分组

我有一个表,其中有两行 From_ID 和 To_ID。我需要基于具有相同 Work_ID 的行分组,并且分组应从 From_ID 开始,并应采用其 To_ID 并查找具有 From_ID 作为该行的 To_ID 的行。这些不能按顺序排列。只有当没有 From_ID 作为 To_ID 的行时,该组才应该结束。我认为表定义和屏幕截图将清除我的查询。

输出是这样的:

桌子

从屏幕截图中可以清楚地看出,第一组的 From_ID 为 30500004,To_ID 为 30500005。 share 的值应为 1,作为该组的第一行。该组中的下一个条目将是 From_ID 为 30500005 和 To_ID 为 30500006 的行,并与该行的 1 共享相同。现在,由于没有 From_ID 为 30500006 的行,因此该组将仅结束,新组将再次开始 From_ID 为 30500004 和 To_ID 为 30500007。

我尝试了以下,但它没有我的要求:

那么我该如何实现呢?

0 投票
1 回答
77 浏览

c++ - 记忆连续性和搜索树

我正在尝试在我的结果之上构建一个搜索树。某种末端有 n 个叶子的 k-ary 树。我正在寻找 C++ 解决方案并进行试验,std::vector但由于我需要内存一致性而无法完成。它可以通过嵌套向量来完成,但我不能这样做。

让我通过例子来解释细节:

未排序的结果可能是

最重要的是,我需要一棵树,其节点在我的特定问题中是质心。但为了简单起见,我将在这里使用人工值。

我将搜索树维度定义为

最初的树

第二步

最后一步

这最后一棵树不是 k-ary 树,因为端叶大小为0 <= size <= |R|.

目前我正在试验两个向量。

在 的帮助下widthheight可以浏览leafs. 但我在质疑自己如何优雅地连接leafslayer_2

一个好的解决方案应该是什么样子的?

0 投票
2 回答
1028 浏览

python - python 2D列表,为什么内存不连续?

这是python 2.7,CPython。结果示例:

['0x107d05638', '0x107cefb90', '0x107cef7e8'] -88744 -936

[[0, 1, 0, 0], [0, 0, 0, 0], [0, 0, 0, 1], [1, 0, 0, 0]]

['0x107d05638', '0x107cef8c0', '0x107cef7e8'] -89464 -216

谢谢你。

0 投票
1 回答
900 浏览

python - RuntimeWarning:无法在不复制的情况下提供非连续输入数组的视图

使用 skimage 时出现以下错误:

据我了解,这是因为 x 是一个非连续数组。

我想我解决了在我的代码中添加的问题np.ascontiguousarray,如下所示:

这是正确的做法吗?注意:我从 skimage 调用此函数时一直这样做……它有什么特别的含义吗?

0 投票
2 回答
158 浏览

pandas - column_stack 返回非连续数组

我的代码中有非连续数组的问题。特别是我收到以下警告消息:

我正在使用np.column_stack

但我得到一个不连续的数组

你知道我怎样才能得到连续数组吗?我应该总是ascontiguousarray在之后使用column_stack吗?

0 投票
1 回答
1803 浏览

python-3.x - Python 3:构造回归函数时遇到“ndarray 不连续”

此代码旨在通过定义一个我们自己编译的函数“standRegres”来计算线性回归。虽然我们可以通过sklearn或statsmodels中的函数来做lm,但这里我们只是尝试自己构造函数。但不幸的是,我面对错误并且无法克服它。所以,我在这里请求你的帮助。

整个代码运行没有任何问题,直到最后一行。如果我运行最后一行,则会出现一条错误消息:“ValueError: ndarray is not contiguous”。

此代码在最后一行之前运行没有任何问题。如果我运行最后一行,则会出现一条错误消息:“ValueError: ndarray is not contiguous”。

我干了解决它,但不知道如何。你可以帮帮我吗?非常感谢!