NOIP2017提高组 小凯的疑惑 结论证明

这题的结论是 a ∗ b − a − b a*b-a-b abab,但是我之前一直不理解为什么,于是现在来证明(玩)一下。
条件: g c d ( a , b ) = 1 gcd(a,b)=1 gcd(a,b)=1
先用比较通俗的语言讲解一下我的思路。
不妨假设 a < b a<b a<b
我们固定着先不用a,然后只用b。
那就可以跳到 b , 2 b , 3 b ⋅ ⋅ ⋅ b,2b,3b··· b,2b,3b这些位置上。(也就是可以支付这些值的意思)
假设当前跳了 t t t步,我们记 t b tb tb与在 t b tb tb左边且最近的 a a a的倍数的距离为 d i s t dis_t dist,不难想象,每跳一步, d i s dis dis的值就会发生一定的改变。如果所有的 d i s dis dis能够覆盖 0 , , 1 , 2 , ⋅ ⋅ ⋅ a − 1 0,,1,2,···a-1 0,,1,2,a1,那么我们就可以利用这些dis对应的起点,加上若干个 a a a,从而实现从某个点开始,后面所有的点都可以被跳到。
那我们就要看一下 d i s dis dis到底可不可以覆盖所有的这 a a a个值呢?(其中0其实可以不必被覆盖到),答案是可以的。譬如说 a = 5 , b = 7 a=5,b=7 a=5,b=7,那么

  1. d i s 1 dis_1 dis1=2
  2. d i s 2 dis_2 dis2=4
  3. d i s 3 dis_3 dis3=1
  4. d i s 4 dis_4 dis4=3
  5. d i s 5 dis_5 dis5=0

发现当跳4次的时候 d i s dis dis就已经覆盖了所有的4个值(0可以不管)。
事实上,只要 a , b a,b a,b互质,那么 b , 2 b , 3 b ⋅ ⋅ ⋅ , ( a − 1 ) b , a b b,2b,3b···,(a-1)b,ab b,2b,3b,(a1)b,ab,这 a a a个数对应的 d i s dis dis就互不相同,其实这个 d i s dis dis也就是对 a a a取余后的数。也就是说 a a a个余数各不相同,构成了 a a a的一个完全剩余系。不过可以去掉0,所以跳 a − 1 a-1 a1次就够了。这个结用反证法很容易可以证明。
接下来由于我表达能力不足可能说不太清楚。
最后一个被跳到的就是 ( a − 1 ) b (a-1)b (a1)b,那从它开始后面的肯定全部都可以被跳到了。譬如 ( a − 1 ) b + 1 (a-1)b+1 (a1)b+1可以由之前某个满足 d i s ? = d i s a − 1 + 1 dis_{?}=dis_{a-1}+1 dis?=disa1+1的步数加上若干个 a a a获得。
不过 ( a − 1 ) b (a-1)b (a1)b前面实际上也还有一串连续的数可以被跳到,譬如 ( a − 1 ) b − 1 (a-1)b-1 (a1)b1可以由之前某个满足 d i s ? = d i s a − 1 − 1 dis_{?}=dis_{a-1}-1 dis?=disa11的步数加上若干个 a a a获得。所以最后一个不能被跳到的数是 a ∗ b − a − b a*b-a-b abab

之后再用形式化的数论语言把证明过程写一遍。
aswl,写Markdown和LaTeX好累啊。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值