Ways of dividing a group into two halves such that two elements are in different groups
Given 2n girls and randomly divided into two subgroups each containing n girls. The task is to count the number of ways in which groups can be formed such that two beautiful girls are into different groups.
Example:
Input: 4
Output: 4
Let group be r1, r2, b1, b2 where b1 and b2 are beautiful girls
Groups are: ((r1, b1) (r2, b2)), ((r1, b2) (r2, b1)), ((r2, b2) (r1, b1)), ((r2, b1) (r1, b2))
Input: 8
Output: 40
Approach: There are two ways in which the two beautiful girls lie in different groups and corresponding to each way the remaining (2n – 2) girls can be divided into two groups is
Hence total number of ways are 2 *
Implementation Code :
C++
// CPP Program to count // Number of ways in which two // Beautiful girls are in different group #include <bits/stdc++.h> using namespace std; // This function will // return the factorial of a given number int factorial( int n) { int result = 1; for ( int i = 1; i <= n; i++) result = result * i; return result; } // This function will calculate nCr of given // n and r int nCr( int n, int r) { return factorial(n) / (factorial(r) * factorial(n - r)); } // This function will // Calculate number of ways int calculate_result( int n) { int result = 2 * nCr((n - 2), (n / 2 - 1)); return result; } // Driver Code int main( void ) { int a = 2, b = 4; cout << calculate_result(2 * a) << endl; cout << calculate_result(2 * b) << endl; return 0; } |
Java
//Java Program to count // Number of ways in which two // Beautiful girls are in different group import java.io.*; class GFG { // This function will // return the factorial of a given number static int factorial( int n) { int result = 1 ; for ( int i = 1 ; i <= n; i++) result = result * i; return result; } // This function will calculate nCr of given // n and r static int nCr( int n, int r) { return factorial(n) / (factorial(r) * factorial(n - r)); } // This function will // Calculate number of ways static int calculate_result( int n) { int result = 2 * nCr((n - 2 ), (n / 2 - 1 )); return result; } // Driver Code public static void main (String[] args) { int a = 2 , b = 4 ; System.out.println( calculate_result( 2 * a)); System.out.print(calculate_result( 2 * b)); } } // This code is contributed by inder_verma.. |
Python3
# Python3 Program to count # Number of ways in which two # Beautiful girls are in different group # This function will # return the factorial of a # given number def factorial(n) : result = 1 for i in range ( 1 , n + 1 ) : result * = i return result # This function will calculate nCr of given # n and r def nCr(n, r) : return (factorial(n) / / (factorial(r) * factorial(n - r))) # This function will # Calculate number of ways def calculate_result(n) : result = 2 * nCr((n - 2 ), (n / / 2 - 1 )) return result # Driver code if __name__ = = "__main__" : a, b = 2 , 4 print (calculate_result( 2 * a)) print (calculate_result( 2 * b)) # This code is contributed by # ANKITRAI1 |
C#
//C# Program to count // Number of ways in which two // Beautiful girls are in different groupusing System; using System; public class GFG { // This function will // return the factorial of a given number static int factorial( int n) { int result = 1; for ( int i = 1; i <= n; i++) result = result * i; return result; } // This function will calculate nCr of given // n and r static int nCr( int n, int r) { return factorial(n) / (factorial(r) * factorial(n - r)); } // This function will // Calculate number of ways static int calculate_result( int n) { int result = 2 * nCr((n - 2), (n / 2 - 1)); return result; } // Driver Code public static void Main () { int a = 2, b = 4; Console.WriteLine( calculate_result(2 * a)); Console.Write(calculate_result(2 * b)); } } // This code is contributed by Subhadeep |
PHP
<?php // PHP Program to count Number // of ways in which two Beautiful // girls are in different group // This function will return // the factorial of a given number function factorial( $n ) { $result = 1; for ( $i = 1; $i <= $n ; $i ++) $result = $result * $i ; return $result ; } // This function will calculate // nCr of given n and r function nCr( $n , $r ) { return factorial( $n ) / (factorial( $r ) * factorial( $n - $r )); } // This function will // Calculate number of ways function calculate_result( $n ) { $result = 2 * nCr(( $n - 2), ( $n / 2 - 1)); return $result ; } // Driver Code $a = 2; $b = 4; echo calculate_result(2 * $a ) . "\n" ; echo calculate_result(2 * $b ) . "\n" ; // This Code is contributed by mits ?> |
Javascript
// Javascript Program to count Number // of ways in which two Beautiful // girls are in different group // This function will return // the factorial of a given number function factorial(n) { let result = 1; for (let i = 1; i <= n; i++) result = result * i; return result; } // This function will calculate // nCr of given n and r function nCr(n, r) { return factorial(n) / (factorial(r) * factorial(n - r)); } // This function will // Calculate number of ways function calculate_result(n) { let result = 2 * nCr((n - 2), (n / 2 - 1)); return result; } // Driver Code let a = 2; let b = 4; document.write(calculate_result(2 * a) + "<br>" ); document.write(calculate_result(2 * b) + "<br>" ); // This Code is contributed by gfgking |
4 40
Time Complexity: O(N), since the loop runs for N times.
Auxiliary Space: O(1), since no extra space has been taken.
Please Login to comment...