Time complexity 整数余数和除法的运行时复杂性中显示的输入大小是多少?

Time complexity 整数余数和除法的运行时复杂性中显示的输入大小是多少?,time-complexity,big-o,cpu,division,integer-division,Time Complexity,Big O,Cpu,Division,Integer Division,我试图找出现代计算机中整数的余数和除法的运行时复杂性。不管使用哪种算法,我经常发现输入大小被定义为用于存储被除数的整数的位数。我发现这个定义模棱两可。假设一个被除的数字是10:它可以用4位存储。然而,从程序员的角度来看,如果10存储在int类型的变量中,并且在所使用的编程语言中,int用32位表示,那么10将使用32位存储。在前面的示例中,哪个值表示运行时复杂性中出现的输入大小?4位还是32位 在前面的示例中,哪个值表示运行时复杂性中出现的输入大小?4位还是32位 输入大小是执行操作的ALU接受

我试图找出现代计算机中整数的余数和除法的运行时复杂性。不管使用哪种算法,我经常发现输入大小被定义为用于存储被除数的整数的位数。我发现这个定义模棱两可。假设一个被除的数字是10:它可以用4位存储。然而,从程序员的角度来看,如果10存储在int类型的变量中,并且在所使用的编程语言中,int用32位表示,那么10将使用32位存储。在前面的示例中,哪个值表示运行时复杂性中出现的输入大小?4位还是32位

在前面的示例中,哪个值表示运行时复杂性中出现的输入大小?4位还是32位

输入大小是执行操作的ALU接受的位数,或者更具体地说,是ALU内的算法操作的位数——它完全取决于CPU体系结构和您或您的编译器生成的代码

从技术上讲,没有什么可以阻止您设计一个具有32位寄存器和8位ALU的CPU,该CPU只能接受寄存器的最低有效8位作为其授权输入,这样的CPU将完全无法使用,但这是完全可能的。如果有多个ALU,比如说8位和64位,没有什么能阻止你或编译器使用你喜欢的指令集架构赋予你这样的自由


您的问题不可能给出一个通用的答案,因为它与任何具体的实现无关。

这个问题令人困惑:更改输入大小不会影响运行时复杂性,因为运行时复杂性描述了运行时如何根据输入大小进行更改,反之亦然。@ihonen谢谢你指出这一点,我编辑了这个问题。