在Python中找到两个数字的移位表之间的最小差异
假设我们有两个数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