Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonで2つの数値のシフトされたテーブル間の最小の違いを見つける


2つの数値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、...]になり、これらのシフトされたテーブルの2つの項の最小差は20-20=0になります。

これを解決するには、次の手順に従います-

  • g:=(p、q)のgcd

  • 違い:=| 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

  1. いいえが2の累乗であるかどうかを調べるPythonプログラム

    この記事では、特定の問題ステートメントを解決するための解決策とアプローチについて学習します。 問題の説明 数nが与えられた場合、与えられた数が2の累乗であるかどうかを確認する必要があります。 アプローチ 入力数を2で割り続けます。つまり、=n/2を繰り返します。 各反復で、n%2がゼロ以外になり、nが1でない場合、nは2の累乗ではないことを確認します。 nが1になると、2の累乗になります。 以下の実装を見てみましょう- 例 def isPowerOfTwo(n):    if (n == 0):       retur

  2. 2つのリストの違いをリストするPythonプログラム。

    この問題では、2つのリストが与えられます。私たちのタスクは、2つのリストの違いを表示することです。 Pythonはset()メソッドを提供します。ここではこの方法を使用します。セットは、重複する要素がない順序付けられていないコレクションです。セットオブジェクトは、和集合、共通部分、差、対称差などの数学演算もサポートしています。 例 Input::A = [10, 15, 20, 25, 30, 35, 40] B = [25, 40, 35] Output: [10, 20, 30, 15] 説明 difference list = A - B アルゴリズム Step 1: Inp