Python Karatsuba乘法的错误实现
如何实现Karatsuba乘法? 输入以字符串形式给出 这是我的密码Python Karatsuba乘法的错误实现,python,karatsuba,Python,Karatsuba,如何实现Karatsuba乘法? 输入以字符串形式给出 这是我的密码 def乘法(x,y): x_len=len(x) y_len=len(y) lenn=最大值(x_len,y_len) len2=lenn//2 如果x_len
def乘法(x,y):
x_len=len(x)
y_len=len(y)
lenn=最大值(x_len,y_len)
len2=lenn//2
如果x_len<3或y_len,您的实现有什么问题?请添加更多信息…计算S4
的意义是什么?你从不在任何地方使用它…谢谢你Jasonharper。真高兴你们帮忙:)
def multiply(x,y):
x_len = len(x)
y_len = len(y)
lenn= max(x_len,y_len)
len2=lenn//2
if x_len < 3 or y_len <3:
return int(x)*int(y)
else:
a= x[ : len2]
b= x[ len2 : ]
c= y[ : len2]
d= y[ len2 : ]
S1 = multiply(a,c)
S2 = multiply(b,d)
S3 = multiply(str(int(a)+int(b)) , str(int(c)+int(d)))
S4 = str(S3 - S2 - S1)
X1= S1 * 10**(lenn)
X2 = S3 * 10**(len2)
X3 = S2
return X1+X2+X3