@mk_qwerty

Как генерировать последовательность случайных не повторяющихся чисел?

Доброго времени суток! Есть такая задача, сгенерировать n раздач по 5 карт, нужно чтобы в каждой раздаче карты не повторялись. Как реализовать не повторение карт?

То, что написал, но при данном решении могут в одной раздаче появляться повторяющиеся карты.
public class deal{
  public static void main(String[] args){
    int n = Integer.parseInt(args[0]);

    String[] a  = {"Spades", "Clubs", "Hearts", "Diamonds"};
    String[] b = new String[14];

    b[1] = "Ace";
    b[2] = "King";
    b[3] = "Queen";
    b[4] = "Knave";
    b[5] = "Joker";

    for (int i = 6; i < b.length; i++){
      b[i] = "" + (i - 4);
    }

    for (int i = 0; i < n; i++){
      for (int j = 0; j < 5; j++){
        int suit = (int) (Math.random()*(a.length - 1.0) + 1.0);
        int value = (int) (Math.random()*((double) b.length - 1.0) + 1.0);

        System.out.println(b[value] + " of " + a[suit]);
      }
      System.out.println("\n");
    }
  }
}
  • Вопрос задан
  • 152 просмотра
Решения вопроса 1
angrySCV
@angrySCV
machine learning, programming, startuping
тебе сначала нужно сгенерировать колоду, а потом из нее вынимать (с удалением) случайную карту,
пока колода не пуста, вынимать случайную карту и добавлять ее в раздачу.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы