ধরুন আমাদের n পূর্ণসংখ্যার দুটি অ্যারে এবং B আছে, এখন একটি অ্যারে C বিবেচনা করুন, যেখানে i-ম সংখ্যাটি হবে d*A[i] + B[i] এবং এখানে d হল যেকোনো নির্বিচারে বাস্তব সংখ্যা। আমাদের এমন d খুঁজে বের করতে হবে যে অ্যারে C-তে সর্বাধিক সংখ্যক শূন্য রয়েছে। এছাড়াও শূন্য সংখ্যা ফেরত দিন।
সুতরাং, যদি ইনপুটটি A =[15, 40, 45] এবং B =[4, 5, 6] এর মত হয়, তাহলে আউটপুট হবে d =-0.266666, শূন্যের সংখ্যা হবে 1
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
-
n :=A
এর আকার -
my_map :=একটি নতুন মানচিত্র
-
গণনা :=0
-
0 থেকে n রেঞ্জের জন্য, করুন
-
যদি B[i] 0 এর মত না হয় এবং A[i] 0 এর মত না হয়, তাহলে
-
val :=(-1.0 * B[i]) / A[i]
-
যদি val my_map-এ না থাকে, তাহলে
-
my_map[val] :=0
-
-
my_map[val] :=my_map[val] + 1
-
-
অন্যথায় যখন B[i] 0 এর সমান এবং A[i] 0 এর সমান, তখন
-
গণনা :=গণনা + 1
-
-
-
সর্বোচ্চ :=0;
-
my_map-এ প্রতিটি আইটেমের জন্য, করুন
-
সর্বোচ্চ :=my_map[আইটেম] এর সর্বোচ্চ, সর্বোচ্চ
-
-
প্রতিটি কী-এর জন্য, my_map-এ মান, do
-
যদি মান সর্বোচ্চ সমান হয়, তাহলে
-
প্রদর্শন কী
-
লুপ থেকে বেরিয়ে আসুন
-
-
-
প্রদর্শন সর্বাধিক + গণনা
উদাহরণ (পাইথন)
আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -
def find_d_zero(A, B) : n = len(A) my_map = {} count = 0 for i in range(n) : if (B[i] != 0 and A[i] != 0) : val = (-1.0 * B[i]) / A[i] if val not in my_map : my_map[val] = 0 my_map[val] += 1 elif (B[i] == 0 and A[i] == 0) : count += 1 maximum = 0; for item in my_map : maximum = max(my_map[item], maximum) for keys, values in my_map.items() : if (values == maximum) : print("d = ", keys) break print("Number of 0s: ", maximum + count) a = [15, 40, 45] b = [4, 5, 6] find_d_zero(a, b)
ইনপুট
[15, 40, 45], [4,5,6]
আউটপুট
d = -0.26666666666666666 Number of 0s: 1