在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+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

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程