在 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。
為了解決這個問題,我們將遵循以下步驟:
g := (p, q) 的最大公約數
差值 := |r-s| mod g
返回差值和 g - 差值中的最小值
示例
讓我們看看以下實現以更好地理解:
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
廣告
資料結構
網路
關係資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP