假设我们有两个数 p 和 q,我们必须在 p 和 q 的移位无限表中找到任何项之间的最小差异,这些移位是 r 和 s,其中 r, s >= 0。
所以,如果输入像 p = 7 和 q = 17,r = 6 和 s = 3,那么输出将是 0,因为表 7 = [7, 14, 21, 28, 35, 42, 49, ...] 和表 17 = [17, 34, 51, 68, 85, 102, 119, ...],那么 7 的移位表将是 [13, 20, 27, 34, 41, 48, 55 , ...] 和 17 的移位表将是 [20, 37, 54, 71, 88, 105, 121, ...],那么这些移位表的两项之间的最小差异是 20-20 = 0。
让我们看看以下实现以获得更好的理解 -
import math def get_minimum_diff (p, q, r, s): g = math.gcd(p,q) difference = abs(r-s) % g return min(difference, g - difference) p = 7 q = 17 r = 6 s = 3 print(get_minimum_diff(p, q, r, s))
7,17,6,3输出结果
0