1
private static void swap(char[] str, int i, int j){
  char tmp = str[i];
  str[i] = str[j];
  str[j] = tmp;
}

public static void permute(String str){
  permute(str.toCharArray(), 0, str.length());
}

private static void permute(char[] str, int low, int high){
  if(low == high){
    System.out.println(str);
  } else {
    for(int i = low; i < high; i++){
      swap(str, low, i);
      permute(str, low+1, high);
      swap(str, low, i);
    }
  }
}

文字列順列の再帰的な方法を実装しました。しかし、質問があります:帰納法を使用してこのコードの正しさを証明するにはどうすればよいですか? 本当にわからなかった。

4

1 に答える 1