效果
![](https://img-blog.csdnimg.cn/65569c1ab10049f9861c3ca8883915f8.png)
代码
import pandas as pd
from encryption_algorithm import Euclid
def ser_list_multi(ser_lt: pd.Series)-> int:
Mul = 1
for i in ser_lt:
Mul *= i
return Mul
def _CRT(a: list, m: list)-> int:
a = pd.Series(a)
m = pd.Series(m)
euc = Euclid.euclid()
m_multi = ser_list_multi(m)
func_0 = lambda x: int(m_multi/x)
M = m.map(func_0)
func_1 = lambda x: [m[x], M[x]]
ser_m_M = pd.Series(list(range(M.shape[0]))).map(func_1)
func_2 = lambda x: euc.get_valid_X_Y(x[0], x[1], ret_String=False)[1]
M_inv_m = ser_m_M.map(func_2)
df = pd.DataFrame(data={'a': list(a),'m': list(m),'M': list(M),'ser_m_M': list(ser_m_M),'M_inv_m': list(M_inv_m)})
return int((df['a']*df['M']*df['M_inv_m']).sum()%m_multi)
if __name__=='__main__':
a = [1,2,2]
m = [3,7,11]
x = _CRT(a,m)
print(x)