问题标签 [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.
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 没有创建临时数组,此解决方法也不起作用。
algorithm - 最大值连续子序列算法
这个问题的输入是一个A[1...n]
实数数组。A[i],A[i+1],...A[j]
您需要找出通过将 的连续子序列的所有数字相加可以获得的最高值是多少A
。如果A
不包含负数,则问题很简单,可以通过将 的所有元素相加来解决A
。A
但是,当包含正数和负数的混合时,它变得更加棘手。
例如,对于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)中存在解决此问题的蛮力解决方案,但也可以在线性时间内解决该问题。
- 设计一种算法,在线性时间内解决上述问题。用伪代码展示你的算法。
- 简要说明您的算法如何以及为何起作用。
- 简要解释一下为什么你的算法确实在线性时间内运行。
c - 如何为结构数组动态分配内存
我对C相当陌生,并且无法弄清楚如何将连续内存分配给结构数组。在这个作业中,我们得到了一个代码的外壳,并且必须填写其余部分。因此,我无法更改变量名称或函数原型。这是给我的:
我只是不确定如何去做这些评论在分配函数中所说的内容。
r - 如何在 R 的稀疏矩阵中查找并命名连续的非零条目?
我的问题在概念上很简单。我正在寻找一种计算效率高的解决方案(我自己的解决方案我最后附上)。
假设我们有一个可能非常大的稀疏矩阵,如左下角的矩阵,并且想要用单独的代码“命名”每个连续的非零元素区域(参见右侧的矩阵)
在我的应用程序中,连续元素将形成矩形、线或单点,它们只能与顶点相互接触(即矩阵中不会有不规则/非矩形区域)。
我想象的解决方案是将稀疏矩阵表示的行和列索引与具有适当值(“名称”代码)的向量匹配。我的解决方案使用了几个for loops
并且适用于中小型矩阵,但随着矩阵的尺寸变大(> 1000)会很快陷入循环。这可能取决于我在 R 编程方面不是那么先进的事实——我找不到任何计算技巧/函数来更好地解决它。
任何人都可以提出一种计算上更有效的方法来在 R 中做到这一点吗?
我的解决方案:
提前感谢您的任何帮助或指示。
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。
我尝试了以下,但它没有我的要求:
那么我该如何实现呢?
c++ - 记忆连续性和搜索树
我正在尝试在我的结果之上构建一个搜索树。某种末端有 n 个叶子的 k-ary 树。我正在寻找 C++ 解决方案并进行试验,std::vector
但由于我需要内存一致性而无法完成。它可以通过嵌套向量来完成,但我不能这样做。
让我通过例子来解释细节:
未排序的结果可能是
最重要的是,我需要一棵树,其节点在我的特定问题中是质心。但为了简单起见,我将在这里使用人工值。
我将搜索树维度定义为
最初的树
第二步
最后一步
这最后一棵树不是 k-ary 树,因为端叶大小为0 <= size <= |R|
.
目前我正在试验两个向量。
在 的帮助下width
,height
可以浏览leafs
. 但我在质疑自己如何优雅地连接leafs
和layer_2
?
一个好的解决方案应该是什么样子的?
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
谢谢你。
python - RuntimeWarning:无法在不复制的情况下提供非连续输入数组的视图
使用 skimage 时出现以下错误:
据我了解,这是因为 x 是一个非连续数组。
我想我解决了在我的代码中添加的问题np.ascontiguousarray
,如下所示:
这是正确的做法吗?注意:我从 skimage 调用此函数时一直这样做……它有什么特别的含义吗?
pandas - column_stack 返回非连续数组
我的代码中有非连续数组的问题。特别是我收到以下警告消息:
我正在使用np.column_stack
但我得到一个不连续的数组
你知道我怎样才能得到连续数组吗?我应该总是ascontiguousarray
在之后使用column_stack
吗?
python-3.x - Python 3:构造回归函数时遇到“ndarray 不连续”
此代码旨在通过定义一个我们自己编译的函数“standRegres”来计算线性回归。虽然我们可以通过sklearn或statsmodels中的函数来做lm,但这里我们只是尝试自己构造函数。但不幸的是,我面对错误并且无法克服它。所以,我在这里请求你的帮助。
整个代码运行没有任何问题,直到最后一行。如果我运行最后一行,则会出现一条错误消息:“ValueError: ndarray is not contiguous”。
此代码在最后一行之前运行没有任何问题。如果我运行最后一行,则会出现一条错误消息:“ValueError: ndarray is not contiguous”。
我干了解决它,但不知道如何。你可以帮帮我吗?非常感谢!