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 のデカルト積です。

bannerAds