[小西ホームページ]   [目次・索引]   [前の授業]   [次の授業]

情報処理技法(Javaプログラミング)II 第10回

目次
索引

再帰的アルゴリズム(2)

テキストpp.158--173を参照。


課題10

順列関数 permut ( n , r )は、 n P r とも書かれ、 n 個の要素から r 個を選ぶ場合の並べ方の数を表します。 ここでは、 n 個の要素を0、1、…、 n -1とします。

p.170のList 5-9は、実は、 8 P 8 の並べ方を列挙するものです。 そこで、このプログラムを書き直し、 n を入力して、 n P n の並べ方を列挙するようにしてください。

PermutNN.java
import java.util.Scanner;

class PermutNN {
    static boolean[] flag;
    static int[] pos;
    static void print(int n) {
        
        
    }
    static void set(int i, int n) {
        
        
    }
    public static void main(String[] args) {
        Scanner stdIn = new Scanner(System.in);
        
        
        flag = new boolean[n];
        pos = new int[n];
        set(0, n);
    }
}
ターミナル
PS ...\Desktop\java2>  & ... 'PermutNN'
n個の要素からn個を選ぶ場合の並べ方を列挙します。
整数nを入力せよ:3
 0 1 2
 0 2 1
 1 0 2
 1 2 0
 2 0 1
 2 1 0
PS ...\Desktop\java2>

余力のある人は、 n r を入力して、 n P r の並べ方を列挙するようにしてください。

PermutNR.java
import java.util.Scanner;

class PermutNR {
    static boolean[] flag;
    static int[] pos;
    static void print(int r) {
        
        
    }
    static void set(int i, int n, int r) {
        
        
    }
    public static void main(String[] args) {
        Scanner stdIn = new Scanner(System.in);
        
        
        flag = new boolean[n];
        pos = new int[r];
        set(0, n, r);
    }
}
ターミナル
PS ...\Desktop\java2>  & ... 'PermutNR'
n個の要素からr個を選ぶ場合の並べ方を列挙します。
整数nを入力せよ:4
整数rを入力せよ:2
 0 1
 0 2
 0 3
 1 0
 1 2
 1 3
 2 0
 2 1
 2 3
 3 0
 3 1
 3 2
PS ...\Desktop\java2>

完成したら、答案(Javaプログラム)をメールで提出してください。 差出人は大学発行のメール・アドレス(学生番号@cis.twcu.ac.jp)とし、宛先はkonishi@cis.twcu.ac.jpとします。 メールの本文には、学生番号、氏名、科目名、授業日(11月28日)を明記してください。


参考文献


[小西ホームページ]   [目次・索引]   [前の授業]   [次の授業]

2025年11月28日更新
小西 善二郎 <konishi@cis.twcu.ac.jp>
Copyright (C) 2025 Zenjiro Konishi. All rights reserved.