Sean A y B dos conjuntos, el producto cartesiano A × B es el conjunto de todos los pares ordenados de elementos de A y B
A × B = {{x, y} : x ∈ A, y ∈ B}
Sean A = {a, b, c} y B = {d, e, f}
El producto cartesiano de dos conjuntos es
A x B = {a, d}, {a, e}, {a, f}, { b, d}, {b, e}, {b, f}, {c, d}, {c, e}, {c, f}}
A tiene 3 elementos y B también tiene 3 elementos. El Producto Cartesiano tiene 3 x 3 = 9 elementos.
En general, si hay m elementos en el conjunto A y n elementos en B, el número de elementos en el Producto Cartesiano es mxn
Dados dos conjuntos finitos no vacíos, escriba un programa para imprimir el producto cartesiano.
Ejemplos:
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
// 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
// Java Program to find the // Cartesian Product of Two Sets import 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
# 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 code arr1 = [ 1, 2, 3 ] # first set arr2 = [ 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#
// C# Program to find the // Cartesian Product of Two Sets using 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 // 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. ?>
Javascript
<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>
Producción :
{{1, 4}, {1, 5}, {1, 6}, {2, 4}, {2, 5}, {2, 6}, {3, 4}, {3, 5}, {3, 6}}
Ejemplos prácticos:
1) Un juego de cartas es el producto cartesiano de un juego de cuatro elementos a un juego de 13 elementos.
2) Un sistema de coordenadas bidimensional es un producto cartesiano de dos conjuntos de números reales.
Referencia:
https://en.wikipedia.org/wiki/Cartesian_product