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

Pythonで特定の配列のすべてのサブ配列の合計の2乗の合計の合計を見つけるプログラム


リストAがあるとします。n個の要素を持つリストlには(2n-1)個の空でないサブリストがあることがわかっているので、Aのすべての空でないサブリストを取得しました。次に、サブリストごとに、sublist_sum(要素の合計とS 1 で表す)を計算します。 、S 2 、S 3 、...、S (2N-1) )。 P =2 S1 となるような特別な合計Pがあります。 + 2 S2 +2 S3 .... + 2 S(2N-1) 。 Pを見つける必要があります。Pが大きすぎる場合は、P mod(10 ^ 9 + 7)を返します。

したがって、入力がA =[2,2,3]の場合、出力は次のようになります。サブセットは

  • {2}したがって、2 ^ 2 =4
  • {2}したがって、2 ^ 2 =4
  • {3}したがって2^3 =8
  • {2,2}なので、2 ^ 4 =16
  • {2,3}なので、2 ^ 5 =32
  • {2,3}なので、2 ^ 5 =32
  • {2,2,3}なので、2 ^ 7 =128

合計は4+4 + 8 + 16 + 32 + 32 + 128 =224

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

  • ans:=1
  • m:=10 ^ 9 + 7
  • Aの各elについて、
    • ans:=ans *(1 +(2 ^ el mod m))
    • ans:=ans mod m
  • return(m + ans-1)mod m

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

def solve(A):
   ans=1
   m=10**9+7

   for el in A:
      ans *= (1+pow(2,el,m))
      ans %= m
   return (m+ans-1) % m


A = [2,2,3]
print(solve(A))

入力

[2,2,3]

出力

224

  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. 配列の合計を見つけるPythonプログラム

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