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好累啊。

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