a,b,c, k 为整数, 0<=a,b,c<10, k>0 ,且 c=[k(a-b+10)]%10, a=?

问题描述 投票:0回答:1

a,b,c, k 为整数,0<=a,b,c<10, k>0 ,且 c=[k(a-b+10)]%10,a=?

如果我知道k,b,c的值,如何计算a的值?

是否可以用k,b,c的表达式来表示a的值。

不知道有没有什么通用的公式可以解决这类问题?

numbers formula number-theory
1个回答
0
投票

只需解决

a

k * (a - b + 10) ≡ c (mod 10)                    # original
k * (a - b) + 10 * k ≡ c (mod 10)                # distribute the k
k * (a - b) ≡ c (mod 10)                         # 10 times anything mod 10 is congruent to zero
k * (a - b) - c ≡ 0 (mod 10)                     # subtract c from both sides
-k^(-1) * (k * (a - b) - c) ≡ 0 (mod 10)         # multiply both sides by -k^(-1) i.e. the negative inverse of k mod 10
-k^(-1) * k * (a - b) + k^(-1) * c ≡ 0 (mod 10)  # distribute -k^(-1)
-1 * (a - b) + k^(-1) * c ≡ 0 (mod 10)           # cancel k^(-1) with k
-a + b + k^(-1) * c ≡ 0 (mod 10)                 # distribute -1
b + k^(-1) * c ≡ a (mod 10)                      # add a to both sides

这取决于

k
模 10 的乘法逆元的存在,仅当
k
与 10 互质时才存在。您可以使用
扩展欧几里德 计算 
k^(-1)(k mod 10 的乘法逆元)算法.

在Python中,这看起来像:

from math import gcd

def solve(b, c, k):
    assert gcd(k, 10) == 1  # assert k is coprime to 10
    return (b + pow(k, -1, 10) * c) % 10
© www.soinside.com 2019 - 2024. All rights reserved.