问题标签 [coding-efficiency]
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.
python - Python 效率:在我正在导入的东西中导入东西?
假设我正在制作一个项目,我们称它为 master.py,因为它是主文件。
a 和 b 是我制作的其他子功能,并且在其他文本文件中(以便于调整)。现在让我们说 a 是:
和 b:
master.py 调用函数 a 和 ba 很多次。每次这样做时,它都会在 a 中导入 sin,并在 b 中导入 uniform。这效率不高,但我不知道解决方法(除了将 a 和 b 放在与 master.py 相同的文本文件中,出于调试原因我不想这样做)。我已经尝试将导入 sin 和 uniform 的语句放在 master.py 中,但是当它调用 a 和 b 时,它失败了,因为没有导入 sin 和 uniform。我猜它必须在子程序中导入它们?我可以以某种方式在 master.py 中导入 sin 和 uniform 并将它们传递给 a 和 b,这样我就不必每次都导入了吗?
python - Python:如何避免构建这个矩阵的循环并更快地计算它的行列式?
在 Python 中构建矩阵时遇到了一些问题。每个元素都有一个循环,每个元素A_{ij}的形式如图所示,这里x是q个元素的数组(在下面的代码中用xi表示)。
我已经尝试了如下代码,但它需要太多时间。我认为这是因为循环的数量,所以我正在考虑将其视为两个矩阵的乘积,但由于 lambda 有两个维度,因此它不起作用。
既然这些代码会以函数的形式出现,而且会被多次使用,有没有什么办法让它跑得更快呢?非常感谢你!!
c - 从矩阵中检查单元格值的邻居
我有一个填充有 的矩阵* and -
,其中*
代表一个病毒和-
一个病毒的空闲点,我必须在我的矩阵中检查每个病毒的邻居,一个有效的邻居是另一个病毒而不是空闲点,以便确定它们的数量. 我必须检查的邻居是[row + 1][col]
、和[row - 1][col]
,总共四个邻居。我创建了一个函数来检查并涵盖所有情况,例如,如果我正在检查的元素是矩阵的角之一。我想出了一个非常长的 80 行函数,其中包含很多语句。除了必须编写 20 条语句之外,是否有一种有效的方法(即行数)来检查所有这些?[row][col + 1]
[row][col - 1]
if
if
java - 实现抽象类的优雅方式
我有一个带有单个抽象方法的抽象类;和一些实现类(大约 6 个)。
该方法返回一个“需要”两个参数的对象。
但是,在某些情况下,只需要两个参数之一。
有没有一种优雅的方式来实现这种情况?(而不是将此参数返回为空)
r - 在R中组合子集和唯一
有没有办法将这两个不同的 R 语句结合起来,让它更干净一些?
这可行,但想知道是否有可能将其放在一条线上。
目标是获得独特的machine_number
地方Operation_Name == "Wash"
谢谢!
c# - 用“使用”去膨胀代码
我正在尝试尽可能地缩短和改进我的代码。我的想法之一是从一行代码返回一个字符串,using
用于确保在事务完成后访问的文件再次可用。我的目标是尽可能接近单行代码,但是我很难找到解决字符串不变性的方法。
以下代码无效:
工作代码如下:
我可以通过执行以下操作轻松简化这一点:
但是,交易完成后可能不会关闭文件(如果有误,请告诉我)。有没有办法解决这里字符串的不变性,还是我在寻找不可能的事情?
matlab - 旋转门之谜 - Matlab 时效稀疏矩阵的使用
我正在运行一个使用大型稀疏矩阵进行多次迭代的代码。我的代码中有三行占用了大约 75% 的运行时间,我认为我可以使用稀疏矩阵的特殊结构来减少该时间,但到目前为止我还没有设法做到这一点。我很想得到你的帮助!!
好的,这是我的代码的要点:
您可以跳过以下2段
这里有一个故事,可以让这个例子更生动一点。一位老人正在不同的医院探望病人。有1000(J)家医院,每家医院有70(I)间病房。矩阵 A 是指定老人从医院的一个房间移动到同一医院的另一个房间的概率的转移矩阵。A(i1,i2) 是老人从房间 i1 移动到房间 i2 的概率(因此列总和为 1)。大 S 矩阵是转移概率矩阵,其中从医院 j1 的房间 i1 移动到医院 j2 的房间 i2 由 (J*(i1-1)+j1, J*(i2-1)+j2) 元素给出. 老人不可能从一家医院搬到另一家医院,所以矩阵是稀疏的。
神奇的事情发生了,现在第一家 indj(i) 医院的 i 号房间的所有门都通向同一家医院,indj(i) 医院。所以老人现在可以神奇地在医院之间移动。我们需要相应地改变 S 矩阵。这相当于两件事,增加所有 i 在医院 indj(i) 移动到房间 i 的概率,以及将所有 i 在医院 i 进入所有低于 indj(i) 的房间的概率设置为零。后者我可以非常有效地完成,但第一部分花费了我太长时间。
为什么我认为有机会减少运行时间
- 循环。tic 和 toc 之间的部分可以不用循环编写。我已经做到了,但它使它运行得更慢,也许是因为 sub2ind 的长度非常大。
矩阵结构。请注意,我们不需要整个总和,只需要添加一个元素。这些循环实现了相同的结果(但在这里,显然要慢得多):
/li>
这让我有点希望有一种方法可以使计算更快……</p>
非常感谢您的帮助!
vba - 消除/更改循环以加快代码速度
我编写了一些运行速度很慢的 VBA 代码。我的代码中有一系列不同的循环。我知道循环并不总是处理数据的最有效方式,所以我认为它们是问题所在。我需要有关如何更改或消除循环的想法,以便加快代码的运行时间。
下面是我创建的最活跃的循环。它遍历 D 行(从 D2 开始)上的所有单元格,并根据第 1 行单元格中的条目来操作它们的值。如果我能在这个循环上获得帮助,我可能能够使用类似的技术来改变我的代码中的其他循环。任何提示表示赞赏。
arrays - 我怎样才能使这段代码更有效率?
我有两个与下面的代码有关的问题。首先,我知道这段代码很可怕,可以减少和改进。我希望能够添加整个字母表和数字,但是每一个都输入会很愚蠢。
第一个问题:如何缩短此代码?我对数组并不是很熟悉,但我猜这就是我会使用的。
第二个问题:如何使用数组来表示每个字母/数字?
谢谢你们。
python - 在包含约 300 万字的文件中搜索约 150,000 字
我正在研究文本摘要并建立我的词汇表,我已经训练了一个数据集。现在我需要来自 Google 的 Word2Vec 的这些词汇的向量。我编写了简单的代码,获取每个单词并在包含大约 300 万个单词的 google-vectors 文件中搜索它。但问题是,这种线性搜索实际上需要数周的时间来计算。我正在使用 python 来做这件事。如何以更有效的方式搜索这些单词?