কম্পিউটার

পাইথনে সেলফ ছাড়া অ্যারের পণ্য


ধরুন আমাদের একটি অ্যারে আছে যার নাম n পূর্ণসংখ্যার সংখ্যা যেখানে n> 1। আমাদের এমন একটি অ্যারে আউটপুট খুঁজে বের করতে হবে যাতে আউটপুট[i] nums[i] ছাড়া সংখ্যার সমস্ত উপাদানের গুণফলের সমান হয়। তাই যদি ইনপুট অ্যারে হয় [1,2,3,4], তাহলে আউটপুট হবে [24,12,8,6]। আমাদের ডিভিশন অপারেটর ব্যবহার না করে এটি সমাধান করতে হবে।

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

  • right_mul :=সংখ্যার সমান আকারের একটি বিন্যাস, এটি 0 দিয়ে পূরণ করুন
  • right_mul এর শেষ উপাদান =সংখ্যার শেষ উপাদান
  • আমি রেঞ্জ 1 থেকে সংখ্যার দৈর্ঘ্যের জন্য
    • right_mul[সংখ্যার দৈর্ঘ্য – i – 1] =right_mul[সংখ্যার দৈর্ঘ্য – i]* সংখ্যাগুলি[সংখ্যার দৈর্ঘ্য – i – 1]
  • আউটপুট :=সংখ্যার সমান আকারের একটি অ্যারে, এটি 0 দিয়ে পূরণ করুন
  • উপসর্গ :=1, এবং সূচক :=0
  • যখন সূচক <আউটপুটের দৈর্ঘ্য – 1
    • আউটপুট[সূচি] :=উপসর্গ * right_mul[index + 1]
    • উপসর্গ :=উপসর্গ * সংখ্যা[সূচি]
    • সূচী :=সূচক + 1
  • আউটপুটের শেষ উপাদান :=উপসর্গ
  • রিটার্ন আউটপুট

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

উদাহরণ

শ্রেণির সমাধান(অবজেক্ট):def productExceptSelf(self, nums):right_multiply =[0] * len(nums) right_multiply[-1]=nums[-1] i in range(1,len(nums)) এর জন্য :right_multiply[len(nums)-i-1] =right_multiply[len(nums)-i] * nums[len(nums)-i-1] আউটপুট =[0]*len(nums) উপসর্গ =1 current_index =0 যখন কারেন্ট_ইনডেক্স <লেন(আউটপুট)-1:আউটপুট[কারেন্ট_ইনডেক্স] =উপসর্গ * ডান_গুণ[চলমান_সূচক+1] উপসর্গ *=সংখ্যা[কারেন্ট_ইনডেক্স] বর্তমান_সূচক +=1 আউটপুট[-1] =প্রিফিক্স রিটার্ন আউটপুট 1 =সমাধান()মুদ্রণ(ob1) .productExceptSelf([1,3,5,7,9]))

ইনপুট

[1,3,5,7,9]

আউটপুট

<প্রে>[945, 315, 189, 135, 105]
  1. পাইথনে অ্যারে পার্টিশন I

  2. পাইথনে অ্যারে ঘোরান

  3. বিসেক্ট - পাইথনে অ্যারে দ্বিখণ্ডিত অ্যালগরিদম

  4. পাইথনে ডায়নামিক অ্যারে বাস্তবায়ন