生成所有可能组合的分类和复杂性:P、NP、NP-Complete 或 NP-Hard
Classification and complexity of generating all possible combinations: P, NP, NP-Complete or NP-Hard
算法需要从给定列表中生成所有可能的组合(不包括空集)。
list => [1, 2, 3]
combinations => [{1}, {2}, {3}, {1,2}, {1,3}, {2,3}, {1,2,3}]
该算法将花费 O(2n) 时间复杂度来生成所有组合。但是,我不确定改进的算法是否可以降低这个时间复杂度。如果存在改进的算法,请分享您的知识!
在 O(2n) 的情况下,它是指数级的,我想了解一下 class 这个算法属于 P,NP, NP 完全或 NP 困难。提前致谢:)
这个问题存在于其中 none 个中,除了 NP-hard。
它不在P中,因为没有多项式时间算法可以做到。你不能在多项式时间内生成指数数量的东西。
它不在 NP 中,因为没有多项式时间算法来验证答案。您无法在多项式时间内处理指数数量的事物。
它不在 NP-complete 中,因为 NP-complete 中的所有内容都必须在 NP 中,而它不是。
它在 NP-hard 中的论点是这样的。关于空集的成员,你可以说任何你想说的。包括它们让猴子从你的鼻子里飞出来,并且可以在多项式时间内解决 NP 中的任何问题。所以如果我们能找到一个多项式解,我们就可以快速解决任何NP问题,因此它满足NP-hard的定义。但没用 - 我们知道不存在多项式解。
P、NP、NP-complete、NP-hard都是类个决策问题,none个问题涉及non-binary个输出(比如这个枚举题)。
人们通常将 FNP 中的问题通俗地称为 NP 问题。这个问题也不在 FNP 中,因为关系的输出字符串的长度必须受输入长度的某个多项式函数的限制。它 可能 是 FNP-hard,但我们正在研究甚至研究生 CS 教育都没有涵盖的杂草。如果您足够关心,值得在 CS Stack Exchange 上询问。
算法需要从给定列表中生成所有可能的组合(不包括空集)。
list => [1, 2, 3]
combinations => [{1}, {2}, {3}, {1,2}, {1,3}, {2,3}, {1,2,3}]
该算法将花费 O(2n) 时间复杂度来生成所有组合。但是,我不确定改进的算法是否可以降低这个时间复杂度。如果存在改进的算法,请分享您的知识!
在 O(2n) 的情况下,它是指数级的,我想了解一下 class 这个算法属于 P,NP, NP 完全或 NP 困难。提前致谢:)
这个问题存在于其中 none 个中,除了 NP-hard。
它不在P中,因为没有多项式时间算法可以做到。你不能在多项式时间内生成指数数量的东西。
它不在 NP 中,因为没有多项式时间算法来验证答案。您无法在多项式时间内处理指数数量的事物。
它不在 NP-complete 中,因为 NP-complete 中的所有内容都必须在 NP 中,而它不是。
它在 NP-hard 中的论点是这样的。关于空集的成员,你可以说任何你想说的。包括它们让猴子从你的鼻子里飞出来,并且可以在多项式时间内解决 NP 中的任何问题。所以如果我们能找到一个多项式解,我们就可以快速解决任何NP问题,因此它满足NP-hard的定义。但没用 - 我们知道不存在多项式解。
P、NP、NP-complete、NP-hard都是类个决策问题,none个问题涉及non-binary个输出(比如这个枚举题)。
人们通常将 FNP 中的问题通俗地称为 NP 问题。这个问题也不在 FNP 中,因为关系的输出字符串的长度必须受输入长度的某个多项式函数的限制。它 可能 是 FNP-hard,但我们正在研究甚至研究生 CS 教育都没有涵盖的杂草。如果您足够关心,值得在 CS Stack Exchange 上询问。