アレイと消去インデックスの問題

ディアブロAcez:

質問:どのように私は効率的に一人だけを使用することができるだろうと、コードが再び実行されたときに、それがグループに同じ生徒を割り当てないでしょう。基本的には二回学生を使用していません。それが立ち往生行き止まりに私を終わった、しかし私は、この問題を解決しようとしました。すべてのヘルプは、感謝感謝です!

このクラス(姓と名)の学生の配列を作成します。

その後、ランダムに生徒を選択し、グループに配置します。

グループ1から4人の学生

グループ2から4人の学生

グループ3から3学生

グループ4から4学生

グループ5から4人の学生

グループ6から4人の学生

そして、組織化された出力内のグループをプリントアウト。コード:

import java.util.*;

public class RandomGroupsTest {

static String[] group = {"Group 1","Group 2","Group 3", "Group 4","Group 5", "Group 6"};

public static void main(String[] args) {
    // TODO Auto-generated method stub

    String[] students= {"Krish", "Mami Bhat", "Kilar Boggavarapu", "Nickel Gokul", "Matthew Guan", "Maysin Huang", "Kashan Karvadi", "Kilan Manivannan", "Dine Marin", "Dhruv Patel", "Mans Patel", "Vin Pham", "Sonyiea Rayman", "Mahi Sangavarapu", "Reyun Shah", "Prevan Shanmugaraj", "Riya Singh", "Palk Singh", "Rohan Singh", "Callvin Stapleton", "Arjun Vyas", "John Williams", "Alisha White" };


    Random rn = new Random();
    int a =0;
    int i = 0;
    group[i] = "Group 1";
    System.out.print("Group 1: ");
    if(group[i].equals("Group 1")) {
        for(int d = 0; d < 4; d++) {
             a = rn.nextInt(23);

            if(students[a]!="") {
            System.out.print("\n "+students[a]);
            students[a]= "";


            }else {
                a=rn.nextInt(23);
                if(students[a]!="") {
                System.out.println("\n "+students[a]);
                }
            }
        }
        i++;
        System.out.println();
    }
    System.out.print("Group 2: ");
    if(group[i].equals("Group 2")) {
        for(int w = 0; w < 4; w++) {
             a = rn.nextInt(23);

            if(students[a]!="") {
            System.out.print("\n "+students[a]);
            students[a]= "";


            }else {
                a=rn.nextInt(23);
                if(students[a]!="") {
                System.out.println("\n "+students[a]);
                }           
            }
        }
        i++;
        System.out.println();
    }
    System.out.print("Group 3: ");
    if(group[i].equals("Group 3")) {
        for(int v = 0; v < 3; v++) {
             a = rn.nextInt(23);

            if(students[a]!="") {
            System.out.print("\n "+students[a]);
            students[a]= "";


            }else {
                a=rn.nextInt(23);
                if(students[a]!="") {
                System.out.println("\n "+students[a]);
                }               
            }
        }
        i++;
        System.out.println();
    }
    System.out.print("Group 4: ");
    if(group[i].equals("Group 4")) {
        for(int b = 0; b < 4; b++) {
             a = rn.nextInt(23);

            if(students[a]!="") {
            System.out.print("\n "+students[a]);
            students[a]= "";


            }else {
                a=rn.nextInt(23);
                if(students[a]!="") {
                System.out.println("\n "+students[a]);
                }               
            }
        }
        i++;
        System.out.println();
    }
    System.out.print("Group 5: ");
    if(group[i].equals("Group 5")) {
        for(int w = 0; w < 4; w++) {
             a = rn.nextInt(23);

            if(students[a]!="") {
            System.out.print("\n "+students[a]);
            students[a]= "";


            }else {
                a=rn.nextInt(23);
                if(students[a]!="") {
                System.out.println("\n "+students[a]);
                }               
            }
        }
        i++;
        System.out.println();
    }
    System.out.print("Group 6: ");
    if(group[i].equals("Group 6")) {
        for(int n = 0; n< 4; n++) {
             a = rn.nextInt(23);

            if(students[a]!="") {
            System.out.print("\n "+students[a]);
            students[a]= "";


            }else {
                a=rn.nextInt(23);
                if(students[a]!="") {
                System.out.println("\n "+students[a]);
                }               
            }
        }
        i++;
        System.out.println();
    }

    }

}
アービンド・クマールのAvinash:

容易に1次元配列と一レベル深いネストされたループを使用して解決することができます。下記のソリューションを理解することは非常に簡単です:

import java.util.Random;

public class Main {
    public static void main(String[] args) {
        String[] students = { "Krish", "Mami Bhat", "Kilar Boggavarapu", "Nickel Gokul", "Matthew Guan", "Maysin Huang",
                "Kashan Karvadi", "Kilan Manivannan", "Dine Marin", "Dhruv Patel", "Mans Patel", "Vin Pham",
                "Sonyiea Rayman", "Mahi Sangavarapu", "Reyun Shah", "Prevan Shanmugaraj", "Riya Singh", "Palk Singh",
                "Rohan Singh", "Callvin Stapleton", "Arjun Vyas", "John Williams", "Alisha White" };
        int[] groupCapacity = { 4, 4, 3, 4, 4, 4 };
        int[] indexUsed = new int[students.length];
        Random rn = new Random();
        int n;
        for (int i = 0; i < groupCapacity.length; i++) {
            System.out.println("Group" + (i + 1 + ": "));
            for (int j = 0; j < groupCapacity[i]; j++) {
                n = rn.nextInt(23);
                if (indexUsed[n] != 1) {
                    System.out.println(students[n]);
                    indexUsed[n] = 1;
                } else {
                    j--;
                }
            }
            System.out.println();
        }
    }
}

サンプルを実行します。

Group1: 
Maysin Huang
Reyun Shah
Callvin Stapleton
Kashan Karvadi

Group2: 
Dine Marin
Prevan Shanmugaraj
Arjun Vyas
Rohan Singh

Group3: 
Vin Pham
Mami Bhat
Matthew Guan

Group4: 
Mahi Sangavarapu
Kilan Manivannan
Palk Singh
Dhruv Patel

Group5: 
John Williams
Krish
Riya Singh
Mans Patel

Group6: 
Alisha White
Kilar Boggavarapu
Sonyiea Rayman
Nickel Gokul

何の疑いも/問題の場合にはコメントをお気軽に。

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=277552&siteId=1