📜  用于查找数组乘法除以 n 的余数的Python程序

📅  最后修改于: 2022-05-13 01:56:56.759000             🧑  作者: Mango

用于查找数组乘法除以 n 的余数的Python程序

给定多个数字和一个数字 n,任务是打印所有数字除以 n 后的余数。
例子:

Input : arr[] = {100, 10, 5, 25, 35, 14}, 
            n = 11
Output : 9
100 x 10 x 5 x 25 x 35 x 14 = 61250000 % 11 = 9

天真的方法:首先将所有数字相乘,然后将 % 乘以 n,然后找到余数,但在这种方法中,如果数字最大为 2^64,那么它会给出错误的答案。
避免溢出的方法:首先取一个余数或单个数字,如 arr[i] % n。然后将余数乘以当前结果。乘法后,再次取余数以避免溢出。这是因为模算术的分布特性。 ( a * b) % c = ( ( a % c ) * ( b % c ) ) % c

#使用reduce函数从functools导入reduce

从 functools 导入减少

def find_remainder(arr,n):

#使用reduce函数计算总和

sum_1=reduce(lambda x,y: x*y,arr)

余数=sum_1%n

打印(剩余)

arr=[100,10,5,25,35,14]

n=11

find_remainder(arr,n)

输出:

9

有关详细信息,请参阅有关查找数组乘法除以 n 的余数的完整文章!