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

Python-এ সময় t পর ভাইরাসের প্রত্যাশিত বৃদ্ধি বের করার প্রোগ্রাম


মান লেট একটি বিপজ্জনক ভাইরাস আছে যা দ্রুত বৃদ্ধি পায়। ভাইরাস কোষের সংখ্যা x ফ্যাক্টর দিয়ে বৃদ্ধি পাওয়ার প্রোবাবিলিটি 0.5 এবং y ফ্যাক্টর দিয়ে বৃদ্ধি পাওয়ার প্রোবাবিলিটিও 0.5। এখন যদি শুরুতে ভাইরাসের একক কোষ থাকে, তবে t সময় পর ভাইরাস কোষের প্রত্যাশিত সংখ্যা ক্যালকুলেট করুন। যদি উত্তর খুব বড় হয়, তবে রেজাল্ট mod 10^9+7 করুন।

তাহলে, যদি ইনপুট হয় x = 2, y = 4, t = 1, তবে আউটপুট হবে 3, কারণ শুরুতে ভাইরাসের শুধু একক কোষ। x সময় পর, প্রোবাবিলিটি 0.5 দিয়ে এর আকার ডাবল হয় (x2) এবং, অন্য 0.5 প্রোবাবিলিটিতে এর আকার ৪ গুনা বৃদ্ধি পায়। অতএব, সময় t = 1 পর ভাইরাস কোষের প্রত্যাশিত সংখ্যা: 0.5*2*1 + 0.5*4*1 = 3।

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

  • m = 10^9+7
  • factor := floor of (x+y)/2
  • res:= 1
  • যখন t > 0, করুন
    • যদি t বিজোড় হয়, তবে
      • res :=(res*factor) mod m
    • factor :=(factor*factor) mod m
    • t := floor of t/2
  • res রিটার্ন করুন

উদাহরণ

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

m=10**9+7 def solve(x, y, t): factor=(x+y)//2 res=1 while t > 0: if t % 2: res = (res*factor) % m factor = (factor*factor) % m t = t// 2 return res x = 2 y = 4 t = 1 print(solve(x, y, t))

ইনপুট

2, 4, 1 

আউটপুট

3

  1. পাইথনে পলিগনের ক্ষেত্রফল বের করার প্রোগ্রাম

  2. পাইথনে রঙ মার্জ করলে অবশিষ্ট ন্যূনতম রঙের সংখ্যা বের করার প্রোগ্রাম

  3. পাইথনে K বৃদ্ধি করলে সর্বোচ্চ সমান উপাদান সাবলিস্টের দৈর্ঘ্য খুঁজে বের করার প্রোগ্রাম

  4. পাইথন প্রোগ্রামে প্রাইম নাম্বার খুঁজে বের করার বিভিন্ন পদ্ধতির বিশ্লেষণ