这题的结论是
a
∗
b
−
a
−
b
a*b-a-b
a∗b−a−b,但是我之前一直不理解为什么,于是现在来证明(玩)一下。
条件:
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,⋅⋅⋅a−1,那么我们就可以利用这些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,那么
- d i s 1 dis_1 dis1=2
- d i s 2 dis_2 dis2=4
- d i s 3 dis_3 dis3=1
- d i s 4 dis_4 dis4=3
- 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⋅⋅⋅,(a−1)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
a−1次就够了。这个结用反证法很容易可以证明。
接下来由于我表达能力不足可能说不太清楚。
最后一个被跳到的就是
(
a
−
1
)
b
(a-1)b
(a−1)b,那从它开始后面的肯定全部都可以被跳到了。譬如
(
a
−
1
)
b
+
1
(a-1)b+1
(a−1)b+1可以由之前某个满足
d
i
s
?
=
d
i
s
a
−
1
+
1
dis_{?}=dis_{a-1}+1
dis?=disa−1+1的步数加上若干个
a
a
a获得。
不过
(
a
−
1
)
b
(a-1)b
(a−1)b前面实际上也还有一串连续的数可以被跳到,譬如
(
a
−
1
)
b
−
1
(a-1)b-1
(a−1)b−1可以由之前某个满足
d
i
s
?
=
d
i
s
a
−
1
−
1
dis_{?}=dis_{a-1}-1
dis?=disa−1−1的步数加上若干个
a
a
a获得。所以最后一个不能被跳到的数是
a
∗
b
−
a
−
b
a*b-a-b
a∗b−a−b
之后再用形式化的数论语言把证明过程写一遍。
aswl,写Markdown和LaTeX好累啊。