整数指数的计算效率比您想象的要高得多。以下是Wikipedia 对此的评价:
计算 bⁿ 的最简单方法需要 n-1 次乘法运算,但它的计算效率比这更高,如下面的示例所示。要计算 2¹⁰⁰,请注意 100 = 64 + 32 + 4。按顺序计算以下内容:
2² = 4
(2²)² = 2⁴ = 16
(2⁴)² = 2⁸ = 256
(2⁸)² = 2¹⁶ = 65,536
(2¹⁶)² = 2³² = 4,294,967,296
(2³²)² = 2⁶⁴ = 18,446,744,073,709,551,616
2⁶⁴ × 2³² × 2⁴ = 2¹⁰⁰ = 1,267,650,600,228,229,401,496,703,205,376
这一系列步骤只需要 8 次乘法运算,而不是 99 次(因为上面的最后一个乘积需要 2 次乘法)。
一般来说,计算 bⁿ 所需的乘法运算次数可以通过使用平方取幂或(更一般地)加法链取幂减少到 Θ(log n) 。找到 bⁿ 的最小乘法序列(指数的最小长度加法链)是一个困难的问题,目前还没有已知有效的算法(参见子集和问题),但有许多相当有效的启发式算法可用。 [29]
平方指数的页面很难总结,但它基本上是 2⁸ == (2⁴)² == (2²)²)² 的想法,所以2 × 2 × 2 × 2 × 2 × 2 × 2 × 2 = 256
你可以计算而不是计算2 × 2 = 4; 4 × 4 = 16; 16 × 16 = 256
。