Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> C#

सी # का उपयोग करके बैकट्रैकिंग करके किसी दिए गए सरणी से अलग-अलग सबसेट कैसे खोजें?

विशिष्ट उपसमुच्चय समस्या हमें दिए गए सरणी से भिन्न संयोजन देती है।

जब लक्ष्य 2 होता है तो सरणी से, हम सभी संयोजन लेते हैं जो संख्या 2 से मेल खाता है, जब लक्ष्य तीन होता है तो सरणी से, हम सभी संयोजन लेते हैं जो गिनती 3 से मेल खाते हैं। नीचे के उदाहरण में सरणी है [ 1,2,3] और लक्ष्य 2 है। इसलिए, हम संख्या 2 "1,2", "2,3", "1,3" से संबंधित सभी संयोजनों को लेते हैं।

उदाहरण

using System;
using System.Collections.Generic;
using System.Text;
using System.Linq;
namespace ConsoleApplication{
   public class BackTracking{
      public void Subsets(int[] array){
         List<int> currentList = new List<int>();
         List<string> results = new List<string>();
         BackTrackkingCombination(array, 2, 0, currentList, results);
         foreach (var item in results){
            StringBuilder s = new StringBuilder();
            foreach (var item1 in item){
               s.Append(item1.ToString());
            }
            Console.WriteLine(s);
            s = null;
         }
      }
      public void BackTrackkingCombination(int[] array, int size, int startIndex, List<int> currentList, List<string> results){
         if (currentList.Count == size){
            StringBuilder s = new StringBuilder();
            foreach (var item in currentList){
               s.Append(item);
            }
            results.Add(s.ToString());
            return;
         }
         for (int i = startIndex; i < array.Length; i++){
            currentList.Add(array[i]);
            BackTrackkingCombination(array, size, i + 1, currentList, results); ;
            currentList.Remove(array[i]);
         }
      }
   }
   class Program{
      static void Main(string[] args){
         BackTracking b = new BackTracking();
         int[] arrs = { 1, 2, 3 };
         b.Subsets(arrs);
      }
   }
}

आउटपुट

12
13
23

  1. सी # में दिए गए ऐरे की रैंक कैसे खोजें?

    किसी सरणी की रैंक खोजने के लिए, रैंक गुण का उपयोग करें। सबसे पहले, एक सरणी घोषित करें और आरंभ करें। int[,] myArr = new int[3,3]; अब, रैंक प्राप्त करें। myArr.Rank आइए देखें पूरा कोड - उदाहरण using System; class Demo {    static void Main() {       int[,] myArr = new int[3

  1. किसी संपत्ति का उपयोग करके जंजीर सरणी की लंबाई कैसे प्राप्त करें?

    सबसे पहले, एक दांतेदार सरणी घोषित करें और आरंभ करें। int[][] arr = new int[][] { new int[] {    0,    0 }, new int[] {    1,    2 }, new int[] {    2,    4 }, new int[] {    3,    6 }, new int[] {    4,  

  1. आप सी # में सरणी की लंबाई कैसे ढूंढते हैं?

    किसी सरणी की लंबाई ज्ञात करने के लिए, Array.Length() विधि का उपयोग करें। उदाहरण आइए एक उदाहरण देखें - using System; class Program {    static void Main(){       int[] arr = new int[10];       // finding length       int arrLength = arr.Length;