我是靠谱客的博主 高兴荔枝,最近开发中收集的这篇文章主要介绍ACM同余模定理(模版),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

今天将同余模定理重新好好看了一下。

同余模定理

 

所谓的同余,顾名思义,就是许多的数被一个数d去除,有相同的余数。d数学上的称谓为模。如a=6,b=1,d=5,则我们说a和b是模d同余的。因为他们都有相同的余数1。

有很多定理,但是我们只需要用到两个,其余的太过简单就不再叙述。 

应用:

•    (a+b)%c=(a%c+b%c)%c;

•    (a*b)%c=(a%c*b%c)%c;

   对于大数的求余,联想到进制转换时的方法,得到

 

   举例如下,设大数 m=1234,模n

首先:

   ① (1*10)%n+2%n)%n=(10+2)%n

    ②((1*10)%n+2%n)%n*10%n=(12%n*10%n)=(12*10)%n

    以此类推

    就等于((((1*10)%n+2%n)%n*10%n+3%n)%n*10%n+4%n)%n

 

大数求余的简单模板:

#include<cstdio>
char num[10000];
int main()
{
int n,i;
while(scanf("%s%d",num,&n)!=EOF)
{
int ans=0;
for(i=0;num[i]!='';i++)
ans=((ans*10)%n+(num[i]-'0')%n)%n;
printf("%dn",ans);
}
return 0;
}

 

 

 

 

 

最后

以上就是高兴荔枝为你收集整理的ACM同余模定理(模版)的全部内容,希望文章能够帮你解决ACM同余模定理(模版)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(73)

评论列表共有 0 条评论

立即
投稿
返回
顶部