したがって、nPr方法の後の文字列の置換のすべてを出力するコードを作成しようとしています.nは文字列の長さ、rは入力値です。接頭辞とStringと整数を取ります。これは、nPr順列の代わりにnPn順列を毎回印刷する点を除いて、これを行います。 R = 2の場合私の順列コードは毎回nPnを出力しますか?
public static void main(String[] args){
String x = "abcd";
permu("", x, 2);
}
public static void permu(String pre, String x, int r){
if(x.length() == 0)
System.out.println(pre.substring(0, r));
else{
for(int i = 0; i < x.length(); i++)
permu(pre + x.charAt(i), x.substring(0, i) + x.substring(i + 1, x.length()), r);
}
}
、私はそれは、AB、AC、AD、BA、BC、BD、CA、CB、CD、DA、DB、DCを印刷したいです。それはすべての倍を印刷します。
ありがとうございます。しかし、rはn以下でなければならないので、数学的にはできないと思った。 –
誰でも 'permu(" "、" abcd "、12)を呼び出すことを止めない。このコードは、不正な入力に対する安全対策です。 –