কম্পিউটার

C# ব্যবহার করে k যোগফলের সাথে মিলিত অনন্য সমন্বয় k যোগফল কীভাবে খুঁজে পাবেন?


বৈধ ক্রম সংরক্ষণ করার জন্য একটি আউটপুট তালিকা তৈরি করুন, একটি বর্তমান তালিকা তৈরি করুন যা পুনরাবৃত্তি ট্রির পথে পাওয়া বর্তমান ক্রম সংরক্ষণ করবে। একটি ব্যাকট্র্যাক ফাংশন যা টার্গেট অর্জিত না হওয়া পর্যন্ত রিকারশনে যাবে, অন্যথায়, টার্গেট 0-এর কম হলে এটিকে পূর্ববর্তী পর্বে ফিরে যেতে হবে। যেকোনো সময়ে, লক্ষ্য 0 হয়ে গেলে ফলাফলে প্রার্থী অ্যারে যুক্ত করুন প্রার্থী অ্যারের মান অবশ্যই প্রদত্ত লক্ষ্যের যোগফল হতে হবে।

যদি সেগুলি না হয় তবে, প্রার্থী অ্যারেতে একের পর এক উপাদান যোগ করুন এবং পুনরাবৃত্তিমূলকভাবে এগিয়ে যান৷

বলুন, সংখ্যাটি হল 5 এবং k হল 2 তাই আমাদেরকে 2 আকারে সংখ্যাগুলির সংমিশ্রণ তৈরি করতে হবে যা 5 গঠন করে৷ আউটপুট হবে "1,4","2,3"৷

উদাহরণ

using System;
using System.Collections.Generic;
using System.Text;
using System.Linq;
namespace ConsoleApplication{
   public class BackTracking{
      public void UniqueCombinationSumOfExactKNumbers(int n, int k){
         int[] array = new int[n];
         for (int i = 1; i < n; i++){
            array[i] = i;
         }
         List<int> currentList = new List<int>();
         List<List<int>> output = new List<List<int>>();
         UniqueCombinationSumOfExactKNumbers(array, n, k, 0, 0, currentList, output);
         foreach (var item in output){
            StringBuilder s = new StringBuilder();
            foreach (var item1 in item){
               s.Append(item1.ToString());
            }
            Console.WriteLine(s);
            s = null;
         }
      }
      private void UniqueCombinationSumOfExactKNumbers(int[] array, int target, int countOfNumbers, int sum, int index, List<int> currentList, List<List<int>> output){
         if (sum == target){
            if (currentList.Count == countOfNumbers){
               List<int> newList = new List<int>();
               newList.AddRange(currentList);
               output.Add(newList);
               return;
            }
         }
         else if (sum > target){
            return;
         }
         else if (currentList.Count == countOfNumbers && sum != target){
            return;
         }
         else{
            for (int i = index; i < array.Length; i++){
               currentList.Add(array[i]);
               UniqueCombinationSumOfExactKNumbers(array, target, countOfNumbers, sum + array[i], i + 1, currentList, output);
               currentList.Remove(array[i]);
            }
         }
      }
   }
   class Program{
      static void Main(string[] args){
         BackTracking b = new BackTracking();
         b.UniqueCombinationSumOfExactKNumbers(5, 2);
      }
   }
}

আউটপুট

14
23

  1. C# এ একটি পূর্ণসংখ্যা অ্যারের উপাদানগুলির গড় কীভাবে খুঁজে পাবেন?

  2. একটি সম্পত্তি ব্যবহার করে জ্যাগড অ্যারের দৈর্ঘ্য কীভাবে খুঁজে পাবেন?

  3. Numpy ব্যবহার করে একটি প্রদত্ত ম্যাট্রিক্সের সমস্ত উপাদানের যোগফল কীভাবে খুঁজে পাওয়া যায়?

  4. পাইথন ব্যবহার করে প্রাকৃতিক সংখ্যার যোগফল কিভাবে বের করবেন?