Advertisement

Implement the Russian peasant algorithm in Python.

阅读量:

俄罗斯农夫算法(Russian Peasant Algorithm, RPM)是一种历史悠久的乘法计算方法。该算法借助二进制数制以及若干基础的数学运算,其计算过程与当代计算机采用的二进制乘法方式存在相似之处。通常情况下,当较小的乘数被置于半列,而较大的乘数被安排在倍列时,RPM的执行效率会得到显著提升。

复制代码
 import math

    
 import pandas as pd
    
  
    
 # 输入两个数 n1 和 n2
    
 n1 = 18
    
 n2 = 89
    
  
    
 # 初始化半列:半列用于存储 n1 的值,每次迭代将 n1 除以2并取整
    
 halving = [n1]
    
  
    
 # 迭代计算半列的值,直到值为 1
    
 while halving[-1] > 1:
    
     halving.append(math.floor(halving[-1] / 2))
    
  
    
 # 初始化倍列:倍列用于存储 n2 的值,每次迭代将 n2 乘以2
    
 doubling = [n2]
    
  
    
 # 迭代计算倍列的值,直到倍列的长度等于半列的长度
    
 while len(doubling) < len(halving):

全部评论 (0)

还没有任何评论哟~