Python 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

如何实现Karatsuba乘法? 输入以字符串形式给出

这是我的密码
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