1. 程式人生 > 其它 >兩個互質的正整數不能湊出的最大數的證明

兩個互質的正整數不能湊出的最大數的證明

結論

  如果$p, q$均是正整數且互質,那麼$px + qy$$\left( {x \geq 0, y \geq 0} \right)$不能表示的最大的數為$pq - p - q = \left( {p-1} \right) \left( {q-1} \right) - 1$。

 

證明

  首先證明$pq - p - q$不能被$px + qy$$\left( {x \geq 0, y \geq 0} \right)$表示出來。

  反證法。假設$pq - p - q$可以被$px + qy$表示,即$pq - p - q = px + qy$,那麼就有$pq = pq = p \left( {x+1} \right) + q \left( {y+1} \right)$。

  由於$p \mid pq,~p \mid p \left( {x+1} \right)$,所以有$p \mid q\left( {y+1} \right)$。又因為$p$和$q$互質,所以$p \mid \left( {y+1} \right)$。又因為$y \geq 0$,因此有$p \leq y + 1$,兩邊同時乘上$q$,所以有$q \left( {y+1} \right) \geq pq$。

  同理可證$p \left( {x+1} \right) \geq pq$。

  所以有$p \left( {x+1} \right) + q \left( {y+1} \right) \geq 2pq > pq$,矛盾。

  因此有$pq - p - q$不能被$px + qy$$\left( {x \geq 0, y \geq 0} \right)$表示出。

  下面證明大於$pq - p - q$的數一定可以用$px+qy$表示出來$\left( {x \geq 0,~ y \geq 0} \right)$。

  假設有$n > pq - p - q$,可以表示為$n = pq - p - q + z$$\left( {z > 0} \right)$。其中我們將$z$表示為$z = k \times min \left\{ {p, q} \right\} + r$,其中$k \geq 0,~ 0 \leq r < min \left\{ {p, q} \right\},~ z > 0$。

  由於$gcd \left( {p, q} \right) = 1$,根據裴蜀定理必然存在整數$x$和$y$使得等式$px + qy = r$成立。

  因此$r$就可以用$p$和$q$來表示了,所以$z$也可以用$p$和$q$來表示了,所以有

\begin{align*}
n &= pq - p - q + z \\
&= pq - p - q + k \times min \left\{ {p, q} \right\} + px + qy \\
&= \left( {q-1+x} \right) p + \left( {y-1} \right) q + k \times min \left\{ {p, q} \right\}
\end{align*}

  我們下面可以證明有

\begin{cases}
q - 1 + x &\geq 0 \\
y - 1 &\geq 0
\end{cases}

  對於等式$px_{0} + qy_{0} = r$$\left( {0 \leq t < min \left\{ {p, q} \right\}} \right)$,可以發現至少存在一個解$x$或$y$是要$\geq 0$的。

  可以用反證法,假設兩個解都是小於$0$的,由於$p,~ q > 0$因此必然有$px + qy < 0$,這就與$0 \leq r < min \left\{ {p, q} \right\}$矛盾了。

  假設有$x_{0}$和$y_{0}$滿足等式$px_{0} + qy_{0} = r$,那麼$x$和$y$的通解為

\begin{cases}
x = x_{0} + kq \\
y = y_{0} - kp
\end{cases}

  對於$r = 0$的情況,我們可以有$x = 0,~ y = 0$,取$k = -1$,代入到通解中,解就變成了$y = p,~ x = -q$。因此對於兩個解都取$0$的情況,我們可以轉換為一個大於$0$,另一個小於$0$。因此對於$0 \leq r < min \left\{ {p, q} \right\}$,變成了至少存在一個解大於$0$。

  根據通解,我們規定將$y$都轉換成$0 < y \leq p$這個區間範圍內,此時對應的$x = \frac{r - yq}{p}$。

  根據$0 < y \leq p$有\begin{align*} r - pq &\leq {r - yq} < r \\ \frac{r-pq}{p} &\leq {\frac{r-yq}{p}} < \frac{r}{p} \end{align*}即$$\frac{r-pq}{p} \leq x < \frac{r}{p}$$因為$x$是整數,因此有$$\left \lceil \frac{r-pq}{p} \right \rceil \leq \frac{r-yq}{p} < \left \lfloor \frac{r}{p} \right \rfloor$$即$$\left \lfloor \frac{r-pq+p-1}{p} \right \rfloor \leq \frac{r-yq}{p} < \left \lfloor \frac{r}{p} \right \rfloor$$又因為$0 \leq r < min \left\{ {p, q} \right\}$,因此$\left \lfloor \frac{r}{p} \right \rfloor = 0$,因此有$$\left \lfloor \frac{r-1+ \left( {1-q} \right)p}{p} \right \rfloor \leq \frac{r-yq}{p} < \left \lfloor \frac{r}{p} \right \rfloor$$即$1 - q \leq x < 0$。

  因此對應任意一組滿足等式$px_{0} + qy_{0} = r$$\left( {0 \leq r < min \left\{ {p, q} \right\}} \right)$的解$x_{0},~ y_{0}$,我們都可以根據通解把解轉換到$0 < y \leq p,~ 1-q \leq x < 0$這個區間範圍內。

  即有$y \geq 1,~ x \geq 1 - q$,滿足上面給出的方程組

\begin{cases}
q - 1 + x &\geq 0 \\
y - 1 &\geq 0
\end{cases}

  因此對於$n = \left( {q-1+x} \right) p + \left( {y-1} \right) q + k \times min \left\{ {p, q} \right\}$,無論$min \left\{ {p, q} \right\}$是$p$還是$q$,等式中$p$和$q$的係數都是滿足$\geq 0$的。即證明了大於$pq - p - q$的數一定可以用$px+qy$來表示出來$\left( {x \geq 0,~ y \geq 0} \right)$。

  綜上所述,定理得證。

 

參考例題

小凱手中有兩種面值的金幣,兩種面值均為正整數且彼此互素。

每種金幣小凱都有無數個。

在不找零的情況下,僅憑這兩種金幣,有些物品他是無法準確支付的。

現在小凱想知道在無法準確支付的物品中,最貴的價值是多少金幣?

注意:輸入資料保證存在小凱無法準確支付的商品。

輸入格式

輸入資料僅一行,包含兩個正整數 $a$ 和 $b$,它們之間用一個空格隔開,表示小凱手中金幣的面值。

輸出格式

輸出檔案僅一行,一個正整數 $N$,表示不找零的情況下,小凱用手中的金幣不能準確支付的最貴的物品的價值。

資料範圍

$1 \leq {a,b} \leq {10}^{9}$

輸入樣例:

3 7

輸出樣例:

11

  這題就是考察這個結論,對應的AC程式碼如下:

 1 #include <iostream>
 2 #include <algorithm>
 3 using namespace std;
 4 
 5 int main() {
 6     int a, b;
 7     cin >> a >> b;
 8     cout << (a - 1ll) * (b - 1) - 1;
 9     
10     return 0;
11 }

 

參考資料

  AcWing 525. 小凱的疑惑:https://www.acwing.com/solution/acwing/content/3165/

  數論:px+py 不能表示的最大數為pq-p-q的證明:https://www.cnblogs.com/Yuzao/p/7074465.html