Member 14053198 Ответов: 2

Как я могу изменить программу


Привет. Может ли кто-нибудь помочь мне добавить новые возможности в программу, которая работает нормально, но мне нужно добавить новую возможность.

Оригинальная версия была скопирована из GeekForGeeks, чтобы найти, сколько циклов с n узлами имеют ненаправленный граф, это решение работает нормально, но мне нужно добавить к решению, каково количество узлов в решении, и когда все узлы повторяются, считайте как один.

Я пытался, но не могу найти решение. Ниже приведена копия исходного решения.

Большое спасибо, что уделили мне время.

С уважением.

НОГА.

Что я уже пробовал:

// GeeksforGeeks.com
// C# program to calculate   cycles of 
// length n in a given graph
 
using System; 
  
class GFG  
{ 
      
    // Number of vertices 
    public static int V = 5; 
    static int count = 0; 
      
    static void DFS(int [,]graph, bool []marked, 
                    int n, int vert, int start)  
    { 
          
        // mark the vertex vert as visited 
        marked[vert] = true; 
          
        // if the path of length (n-1) is found 
        if (n == 0)  
        { 
              
            // mark vert as un-visited to  
            // make it usable again 
            marked[vert] = false; 
              
            // Check if vertex vert end  
            // with vertex start 
            if (graph[vert, start] == 1) 
            { 
                count++; 
                return; 
            }  
            else
                return; 
        } 
          
        // For searching every possible  
        // path of length (n-1) 
        for (int i = 0; i < V; i++) 
            if (!marked[i] && graph[vert, i] == 1) 
              
                // DFS for searching path by 
                // decreasing length by 1 
                DFS(graph, marked, n - 1, i, start); 
          
        // marking vert as unvisited to make it 
        // usable again 
        marked[vert] = false; 
    } 
      
    // Count cycles of length N in an  
    // undirected and connected graph. 
    static int countCycles(int [,]graph, int n)  
    { 
          
        // all vertex are marked un-visited 
        // initially. 
        bool []marked = new bool[V]; 
          
        // Searching for cycle by using  
        // v-n+1 vertices 
        for (int i = 0; i < V - (n - 1); i++)  
        { 
            DFS(graph, marked, n - 1, i, i); 
              
            // ith vertex is marked as visited 
            // and will not be visited again 
            marked[i] = true; 
        } 
          
        return count / 2;  
    } 
      
    // Driver code 
    public static void Main() 
    { 
        int [,]graph = {{0, 1, 0, 1, 0}, 
                        {1, 0, 1, 0, 1}, 
                        {0, 1, 0, 1, 0}, 
                        {1, 0, 1, 0, 1}, 
                        {0, 1, 0, 1, 0}}; 
          
        int n = 4; 
          
        Console.WriteLine("Total cycles of length "+ 
                        n + " are "+  
                        countCycles(graph, n)); 
    } 
} 

2 Ответов

Рейтинг:
2

OriginalGriff

Мы более чем готовы помочь тем, кто застрял, но это не значит, что мы здесь, чтобы сделать все это для вас! Мы не можем сделать всю работу, вам либо платят за это, либо это часть ваших оценок, и было бы совсем несправедливо, если бы мы сделали все это за вас.

Поэтому нам нужно, чтобы вы сделали работу, и мы поможем вам, когда вы застряли. Это не значит, что мы дадим вам пошаговое решение, которое вы можете сдать!
Начните с объяснения, где вы находитесь в данный момент и каков следующий шаг в этом процессе. Затем расскажите нам, что вы пытались сделать, чтобы этот следующий шаг сработал, и что произошло, когда вы это сделали.


Рейтинг:
0

BillWoodruff

Почему бы вам не создать учетную запись на GeeksForGeeks, войти в систему и опубликовать свой вопрос в качестве комментария к статье [^] ?

Оказывается, статья была написана совсем недавно.


Maciej Los

5ed!