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

Python-এ দিয়ে गये অ্যারের সব সাবঅ্যারে সমের ২-এর ঘাতের যোগফল বের করার প্রোগ্রাম


মান লেট A একটি লিস্ট। আমরা A-এর সকল নন-এম্পটি সাবলিস্ট নিচ্ছি যেহেতু একটি n এলিমেন্টের লিস্ট l-র (2n - 1) টি নন-এম্পটি সাবলিস্ট থাকে। এখন প্রতিটি সাবলিস্টের জন্য, সে সাবলিস্ট_সাম (উপাদানগুলোর যোগফল) ক্যালকুলেট করে এবং এগুলাকে S1, S2, S3, ... , S(2N-1) দিয়ে ডিনোট করে। একটি স্পেশাল সম P আছে যাতে P = 2S1 + 2S2 +2S3 .... + 2S(2N-1)। আমাদের P বের করতে হবে। যদি P খুব বড় হয় তবে P mod (10^9 + 7) রিটার্ন করুন।

তাহলে, যদি ইনপুট হয় A = [2,2,3], তবে আউটপুট হবে সাবসেটগুলো হল

  • {2} তাই 2^2 = 4
  • {2} তাই 2^2 = 4
  • {3} তাই 2^3 = 8
  • {2,2} তাই 2^4 = 16
  • {2,3} তাই 2^5 = 32
  • {2,3} তাই 2^5 = 32
  • {2,2,3} তাই 2^7 = 128

যোগফল 4 + 4 + 8 + 16 + 32 + 32 + 128 = 224

এটি সমাধান করতে, আমরা নিচের পদক্ষেপগুলো অনুসরণ করব −

  • ans:= 1
  • m:= 10^9+7
  • A-র প্রতিটি el-এর জন্য, করুন
    • ans := ans *(1 + (2^el mod m))
    • ans := ans mod m
  • (m + ans-1) mod m রিটার্ন করুন

উদাহরণ

বेहतर বোঝার জন্য নিচের ইমপ্লিমেন্টেশন দেখুন −

def solve(A): ans=1 m=10**9+7 for el in A: ans *= (1+pow(2,el,m)) ans %= m return (m+ans-1) % m A = [2,2,3] print(solve(A))

ইনপুট

[2,2,3] 

আউটপুট

224

  1. পাইথন প্রোগ্রামে অ্যারের যোগফল বের করা

  2. পাইথন প্রোগ্রাম অ্যারেতে সবচেয়ে বড় এলিমেন্ট বের করা

  3. পাইথনে কোনো সংখ্যা ২-এর ঘাত কিনা চেক করা

  4. পাইথনে অ্যারের যোগফল বের করা