如何用倍增算法将C语言求幂运算改写成长尾词?
- 内容介绍
- 文章标签
- 相关推荐
本文共计4033个文字,预计阅读时间需要17分钟。
1. 引言+学习递增算术算法,先了解什么是递增以及递增算术算法的优势。例如,面前有一堆石头,要计算石子的总数。这是一个简单的数学问题,可以:一个石头一个石头的数。两颗石头两颗石头的数。
1. 引言
学习倍增算法,先了解什么是倍增以及倍增算法的优势。如果面前有一堆石子,要求计算出石子的总数量。
这是一个简单的数数问题,可以:
- 一颗石子一颗石子的数。
- 两颗石子两颗石子的数。
- 三颗石子三颗石子的数。
- 或者更多颗石子更多颗石子的数……
在石子很多的情况下,每一次选择更多石子的方式数,毫无疑问可以快速得到最后的结果,倍增算法便是基于这种数数的理念。
但是,倍增算法不是以固定的数量来数,而是以 2 的倍数来数,如先数2个、再数 4个、再数8个……这种等比数列的方式递增前进。
为什么选择 2 的倍数递增?
于底层逻辑而言,计算机使用二进制存储数据,计算机处理十进制数字时,会把数字转换成二进制形式。
本文共计4033个文字,预计阅读时间需要17分钟。
1. 引言+学习递增算术算法,先了解什么是递增以及递增算术算法的优势。例如,面前有一堆石头,要计算石子的总数。这是一个简单的数学问题,可以:一个石头一个石头的数。两颗石头两颗石头的数。
1. 引言
学习倍增算法,先了解什么是倍增以及倍增算法的优势。如果面前有一堆石子,要求计算出石子的总数量。
这是一个简单的数数问题,可以:
- 一颗石子一颗石子的数。
- 两颗石子两颗石子的数。
- 三颗石子三颗石子的数。
- 或者更多颗石子更多颗石子的数……
在石子很多的情况下,每一次选择更多石子的方式数,毫无疑问可以快速得到最后的结果,倍增算法便是基于这种数数的理念。
但是,倍增算法不是以固定的数量来数,而是以 2 的倍数来数,如先数2个、再数 4个、再数8个……这种等比数列的方式递增前进。
为什么选择 2 的倍数递增?
于底层逻辑而言,计算机使用二进制存储数据,计算机处理十进制数字时,会把数字转换成二进制形式。

