मान लीजिए हमारे पास तत्वों की एक सूची है, हम निम्न एल्गोरिथम द्वारा S का मान निकाल सकते हैं।
जब तक L का आकार > 1 शून्येतर है, करें
a := L[0]
b := L[1]
L[1] को हटाएं
L[0] := a + b + a*b
वापस करें L[0] mod (10^9 + 7)
यहां हमें L के सभी संभावित क्रमपरिवर्तनों से गणना किए गए सभी S मानों का औसत ज्ञात करना है।
इसलिए, यदि इनपुट है L = [5,3,4], तो आउटपुट 119 होगा, क्योंकि 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