文字A、B、C、Dのすべての組み合わせをリストするプログラムを作成しています。可能性のあるすべての並べ替えをリストするプログラムを作成しました。Java - リストの組み合わせ
しかし、どのように(ように長いものがあるように、他の表示されていない必要、すなわち:ABCD = DCBA及びAB = BA)全ての組み合わせを動作し、生成するためのプログラムを書き換えることになります。
これまでのところ、私の現在のプログラムのコードは次のとおりです。ここで
import java.util.ArrayList;
public class Perms {
public static void main(String[] args) {
ArrayList<Character> characters = new ArrayList<Character>();
characters.add('A');
characters.add('B');
characters.add('C');
characters.add('D');
int count = 0;
for (int i = 0; i < characters.size(); i++) {
for (int j = 0; j < characters.size(); j++) {
for (int k = 0; k < characters.size(); k++) {
for (int d = 0; d < characters.size(); d++) {
count++;
System.out.println(count + ": " + characters.get(i) + characters.get(j) + characters.get(k) + characters.get(d));
}
}
}
}
}
}
申し訳ありません、あなたの質問についてより明確に伝えることができますか?セット{A、B、C、D}には4つの要素を持つ1つの文字列があり、順序は関係ありません:ABCDまたはBCDAまたはCDAB ...ですので、ただ1つの文字列であり、 。あなたの質問は、すべてのセットが{A、B、C、D}から作られたリストです。それが本当なら、いくつかの答えがある:{A} {B} {C} {D} {AB} {AC} ......そうですか? – hqt
申し訳ございません。私は、ABCD、ABC、ABなどを印刷することを意味しました。 – mino
与えられたコードはABCDのすべての可能な置換を生成するのではなく、長さ4のアルファベットABCDのすべての文字列を生成します。プログラムが印刷する最初の行であるAAAAはABCDの順列ではありません。 –