Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Python에서 두 숫자의 Shifted 테이블 간의 최소 차이 찾기


두 개의 숫자 p와 q가 있다고 가정하고 p와 q의 이동된 무한 테이블에서 항 사이의 최소 차이를 찾아야 합니다. 이러한 이동은 r과 s입니다. 여기서 r, s>=0.

따라서 입력이 p =7 및 q =17, r =6 및 s =3인 경우 출력은 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)의 gcd

  • 차이 :=|r-s| 모드 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