17#Array Checksum求校验和

本文介绍了一种用于验证数据完整性的校验和计算方法,并提供了具体的Python代码实现。该方法通过累加数组元素并乘以素数种子113,然后对结果进行模运算,最终得到校验和值。

文章目录

1问题描述

校验和可以用来核查大量数据的准确性,如小王传递一组数给小张,小王传递前可以计算下校验和后传递给小张,小张再计算一次来确保准确性。
你将计算一组数的校验和,每个数都会与结果变量相加后乘113随后与10000007求余的到新的结果变量。
校验和计算方法
choose some arbitrary number (primes are good) as seed - let us use 113;
choose some big number as the limit for checksum - let it be 10000007;
initialize result value to 0;
initialize array index to the start of array;
add the member pointed by index to result;
multiply result by seed;
take the result by modulo limit (i.e. take the remainder of dividing result by limit if necessary);
increment index to point to next element of array;
if array is not exhausted, return to step 4.
图例
在这里插入图片描述

2代码

numInput=input()
result=0
mod=10000007
lineInput=list(map(int,input().split()))
for a in lineInput:
        result=((result+a)*113)%mod
print(result)

def checkSum( ):
    array = input().split()
    result = 0
    
    for number in range(len(array)):
        result += int(array[number])
        result *= 113
        result %= 10000007
        
    print(result)
checkSum(input())
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值