同余

6人阅读 评论(0) 收藏 举报

本文无特殊说明,字母代表的都为整数

同余定义

若c|(a-b),即(a-b)/c得到整数,称a和b关于模c同余。记作a≡b(mod m)

同余性质

若a≡b(mod x),c≡d(mod x)

1.a+c≡b+d(mod x)

2.a-c≡b-d(mod x)

3.a*c≡b*d(mod x)

若ac≡bc(mod x)

4.a≡b(mod x/(x,c))

同余类定义

若a≡b(mod n),则a和b属于模n的一个同余类。

缩同余类定义

如果一个同余类中所有数和n互质,那么这个同余类就是一个缩同余类。

完全剩余系定义

模n意义下n个同余类各取一个代表组成一个集合。

缩剩余系

模n意义下φ(n)个缩同余类中个取一个代表组成的集合。

快速幂

long long qpow(long long x,long long a){
    long long times=1,base=x,ans=1;
    while(times<=a){
        if(times&a){
            ans*=base;
            ans%=mod;
        }
        times<<=1;
        base*=base;
        base%=mod;
    }
    return ans;
}

用位运算代替乘除会更快,因为二进制是运算的基础

查看评论

使用线性同余法生成伪随机数/序列(C++实现)

计算机上可以用物理方法来产生随机数,但价格昂贵,不能重复,使用不便。另一种方法是用数学递推公式产生,这样产生的序列与真正的随机数序列不同,所以称为伪随机数或伪随机序列,只要方法和参数选择合适,所产生的...
  • liyuefeilong
  • liyuefeilong
  • 2015-08-16 00:50:23
  • 5112

线性同余算法以及java中随机数的实现分析

线性同余算法(伪随机数算法)
  • lizhi20091225
  • lizhi20091225
  • 2013-08-20 23:07:33
  • 1438

线性同余发生器-随机数

简介 随机数在概率算法设计中是必须的。在计算机上无法产生真正的随机数,一般使用伪随机数发生器产生的伪随机数。 伪随机数发生器是一个算法,产生的数列元素之间近似相互独立,多数力图产生的样本同分布。 常用...
  • Xminyang
  • Xminyang
  • 2016-11-23 11:49:23
  • 2199

同余式运算的总结

最近在做数论的题目,发现这个东西我没有搞太清楚,现在来总结一发,供大家参考。 1.反身性:a≡a(mod m)a\equiv a (mod\ m); 2.对称性:a≡b(mod m)⇒b≡a(mo...
  • Sakai_Masato
  • Sakai_Masato
  • 2016-02-09 15:44:03
  • 497

混合同余法产生随机数和M序列产生方法(算例及matlab程序)

  • 2009年10月07日 13:46
  • 83KB
  • 下载

数论——同余

HDU 1212  题目链接  点击打开链接 description:给定一个大数a, 求模b的结果。 题目分析:由于a很大,因此需要引入字符串进行处理! 算法分析:   同余定理 1. ( ...
  • xiaotan1314
  • xiaotan1314
  • 2015-08-01 09:10:08
  • 664

线性同余随机发生器

一. LCG(linear congruential generator)线性同余发生器 伪随机数生成器   LCG 算法数学上基于公式:X(n + 1) = (a * X(n) + c) % m 其...
  • cay22
  • cay22
  • 2014-11-27 17:43:14
  • 3751

模运算与同余

两个整数a,b,若它们除以整数m所得的余数相等,则称a,b对于模m同余  记作 a ≡ b (mod m)  读作a同余于b模m,或读作a与b关于模m同余。同余关系满足以下规律: (1)(反身性);(...
  • lsppow2oo9
  • lsppow2oo9
  • 2010-05-27 23:03:00
  • 997

线性同余法[纯理论]

现在的随机函数发生器大都采用的是线性同余法。 同余的概念是这样描述的:设m是一个给定的正整数,如果两个整数a,b用m除,所得的余数相同,则称a,b对模m同余。所谓线性同余法(又叫混合同余法),就是这样...
  • jicheng687
  • jicheng687
  • 2009-10-10 15:25:00
  • 5405

关于同余与模运算的总结

    123456789*987654321 = ()A: 121932631112635266                                       B: 121932621...
  • chocolate_22
  • chocolate_22
  • 2011-05-31 21:55:00
  • 4497
    个人资料
    持之以恒
    等级:
    访问量: 1558
    积分: 366
    排名: 21万+
    文章分类