PythonでサイズNのリング内の任意の整数点からAとBまでの距離の最小合計を求めます
1からNまでの数個の数字で構成されるリングがあるとします。また、2つの数字AとBもあります。これで、任意の場所(たとえばx)に立つことができます。距離の合計に対してカウント操作を実行します(たとえば、Z =XからAまでの距離+XからBまでの距離)。 Zが最小になるようにXを選択する必要があります。最後にZの値を返します。XはAおよびBと同じではないことに注意する必要があります。
したがって、入力がN =30、A =10、B =20の場合、X =15を選択すると、出力は10になります。XからAまでの距離は5で、 XからBは5です。したがって、合計距離=5 + 5=10です。
これを解決するには、次の手順に従います-
-
a> bがゼロ以外の場合、
-
aとbを交換する
-
-
clock_wise_dist:=b-a
-
counter_clock_wise_dist:=(a --1)+(n --b + 1)
-
minimum_dist:=clock_wise_dist、counter_clock_wise_distの最小値
-
minimum_distが1と同じ場合、
-
3を返す
-
-
minimum_distを返す
例
理解を深めるために、次の実装を見てみましょう-
def get_min_z(n, a, b): if (a > b): a, b = b, a clock_wise_dist = b - a counter_clock_wise_dist = (a - 1) + (n - b + 1) minimum_dist = min(clock_wise_dist, counter_clock_wise_dist) if (minimum_dist == 1): return 3 return minimum_dist n = 30 a = 10 b = 20 print(get_min_z(n, a, b))
入力
30, 10, 20
出力
10
-
Pythonプログラムで配列の合計を見つける
この記事では、以下に示す問題ステートメントの解決策について学習します。 問題の説明 −配列の合計を計算するために必要な配列が与えられます。 合計を取得するために各インデックスで配列と要素全体をトラバースするブルートフォースアプローチについては、以下で説明します。合計を取得するための各インデックスについては、以下で説明します。 例 # sum function def sum_(arr,n): # using built-in function return(sum(arr)) # main arr = [11,22,33,44,55,66
-
配列の合計を見つけるPythonプログラム
この記事では、特定の問題ステートメントを解決するための解決策とアプローチについて学習します。 問題の説明 入力として配列が与えられた場合、与えられた配列の合計を計算する必要があります。 ここでは、ブルートフォースアプローチに従うことができます。つまり、リストをトラバースし、各要素を空の合計変数に追加します。最後に、合計の値を表示します。 以下で説明するように、組み込みの合計関数を使用して別のアプローチを実行することもできます。 例 # main arr = [1,2,3,4,5] ans = sum(arr,n) print ('Sum of the array is '