【第6回】数学問題:順列を作る

JAVAロジック問題

問題

{1,2,3,4}の数値配列の全ての組み合わせの順列を作成するプログラムを作りなさい。

答えはこちら

ヒント

ヒント1:順列とは

順列は、『異なるn個のものからr個選んで「一列に並べる」』場合の数のことをいいます。

今回は1.2.3.4なので、
4個のものから4個選んで全ての組み合わせパターンの一列を作るということです。

 

ヒント2:全ての組み合わせパターン

全ての組み合わせパターンは4の階乗で求められます。

4X3X2X1 = 24通りです。

 

ヒント3:ロジックの考え方

①{1.2.3.4}を格納する配列の変数を用意すること
②既に配列のi番目の要素に対して値を詰めたか、
詰めていないかを判定する真偽値の①と同じ長さの配列を用意すること

③if分岐:1行分の順列を作成できていない場合
 for文:配列の長さ分処理を繰り返す
  if分岐:配列i番目の要素がまだ値を詰められていない場合
   ①の配列変数にi番目の数値を代入する
   配列i番目をfalse(値を詰めた)にする
   i+1番目の配列要素に対して順列作成メソッドを行う(③からの処理を行う)
   配列i番目のtrue(値を詰めていない)に戻す
③else:1行分の順列を作成した場合
 その1行分の順列をコンソール表示する

 

答えはこちら

 

コメント