数论基本定理

本文深入探讨数论基础,通过Python实现实例,解析排列组合、模运算、同余概念及其性质。详细阐述了同余运算法则、整除性、等价性,并提供了应用于不同进制判断整除性的方法。同时,通过实例展示了如何利用同余性质简化复杂计算,以及其在实际应用中的便捷性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

数论及Python实践

从排列与组合的python实现到”生日问题”的解释

同余运算

a=bm+ramodb=r

如果两个数之差能被 m 整除,我们就说 a b 对模数 m 同余(关于 m 同余)。我们常把 amod3=1 记做 a1(mod3)

之所以把同余当做一种运算,是因为同余满足运算的诸多性质。(如何发明新的数学?:-D)

顾名思义,余数相同,记为:

ab(modm)

基本性质如下:

  • 整除性

    ab(modm)cm=(ab),cZ

    也就是一般同余式的左侧大于右侧( ab

  • 等价性

    ab(modm)(ab)0(modm)

同余运算只关心余数,而不关心”整数”的部分;

整除规则

可通过最后几位判别:

r=0n10rarr=0k110rar(mod2k)r=0n10rarr=0k110rar(mod5k)r=0n10rarr=0k110rar(mod10k)

ar 表示的是一个十进制数的每一位,下标由小到大(从又向做), 123=3×100+2×101+1×102 ,同余的含义即是如果想求得左端对某个数的余数等价于右端对每个数的余数,而右端是对左端的一种截断(保留其中的 k 位)。

可得如下的一些小结论:

  • ±2 2k(k=1) ),则 r=0k110rar ,只保留最后一位,也即 a0 是否能够被2整除,也即判断最后一位是否为0,2,4,6,8

    • ±4 2k(k=2) ),也即判断最后两位是否能被4整除

    • ±8 2k(k=3) ),也即判断最后3位是否能被8整除

    • ±5 5k(k=1) ),也即判断最后一位是否被5整除,也即为5/0

    • ±10 10k(k=1) ),也即判断最后一位是否被10整除,也即为 0

    一些推论

    • 101(mod3),10n1(mod3)10n10(mod3)

    • 一些应用

      来证明小学三年级的题:

      • 一个数能否被2整除,只需要看它的个位能否被2整除即可。

        这是因为10能被2整除,因此一个数 10a+b 能被2整除当且仅当 b (也即是个位数)能被2整除。(同理可证一个数能被5整除,10*a+b,b能被5整除,b为0或5)

      • 一个数能被3整除只需看各位数之和是否能被3整除。

        因为10n1总能被3整除,例如 2345=2(999+1)+3(99+1)+4(9+1)+5=2999+399+49+2+3+4+5

      我们来看其他进制的情况,是因为 101(mod3)10n1(mod3) ,我们来考虑36进制的情况,其与1同余(关于7),也即 361(mod7)36n1(mod7)36n10(mod7) ,所以同理,判断一个数是否能被7整除,也是它的各位之和能被7整除。 1114=1(3631+1)+1(3621+1)+1(3611+1)+4=(3631)+(3621)+(3611)+1+1+1+4 ,也是其各位之和。

      我们再来一个常规的,如十六进制关于5(或者关于3), 161(mod5)16n1(mod5)16n10(mod5)

      101(mod3)10n1(mod3)10n10(mod3)101(mod9)10n1(mod9)10n10(mod9)81(mod7)8n1(mod7)8n10(mod7)161(mod3)16n1(mod3)16n10(mod3)161(mod5)16n1(mod5)10n10(mod5)

      以上情况都是在判断某种进制下的数 a 能否被某个数 b 整除时,转化为该数 a 的各位之和能否被数 b 整数来判断。

      References

      [1] 同余——07年NOIp模拟赛by Matrix67 解题报告

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

五道口纳什

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值