ধরুন, আমাদেরকে n আকারের একটি তালিকা দেওয়া হয়েছে যাতে রয়েছে ধনাত্মক পূর্ণসংখ্যা এবং আরেকটি ধনাত্মক পূর্ণসংখ্যা m। ধরা যাক, আমরা বর্তমানে একটি লুপের ভিতরে আছি এবং প্রতিটি পুনরাবৃত্তিতে, আমরা অ্যারের কিছু উপাদানের মান 1 দ্বারা হ্রাস করি এবং অবশিষ্ট উপাদানগুলির মান m দ্বারা বৃদ্ধি করি। তালিকার অর্ধেক বা তার বেশি উপাদান কিছু পুনরাবৃত্তির পরে শূন্যে পরিণত হয় কিনা তা আমাদের খুঁজে বের করতে হবে। আমরা সম্ভব হলে সত্য ফেরত দিই, আর না হলে মিথ্যা।
সুতরাং, যদি ইনপুটটি হয় input_list =[10, 18, 35, 5, 12], m =4, তাহলে আউটপুট হবে True।
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
- frequency_list :=m+1 আকারের একটি নতুন তালিকা 0 দিয়ে আরম্ভ করা হয়েছে
- i :=0
- যখন আমি <ইনপুট_লিস্টের আকার, কর
-
ফ্রিকোয়েন্সি_লিস্ট[ইনপুট_লিস্ট[i] মোড(মি + 1)] :=
ফ্রিকোয়েন্সি_লিস্ট[ইনপুট_লিস্ট[i] মোড (মি + 1) ] + 1
- i :=i + 1
-
- i :=0
- যখন i <=m, do
- যদি ফ্রিকোয়েন্সি_লিস্ট[i]>=(ইনপুট_লিস্টের আকার / 2), তারপর
- লুপ থেকে বেরিয়ে আসুন
- i :=i + 1
- যদি ফ্রিকোয়েন্সি_লিস্ট[i]>=(ইনপুট_লিস্টের আকার / 2), তারপর
- যদি i <=m, তাহলে
- সত্য ফেরান
- অন্যথায়,
- মিথ্যে ফেরত দিন
উদাহরণ
আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -
def সমাধান(input_list, m):ফ্রিকোয়েন্সি_লিস্ট =[0] * (m + 1) i =0 while(i=(len(input_list)/ 2)):break i +=1 if (i <=m):রিটার্ন অন্য সত্য:Falseinput_list =[10, 18, 35, 5, 12]প্রিন্ট(সল্ভ(ইনপুট_লিস্ট, 4)) ফেরত দিন
ইনপুট
<প্রে>[10, 18, 35, 5, 12], 4আউটপুট
সত্য