乘法的计算-俄罗斯农夫法
假设我想计算35乘以47的乘积是多少,根据俄罗斯农夫法的算法规则有:
- 选取两者中较小数并减去一半,舍去余数得到:
35 |
17 |
8 |
4 |
2 |
1 |
2.把较大的数每次乘以2再生成一列数。
35 | 47 |
17 | 94 |
8 | 188 |
4 | 376 |
2 | 752 |
1 | 1504 |
3.划掉左侧第一列为偶数的所有行
35 | 47 |
17 | 94 |
|
|
|
|
|
|
1 | 1504 |
4.把右列中剩余的数相加即可得到两数相乘的结果了
47+94+1504=1645=35*47
这种算法在计算两数相乘的结果时,只用到了乘以2、除以2和求和运算。对于计算机计算而言,乘以2,除以2能够方便的使用左移和右移实现。
参考文献《极简数学》 克里斯.韦林