量水问题通解

现有两个水杯,容量分别为 m m m ml和 n n n ml,想要量出 t t t ml水,该如何称量?

该问题可直接形式化为
找到 k 1 k_1 k1 k 2 k_2 k2( k 1 , k 2 ∈ N + k_1,k_2\in \mathbb{N_+} k1,k2N+) 使得
m ⋅ k 1 − n ⋅ k 2 = t m\cdot k_1-n\cdot k_2 = t mk1nk2=t
显然对于一组特解
{ x 0 = k 1 y 0 = k 2 \left\{ \begin{aligned} x_0 & = & k_1 \\ y_0 & = & k_2 \\ \end{aligned} \right. {x0y0==k1k2
具体操作为不断的装满容量为 m m m 的水杯,并将其倒入容量为 n n n的水杯,容量为 n n n的水杯一旦装满,便将其全部倒掉,当装入到第 k 1 k_1 k1杯 容量为 m m m的水杯时,将其倒入容量为 n n n的杯子直至装满,此时容量为 m m m的水杯恰好剩下 t t t ml水。

此问题要有解,显然必须 t t t m , n m,n m,n的最大公约数的倍数,即 g c d ( m , n ) ∣ t gcd(m,n)|t gcd(m,n)t,而方程 m ⋅ x + n ⋅ y = g c d ( m , n ) m\cdot x+n\cdot y=gcd(m,n) mx+ny=gcd(m,n)
一定有解。
如果 g c d ( n , x ) = 1 gcd(n,x)=1 gcd(n,x)=1,根据欧拉定理有
x φ ( n ) ≡ 1 m o d    ( n ) x^{\varphi(n)}\equiv1\mod(n) xφ(n)1mod(n)
所以有
x φ ( n ) − 1 ⋅ x ≡ 1 m o d    ( n ) x^{\varphi(n)-1}\cdot x\equiv1\mod(n) xφ(n)1x1mod(n)
因此 x x x n n n下的乘法逆元 x − 1 x^{-1} x1
x − 1 = x φ ( n ) − 1 m o d    ( n ) x^{-1}=x^{\varphi(n)-1}\mod(n) x1=xφ(n)1mod(n)
求出逆元后,便可以直接求得 k 1 , k 2 k_1,k_2 k1,k2

例子:现有两个水杯分别为5ml和4ml,如何量出3ml?

即求出 k 1 , k 2 k_1,k_2 k1,k2使得
5 ⋅ k 1 − 3 ⋅ k 2 = 4 5\cdot k_1-3\cdot k_2=4 5k13k2=4

因为 φ ( 3 ) = 2 \varphi(3)=2 φ(3)=2,所以 5 − 1 m o d    ( 3 ) = 5 φ ( 3 ) − 1 m o d    ( 3 ) = 2 5^{-1}\mod(3)=5^{\varphi(3)-1}\mod (3)=2 51mod(3)=5φ(3)1mod(3)=2,于是有
5 ⋅ 2 − 3 ⋅ 3 = 1 5\cdot2-3\cdot3=1 5233=1
两边乘以 t = 4 t=4 t=4
5 ⋅ ( 2 ⋅ 4 ) − 3 ⋅ ( 3 ⋅ 4 ) = 4 5\cdot(2\cdot4)-3\cdot(3\cdot4)=4 5(24)3(34)=4
另外可以约掉公共部分 5 ⋅ 3 ⋅ 2 5\cdot3\cdot2 532
( 5 ⋅ ( 2 ⋅ 4 ) − 5 ⋅ 3 ⋅ 2 ) − ( 3 ⋅ ( 3 ⋅ 4 ) − 5 ⋅ 3 ⋅ 2 ) = 4 (5\cdot(2\cdot4)-5\cdot3\cdot2)-(3\cdot(3\cdot4)-5\cdot3\cdot2)=4 (5(24)532)(3(34)532)=4

5 ⋅ ( 2 ⋅ 4 − 3 ⋅ 2 ) − 3 ⋅ ( 3 ⋅ 4 − 5 ⋅ 2 ) = 4 5\cdot(2\cdot4-3\cdot2)-3\cdot(3\cdot4-5\cdot2)=4 5(2432)3(3452)=4
最后化简为
5 ⋅ 2 − 3 ⋅ 2 = 4 5\cdot2-3\cdot2=4 5232=4
即每次装满5ml的水杯,并倒入3ml的水杯,3ml一旦装满,便倒掉,当装满第二杯5ml的水杯时,并将3ml装满时,5ml水杯便剩下4ml

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值