สมมติว่าเรามีตัวเลขสองตัว 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 :=gcd ของ (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