如何衡量离散对数问题的复杂性?


9

对此问题在Crypto Stack Exchange上的回答基本上是说,为了测量对数问题的复杂性,我们必须考虑代表组大小的数字的长度。似乎是任意的,为什么我们不选择组的大小作为参数呢?是否有一个标准来知道选择哪种参数?实际上,我知道我忽略了一些重要的事情,因为如果我们按照小组的规模来做,复杂性会发生巨大的变化。


2
有趣的问题!我将其编辑为说“测量复杂度”,而不是“计算”它,因为我们如何计算它的答案是\ _(ツ)_ /。:-)
David Richerby '16

我认为这样更好。:)
Nassim HADDAM '16

Answers:


5

是否选择组的大小都没关系 或代表参数的整数的大小,因为。通常有两个原因通常是用而不是来描述复杂度:|G|ññ日志|G|ñ|G|

  1. ñ是输入的长度(更准确地说,输入的长度为),我们通常根据输入长度来衡量算法的复杂性。Θñ

  2. 通常是一个很小的数字,例如,而是一个很大的数字,例如(大约)。ñ1024|G|21024


我明白您的意思,但是如果我们选择组的大小作为参数,这是否会使P成为问题?
纳西姆·哈达姆

1
在这种情况下,您无法选择参数-参数始终为输入长度。
Yuval Filmus

感谢您的回答。如果我们考虑另一种情况(P中的问题变成NP以及其他问题),我对可能发生的事情有疑问。我现在可以清楚地看到:)。
纳西姆·哈达姆

1
我们不做一元计算,因为我们的目标是分解一些数字或计算一些离散的对数,并且我们不在乎数字的表示方式。将其作为二进制或一元形式输入不会影响解决问题所需的“时间”,只会影响输入大小方面的复杂性(因为我们正在更改输入大小!)。
Yuval Filmus

1
此外,我们不能真正使用128位长的整数作为实际算法的一元输入。宇宙中原子不足。
Yuval Filmus
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.