মনে করুন আমাদের একটি উপাদানের লিস্ট রয়েছে। আমরা নিচের অ্যালগরিদম অনুসরণ করে 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] হলে, আউটপুট হবে ১৯৯। কারণ L-এর সমস্ত পারমুটেশনের জন্য S-এর মান ১১৯, তাই তাদের গড়ও ১১৯।
সমাধান পদ্ধতি
এই সমস্যাটি সমাধান করতে নিচের ধাপগুলো অনুসরণ করুন:
- m := 10^9+7
- li := L-এ থাকা প্রতিটি x এর জন্য x+1 মানযুক্ত একটি লিস্ট
- prod := 1
- li-এ থাকা প্রতিটি i এর জন্য
- prod := prod * i
- prod := prod mod m
- return (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