1つの筆記試験問題、1000部の答案はランダムに100部を抽出して、その中の1種のjava解法

9965 ワード

テーマ:1.仮に1つの問題ライブラリがあって、中には1000の問題が保管されています(問題型はすべて同じです)今私たちはこの問題ライブラリの中から、ランダムに100の異なる問題を抽出して1枚の試験用紙を生成してあなたの考えを説明して、問題番号(整数)を選んでください
解法を貼り付けて、この構想は1つの対照のランダムな配列を生成することを通じて、それからランダムな数の配列に対して並べ替えて更に元の答案用紙の配列の順序を乱して、最後に前の100の問題を取り出して、この100の問題は完全にランダムです!もちろん简単な解法もありますが、これはちょっと复雑な考えで、游んでいるだけです!
public class Test {
    public static void main(String... args) {
        Test test = new Test();
        int [] paperIds = test.getPaperID();
        System.out.println("    :"+Arrays.toString(paperIds));

        int [] randomArrays = test.getRandomArray();
        System.out.println("        :"+Arrays.toString(randomArrays));

        int[] randomPapers = new int[100];


        int temp =0;
        int atemp = 0;
        for (int i = 0; i < randomPapers.length; i++) {
            for (int j = 0; j < randomPapers.length-i-1; j++) {
                if (randomArrays[i]>randomArrays[j]) {
                    temp = randomArrays[j];
                    randomArrays[j] = randomArrays[i];
                    randomArrays[i] = temp;
                    //                    。          
                    atemp = paperIds[j];
                    paperIds[j] = paperIds[i];
                    paperIds[i] = atemp;
                }

            }
        }
        System.out.println(Arrays.toString(randomArrays));
        System.out.println(Arrays.toString(paperIds));
        for (int i = 0; i < randomPapers.length; i++) {
            randomPapers[i] = paperIds[i];
        }
        System.out.println("          :"+Arrays.toString(randomPapers));
    }

    //       
    private int[] getPaperID(){
        int temp[] = new int[1000];
        for (int i = 1; i < temp.length+1; i++) {
            temp[i-1] = i;
        }
        return temp;
    }
    //                
    private int[] getRandomArray(){
        int temp[] = new int[1000];
        for (int i = 0; i < temp.length; i++) {
            temp[i] = new Random().nextInt(99999999);
        }
        return temp;
    }

}
最終結果を添付します.