কম্পিউটার

পাইথন ব্যবহার করে সর্বাধিক জনসংখ্যার বছর খুঁজে বের করার প্রোগ্রাম


ধরুন আমাদের কাছে দুটি কলাম (জন্ম, মৃত্যু) সহ একটি টেবিল রয়েছে যেখানে প্রতিটি সারি ith ব্যক্তির জন্ম এবং মৃত্যুর বছরগুলিকে প্রতিনিধিত্ব করছে। কোনো বছর y এর জনসংখ্যা হল y সময়ে জীবিত মানুষের সংখ্যা। ith ব্যক্তিকে বছরের y এর জনসংখ্যায় গণনা করা হয় যখন y অন্তর্ভুক্ত পরিসরে থাকে [জন্ম_i, মৃত্যু_i - 1]। (ব্যক্তির মৃত্যু যে বছরে গণনা করা হয় না)। সুতরাং, আমাদের সর্বাধিক জনসংখ্যার সাথে প্রথম বছরটি খুঁজে বের করতে হবে।

সুতরাং, যদি ইনপুট মত হয়

জন্ম মৃত্যু
1970 2010
1960 2020
1940 1970

তাহলে আউটপুট হবে 2 কারণ লক্ষ্যের সাথে মেলে শুধুমাত্র একটি মান, সেটি হল সংখ্যা[4], তাই i =4। এখন |4-2| =2।

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

  • d :=একটি মানচিত্র, যেখানে কিছু কী পাওয়া না গেলে, 0

    ফেরত দিন
  • res :=দুটি আইটেম সহ একটি তালিকা [2051, 0]

  • জন্মের প্রতিটি বছরের জন্য YOB, এবং মৃত্যুর বছর YOD ম্যাট্রিক্সে, করুন

    • বছরের জন্য YOB থেকে YOD, করুন

      • d[বছর] :=d[বছর] + 1

      • যদি d[বছর]>=res[1], তাহলে

        • যদি d[বছর]> res[1] হয়, তাহলে

          • res :=দুটি উপাদান সহ একটি তালিকা [বছর, d[বছর]]

        • অন্যথায়,

          • res :=দুটি উপাদান সহ একটি তালিকা [(সর্বনিম্ন বছর এবং res[0]), res[1]]

  • রিটার্ন রেস[0]

আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -

উদাহরণ

from collections import defaultdict
def solve(matrix):
   d = defaultdict(int)
   res = [2051, 0]
   for YOB, YOD in matrix:
      for year in range(YOB, YOD):
         d[year] += 1
         if d[year] >= res[1]:
            if d[year] > res[1]:
               res = [year, d[year]]
            else:
               res = [min(year, res[0]), res[1]]
   return res[0]
matrix = [[1970,2010],[1960,2020],[1940,1970]]
print(solve(matrix))

ইনপুট

[[1970,2010],[1960,2020],[1940,1970]]

আউটপুট

1960

  1. পাইথনে একই দৈর্ঘ্যের k ফিতার সর্বাধিক দৈর্ঘ্য খুঁজে বের করার প্রোগ্রাম

  2. পাইথনে সর্বোচ্চ বিল্ডিং উচ্চতা খুঁজে বের করার প্রোগ্রাম

  3. পাইথন ব্যবহার করে সর্বাধিক সম্ভাব্যতার সাথে পথ খুঁজে বের করার প্রোগ্রাম

  4. পাইথন প্রোগ্রাম ম্যাপ ফাংশন ব্যবহার করে সর্বাধিক 1 এর সারি খুঁজে বের করতে