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

Python에서 항목 목록의 모든 순열에 대한 모든 특수 값의 평균을 계산하는 프로그램

<시간/>

다음 알고리즘으로 S 값을 계산할 수 있는 요소 목록이 있다고 가정합니다.

while size of L > 1 is non-zero, do
   a := L[0]
   b := L[1]
   remove L[1]
   L[0] := a + b + a*b
return L[0] mod (10^9 + 7)

여기서 우리는 L의 가능한 모든 조합에서 계산된 모든 S 값의 평균을 찾아야 합니다.

따라서 입력이 L =[5,3,4]와 같으면 출력은 199가 됩니다. L의 모든 순열에 대해 S의 값이 119이고 평균도 119이기 때문입니다.

이 문제를 해결하기 위해 다음 단계를 따릅니다. −

  • m :=10^9+7
  • li :=L의 모든 x에 대한 x+1의 목록
  • 생산량:=1
  • li의 각 i에 대해 do
    • prod :=prod * i
    • prod :=prod mod m
  • 반환(prod-1) 모드 m

예시

이해를 돕기 위해 다음 구현을 살펴보겠습니다. −

def solve(L):
    m = 10**9+7
    li = [x+1 for x in L]
    prod = 1
    for i in li:
        prod *= i
        prod %= m
    return (prod-1) % m

L = [5,3,4]
print(solve(L))

입력

[5,3,4]

출력

119