Java言語における笛カルテシアン積アルゴリズムの実装
Javaでは、2重ループを使用してデカルト積を計算できます。
集合AとBがあったとき、それらの直積はAの各要素とBの各要素を組み合わせてできる新しい集合のことです。
デカルト積アルゴリズムを実装する Java コードのサンプルを以下に示します:
import java.util.ArrayList;
import java.util.List;
public class CartesianProduct {
public static void main(String[] args) {
List<Integer> setA = new ArrayList<>();
setA.add(1);
setA.add(2);
List<Character> setB = new ArrayList<>();
setB.add('a');
setB.add('b');
List<String> cartesianProduct = getCartesianProduct(setA, setB);
System.out.println(cartesianProduct);
}
public static List<String> getCartesianProduct(List<Integer> setA, List<Character> setB) {
List<String> cartesianProduct = new ArrayList<>();
for (Integer elementA : setA) {
for (Character elementB : setB) {
String product = elementA.toString() + elementB.toString();
cartesianProduct.add(product);
}
}
return cartesianProduct;
}
}
上記の例では、整数のセット A と文字のセット B からなる 2 つのセットを定義し、getCartesianProduct() メソッドを呼び出して、これらのセットのデカルト積を取得します。
1a と 1b、2a と 2b を要素とするリストは、集合 A と B のデカルト積です。