কম্পিউটার টিউটোরিয়াল

পাইথনে একটি লিস্টের সমস্ত পারমুটেশনের জন্য সব বিশেষ মানের গড় গণনা করার প্রোগ্রাম


মনে করুন আমাদের একটি উপাদানের লিস্ট রয়েছে। আমরা নিচের অ্যালগরিদম অনুসরণ করে 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

  1. দেওয়া স্ট্রিংয়ের সকল পারমিউটেশন প্রিন্ট করার পাইথন প্রোগ্রাম

  2. পাইথন প্রোগ্রাম: লিস্ট থেকে অনন্য (Unique) মান প্রিন্ট করা

  3. পাইথনে একটি লিস্টের সব সাবলিস্ট প্রিন্ট করার প্রোগ্রাম

  4. পাইথনে লিস্টের সকল পারমিউটেশন (Permutation) বের করা