伪多项式时间:修订间差异
外观
删除的内容 添加的内容
小 添加 {{uncategorized}}和 {{unreferenced}}标记到条目 (TW) |
|||
第1行: | 第1行: | ||
{{unreferenced|time=2011-10-17T01:57:19+00:00}} |
|||
在[[计算理论]]领域中, 若一个数值[[算法]]的[[时间复杂度]]可以表示为输入数值 N 的[[多项式]], 则称其时间复杂度为'''伪多项式时间'''. 由于 N 的值是 N 的位数的幂, 故该算法的时间复杂度实际上应视为输入数值 N 的位数的[[指数时间|幂]]. |
在[[计算理论]]领域中, 若一个数值[[算法]]的[[时间复杂度]]可以表示为输入数值 N 的[[多项式]], 则称其时间复杂度为'''伪多项式时间'''. 由于 N 的值是 N 的位数的幂, 故该算法的时间复杂度实际上应视为输入数值 N 的位数的[[指数时间|幂]]. |
||
第11行: | 第12行: | ||
[[pl:Algorytm pseudowielomianowy]] |
[[pl:Algorytm pseudowielomianowy]] |
||
[[ru:Псевдополиномиальный алгоритм]] |
[[ru:Псевдополиномиальный алгоритм]] |
||
{{uncategorized|time=2011-10-17T01:57:19+00:00}} |
2011年10月17日 (一) 01:57的版本
此條目没有列出任何参考或来源。 (2011年10月17日) |
在计算理论领域中, 若一个数值算法的时间复杂度可以表示为输入数值 N 的多项式, 则称其时间复杂度为伪多项式时间. 由于 N 的值是 N 的位数的幂, 故该算法的时间复杂度实际上应视为输入数值 N 的位数的幂.
一个具有伪多项式时间复杂度的 NP 完全问题称之为弱 NP 完全问题, 而在 P != NP 的情况下, 若一个 NP 完全问题被证明没有伪多项式时间复杂度的解, 则称之为强 NP 完全问题.
例子
在素性测试中, 使用较小的整数逐个对被测试数进行试除的算法被认为是一个伪多项式时间算法. 对于给定的整数 N, 使用从最小的素数 2 开始, 到 √N 为止的整数依次对 N 进行试除, 如果均无法整除 N, 则 N 是素数, 这个过程需要进行至多约 √N 次整数除法, 即其时间复杂度为 O(√N), 为 N 的多项式. 令 D 为 N 的二进制表示的位数, 那么 N 可以表示为以 2 为底 D 的幂, 因此素性测试问题的时间复杂度用 D 表示应为 O(). 因此, 上述算法是一个伪多项式时间算法.
其它被证明只具有伪多项式时间算法解的问题有背包问题, 子集合加总问题.