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 組成的列表
- prod := 1
- 對於 li 中的每個 i,執行:
- prod := prod * i
- prod := prod mod m
- 返回 (prod-1) mod 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
廣告
資料結構
網路
關係型資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP