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

Pythonでc[i]=d * a [i] +b[i]として作成された配列c[]のゼロの数を最大化するためにdを見つけます


n個の整数の2つの配列AとBがあるとします。ここで、配列Cを考えます。ここで、i番目の数はd * A [i] +B[i]になります。 dは任意の実数です。配列Cが最大数のゼロを持つようにdを見つける必要があります。ゼロの数も返します。

したがって、入力がA =[15、40、45]およびB =[4、5、6]の場合、出力はd =-0.266666になり、ゼロの数は1になります

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

  • n:=Aのサイズ

  • my_map:=新しいマップ

  • カウント:=0

  • 0からnの範囲のiの場合、実行

    • B [i]が0と同じでなく、A [i]が0と同じでない場合、

      • val:=(-1.0 * B [i])/ A [i]

      • valがmy_mapにない場合は、

        • my_map [val]:=0

      • my_map [val]:=my_map [val] + 1

    • それ以外の場合、B [i]が0と同じで、A [i]が0と同じである場合、

      • count:=count + 1

  • 最大:=0;

  • my_mapの各アイテムについて、実行します

    • maximum:=my_map [item]の最大値、maximum

  • キーごとに、my_mapの値を実行します

    • 値が最大値と同じ場合、

      • 表示キー

      • ループから出てきます

  • 最大+カウントを表示

例(Python)

理解を深めるために、次の実装を見てみましょう-

def find_d_zero(A, B) :
   n = len(A)
   my_map = {}
   count = 0
   for i in range(n) :
      if (B[i] != 0 and A[i] != 0) :
         val = (-1.0 * B[i]) / A[i]
         if val not in my_map :
            my_map[val] = 0
         my_map[val] += 1
      elif (B[i] == 0 and A[i] == 0) :
      count += 1
   maximum = 0;
   for item in my_map :
      maximum = max(my_map[item], maximum)
   for keys, values in my_map.items() :
      if (values == maximum) :
         print("d = ", keys)
         break
   print("Number of 0s: ", maximum + count)
a = [15, 40, 45]
b = [4, 5, 6]
find_d_zero(a, b)

入力

[15, 40, 45], [4,5,6]

出力

d = -0.26666666666666666
Number of 0s: 1

  1. 配列内の最大の要素を見つけるPythonプログラム

    この記事では、以下に示す問題ステートメントの解決策について学習します。 問題の説明 −配列が与えられたので、配列の最大要素を計算する必要があります。 ここでは、ループ全体をトラバースして最大の要素を計算し、要素を取得するブルートフォースアプローチを使用します。 以下の実装を観察できます。 例 # largest function def largest(arr,n):    #maximum element    max = arr[0]    # traverse the whole loop    for

  2. 配列の合計を見つけるPythonプログラム

    この記事では、特定の問題ステートメントを解決するための解決策とアプローチについて学習します。 問題の説明 入力として配列が与えられた場合、与えられた配列の合計を計算する必要があります。 ここでは、ブルートフォースアプローチに従うことができます。つまり、リストをトラバースし、各要素を空の合計変数に追加します。最後に、合計の値を表示します。 以下で説明するように、組み込みの合計関数を使用して別のアプローチを実行することもできます。 例 # main arr = [1,2,3,4,5] ans = sum(arr,n) print ('Sum of the array is '