time-complexity相关内容

仅使用A乘以2的最小步数,或将A除以2或将A加1以从A数变为B数

给定两个数字A和B,将数字A转换为数字B的最少步骤是多少? 当且仅当A为偶数时,步骤可以是A *= 2、A++或A /= 2。 实现这一目标的最有效算法是什么? 假设A和B可以是非常大的数字。 推荐答案 这是我用C#完成的摘录。 var a = 2; var b = 15; var found = new HashSet() { a }; var operat ..
发布时间:2022-08-02 18:03:28 其他开发

旅行商问题中的NP-难与NP-完全混淆

旅行商优化问题(TSP-OPT)是一个NP-Hard问题,而旅行商搜索(TSP)是NP-完全问题。然而,TSP-OPT可以归结为TSP,因为如果TSP可以在多项式时间内求解,那么TSP-OPT(1)也可以。我认为要将A简化为B,B必须和A一样难,如果不比A更难的话。正如我在下面的参考文献中看到的,TSP-OPT可以简化为TSP。TSP-OPT应该比TSP更难。我很困惑... 参考文献:(1) ..

时间复杂性和运行时间有什么不同?

时间复杂性和运行时间的区别是什么?它们是相同的吗? 推荐答案 运行时间是程序运行所需的时间。时间复杂性是对输入大小趋于无穷大时运行时间的渐近行为的描述。 您可以说运行时间“是”O(n^2)或其他任何东西,因为这是描述复杂类和大O符号的惯用方式。事实上,运行时间不是一个复杂的类,它要么是一个持续时间,要么是一个给你持续时间的函数。“为O(n^2)”是该函数的一个数学性质,而不是它的 ..
发布时间:2022-08-02 17:41:45 其他开发

计算嵌套循环的大O

我在计算以下代码的大O时遇到问题。我从来都不是最聪明的饼干。 有谁能解释一下吗。由于嵌套循环,我在这里的猜测是O(N^2),但我知道还有更多原因。 static inline int f1 (int a, int b) { for (int c = 0; c ..
发布时间:2022-06-26 19:45:49 C/C++开发

是否包含`std::Vector`的常量时间`?

我正在使用一些代码,通过将std::vector的地址与描述vector数据范围的地址进行比较,检查std::vector是否在固定时间内包含给定的元素。但是,我怀疑,尽管它可以工作,但它依赖于未定义的行为。如果vector不包含该元素,则不允许进行指针比较。 bool contains(const std::vector& v, const T& a) { return (v.d ..

脚本的效率(查找具有相同余数的一对整数)

我正在尝试在A中找到一对(x,y),使得x-y=0(Mod N),其中输入是一个正整数n,一个由m个非负整数和m>;n组成的集合A。为了运行下面的代码,我取了一个m和n,只是为了运行一个示例。 下面是我写的脚本。 我想知道是否有更有效的方法来编写脚本 import numpy as np import sys n = 10 m = 12 def functi(n, m) ..
发布时间:2022-04-15 18:49:16 Python

如何用N个六边骰子计算得到和X的概率

挑战: 例如,当使用3个六面骰子时,得到15之和的概率是多少。这可以通过获得5-5-5、6-6-3、3-6-6或更多选项来实现。 2个骰子的暴力解决方案-复杂性为6^2: 假设我们只有两个六面骰子,我们可以编写一个非常基本的代码: public static void main(String[] args) { System.out.println(whatAreTheOd ..
发布时间:2022-04-15 11:13:54 Java开发

置换的阶乘时间复杂度

我只想检查以下代码是否具有阶乘时间复杂度。即O(n!)如果n是my_str中的字符数。据我所知是这样的,但我可能遗漏了一些东西。 def perms(a_str): stack = list(a_str) results = [stack.pop()] while stack: current = stack.pop() new_res ..
发布时间:2022-03-14 12:43:58 Python

是log(n!)相当于nlogn?(大O符号)

在我的书中有一道选择题: 以下函数的大O符号是什么: n^log(2)+log(n^n)+nlog(n!) 我知道该日志(n!)属于O(Nlogn),但我在网上看到它们是等价的。log(n!)怎么样?跟说nlogn是一回事吗? 情况如何: log(n!)=logn+log(n-1)+.+log2+log1 相当于nlogn? 推荐答案 设n/2为n除以2的商。我们有: l ..
发布时间:2022-02-25 16:05:08 其他开发

Gram-Schmidt正交化算法的计算复杂度

Gram-Schmidt正交化算法的计算复杂度是多少? 假设一个m行k列的矩阵,需要多少次运算才能计算正交化? 如果可能,我想要准确的乘法和加法数。 编辑: 在我看来,运算(乘法+加法)的总数是3/2k^2m + 3/2mk +k^2/2 +k/2。 我想知道这是否正确,以及是否有更快的版本。 推荐答案 点积采用m-1次加法和m次乘法。 向量归一化采用1个向量 ..
发布时间:2022-02-25 16:03:57 其他开发

为什么运行时要构造决策树mnlog(N)?

当m是特征量,n是样本量时,python acadkit-Learning站点(http://scikit-learn.org/stable/modules/tree.html)声明构建二叉决策树的运行时是mnlog(N)。 我知道log(N)来自分裂后树的平均高度。我理解,在每次拆分时,您必须查看每个功能(M),然后选择最好的一个进行拆分。我知道这是通过为该节点(N)的每个样本计算一个“最 ..

一致代价搜索的时间复杂度

我正在读“人工智能:现代方法”一书。我偶然看到这样一句话,描述了统一成本搜索的时间复杂性: 统一成本搜索是由路径成本而不是深度来指导的,因此其 复杂性不容易用b和d来表征。相反, 设C是最优解的成本,并假设每 行动成本至少是ε。那么算法的最坏情况时间和 空间复杂度为O(b^(1+C/ε)),可以远远大于b^d。 据我理解,C是最优解决方案的成本,每个操作至少需要ε,因此C/ε将是到达目 ..

Stream.sorted().Limit()的性能

Java Streams同时使用sorted和limit方法,这两个方法分别返回流的排序版本和仅返回流中指定数量的项的流。当连续应用这些操作时,如: stream.sorted().limit(qty).collect(Collectors.toList()) 是以对qty个项目进行排序的方式执行排序,还是对整个列表进行排序?换句话说,如果qty是固定的,那么这个操作在O(n)中吗?文档 ..
发布时间:2022-02-25 15:59:42 Java开发

FibFrog编码问题--性能优化

我正在尝试解决FibFrog编码问题,我想出了以下方法: 如果len(A)为0,我们知道可以一次跳跃到达对岸。 如果len(A) + 1是斐波那契数,我们也可以一跳达到它。 否则,我们循环A,对于我们可以到达的位置,我们检查是否可以使用斐波纳契数(idx + 1 in fibonaccis)直接从-1到达它们,或者是否可以通过先跳到另一个位置(reachables)然后跳到当前位置来到达 ..
发布时间:2022-02-25 15:55:02 Python