Number of Hamiltonian cycle
Given an undirected complete graph of N vertices where N > 2. The task is to find the number of different Hamiltonian cycle of the graph.
Complete Graph: A graph is said to be complete if each possible vertices is connected through an Edge.
Hamiltonian Cycle: It is a closed walk such that each vertex is visited at most once except the initial vertex. and it is not necessary to visit all the edges.
Formula:
Examples:
Input : N = 6
Output : Hamiltonian cycles = 60
Input : N = 4
Output : Hamiltonian cycles = 3
Explanation:
Let us take the example of N = 4 complete undirected graph, The 3 different hamiltonian cycle is as shown below:
Below is the implementation of the above approach:
C++
#include <bits/stdc++.h>
using namespace std;
int Cycles( int N)
{
int fact = 1, result = 0;
result = N - 1;
int i = result;
while (i > 0) {
fact = fact * i;
i--;
}
return fact / 2;
}
int main()
{
int N = 5;
int Number = Cycles(N);
cout << "Hamiltonian cycles = " << Number;
return 0;
}
|
Java
class GFG
{
static int Cycles( int N)
{
int fact = 1 , result = 0 ;
result = N - 1 ;
int i = result;
while (i > 0 )
{
fact = fact * i;
i--;
}
return fact / 2 ;
}
public static void main(String[] args)
{
int N = 5 ;
int Number = Cycles(N);
System.out.println( "Hamiltonian cycles = " +
Number);
}
}
|
Python3
import math as mt
def Cycles(N):
fact = 1
result = N - 1
i = result
while (i > 0 ):
fact = fact * i
i - = 1
return fact / / 2
N = 5
Number = Cycles(N)
print ( "Hamiltonian cycles = " ,
Number)
|
C#
using System;
class GFG
{
static int Cycles( int N)
{
int fact = 1, result = 0;
result = N - 1;
int i = result;
while (i > 0)
{
fact = fact * i;
i--;
}
return fact / 2;
}
public static void Main()
{
int N = 5;
int Number = Cycles(N);
Console.Write( "Hamiltonian cycles = " +
Number);
}
}
|
PHP
<?php
function Cycles( $N )
{
$fact = 1 ;
$result = 0;
$result = $N - 1;
$i = $result ;
while ( $i > 0)
{
$fact = $fact * $i ;
$i --;
}
return floor ( $fact / 2);
}
$N = 5;
$Number = Cycles( $N );
echo "Hamiltonian cycles = " ,
$Number ;
?>
|
Javascript
<script>
function Cycles(N)
{
var fact = 1, result = 0;
result = N - 1;
var i = result;
while (i > 0) {
fact = fact * i;
i--;
}
return fact / 2;
}
var N = 5;
var Number = Cycles(N);
document.write( "Hamiltonian cycles = " + Number);
</script>
|
Output:
Hamiltonian cycles = 12
Time Complexity: O(n)
Auxiliary Space: O(1)
Last Updated :
22 Jun, 2022
Like Article
Save Article
Share your thoughts in the comments
Please Login to comment...