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

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

  1. dis1dis_1=2
  2. dis2dis_2=4
  3. dis3dis_3=1
  4. dis4dis_4=3
  5. dis5dis_5=0

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

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章