Cartesian Product of Two Sets - GeeksforGeeks

08 Apr, 2021
Let A and B be two sets, Cartesian productA × B is the set of all ordered pair of elements from A and B A × B = {{x, y} : x ∈ A, y ∈ B} 
Let A = {a, b, c} and B = {d, e, f} The Cartesian product of two sets is A x B = {a, d}, {a, e}, {a, f}, {b, d}, {b, e}, {b, f}, {c, d}, {c, e}, {c, f}}A has 3 elements and B also has 3 elements. The Cartesian Product has 3 x 3 = 9 elements.In general, if there are m elements in set A and n elements in B, the number of elements in the Cartesian Product is m x n
 Given two finite non-empty sets, write a program to print Cartesian Product. Examples :  
Input : A = {1, 2}, B = {3, 4}
Output : A × B = {{1, 3}, {1, 4}, {2, 3}, {2, 4}}

Input  : A = {1, 2, 3} B = {4, 5, 6}
Output : A × B = {{1, 4}, {1, 5}, {1, 6}, {2, 4}, 
         {2, 5}, {2, 6}, {3, 4}, {3, 5}, {3, 6}}
 
 
CPP
Java
Python3
C#
PHP
Javascript
// C++ Program to find the Cartesian Product of Two Sets#include <stdio.h> void findCart(int arr1[], int arr2[], int n, int n1){    for (int i = 0; i < n; i++)        for (int j = 0; j < n1; j++)            printf("{%d, %d}, ", arr1[i], arr2[j]);} int main(){    int arr1[] = { 1, 2, 3 }; // first set    int arr2[] = { 4, 5, 6 }; // second set    int n1 = sizeof(arr1) / sizeof(arr1[0]);    int n2 = sizeof(arr2) / sizeof(arr2[0]);    findCart(arr1, arr2, n1, n2);    return 0;}
// Java Program to find the// Cartesian Product of Two Setsimport java.io.*;import java.util.*; class GFG {     static void findCart(int arr1[], int arr2[],                                    int n, int n1)    {        for (int i = 0; i < n; i++)          for (int j = 0; j < n1; j++)            System.out.print("{"+ arr1[i]+", "                             + arr2[j]+"}, ");    }    // Driver code    public static void main (String[] args) {                 // first set        int arr1[] = { 1, 2, 3 };                 // second set        int arr2[] = { 4, 5, 6 };                 int n1 = arr1.length;        int n2 = arr2.length;        findCart(arr1, arr2, n1, n2);    }}  // This code is contributed by Nikita Tiwari.
# Python3 Program to find the# Cartesian Product of Two Sets def findCart(arr1, arr2, n, n1):     for i in range(0,n):        for j in range(0,n1):            print("{",arr1[i],", ",arr2[j],"}, ",sep="",end="") # Driver codearr1 = [ 1, 2, 3 ] # first setarr2 = [ 4, 5, 6 ] # second set n1 = len(arr1) # sizeof(arr1[0])n2 = len(arr2) # sizeof(arr2[0]); findCart(arr1, arr2, n1, n2); # This code is contributed# by Smitha Dinesh Semwal
// C# Program to find the// Cartesian Product of Two Setsusing System; class GFG {     static void findCart(int []arr1, int []arr2,                                    int n, int n1)    {        for (int i = 0; i < n; i++)            for (int j = 0; j < n1; j++)                Console.Write("{" + arr1[i] + ", "                                + arr2[j] + "}, ");    }         // Driver code    public static void Main () {                 // first set        int []arr1 = { 1, 2, 3 };                 // second set        int []arr2 = { 4, 5, 6 };                 int n1 = arr1.Length;        int n2 = arr2.Length;                 findCart(arr1, arr2, n1, n2);    }}  // This code is contributed by vt_m.
<?php// PHP Program to find the// Cartesian Product of Two Sets function findCart($arr1, $arr2, $n, $n1){    for ($i = 0; $i < $n; $i++)        for ( $j = 0; $j < $n1; $j++)            echo "{", $arr1[$i] ," , ",                      $arr2[$j], "}",",";} // Driver Code // first set$arr1 = array ( 1, 2, 3 ); // second set$arr2 = array ( 4, 5, 6 );$n1 = sizeof($arr1) ;$n2 = sizeof($arr2);findCart($arr1, $arr2, $n1, $n2); // This code is contributed by m_kit.?>
<script> // JavaScript Program to find the// Cartesian Product of Two Set     function findCart(arr1, arr2, n, n1)    {        for (let i = 0; i < n; i++)          for (let j = 0; j < n1; j++)            document.write("{"+ arr1[i]+", "                             + arr2[j]+"}, ");    }   // Driver Code         // first set        let arr1 = [ 1, 2, 3 ];                   // second set        let arr2 = [4, 5, 6 ];                   let n1 = arr1.length;        let n2 = arr2.length;        findCart(arr1, arr2, n1, n2);               // This code is contributed by chinmoy1997pal.</script>
Output :  
{{1, 4}, {1, 5}, {1, 6}, {2, 4}, {2, 5}, {2, 6}, {3, 4}, {3, 5}, {3, 6}}
Practical Examples: 1) A set of playing cards is Cartesian product of a four element set to a set of 13 elements.2) A two dimensional coordinate system is a Cartesian product of two sets of real numbers.Reference: https://en.wikipedia.org/wiki/Cartesian_product 
jit_t
chinmoy1997pal
Combinatorial
Mathematical
Mathematical
Combinatorial
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
Ways to sum to N using Natural Numbers up to K with repetitions allowed
Generate all possible combinations of K numbers that sums to N
Combinations with repetitions
Generate all possible combinations of at most X characters from a given array
Given number of matches played, find number of teams in tournament
Program for Fibonacci numbers
C++ Data Types
Set in C++ Standard Template Library (STL)
Coin Change | DP-7
Merge two sorted arrays