#java
Для проверки остаточных знаний учеников после летних каникул, учитель младших классов решил начинать каждый урок с того, чтобы задавать каждому ученику пример из таблицы умножения, но в классе 15 человек, а примеры среди них не должны повторяться. В помощь учителю напишите программу, которая будет выводить на экран 15 случайных примеров из таблицы умножения (от 2*2 до 9*9, потому что задания по умножению на 1 и на 10 — слишком просты). При этом среди 15 примеров не должно быть повторяющихся (примеры 2*3 и 3*2 и им подобные пары считать повторяющимися). Что мне нужно добавить, чтобы доделать задачу? Как я думаю, осталось вывести уже отобранные задания на экран, но не знаю как это сделать. public class Main { public static void main(String[] args) { int[][] Mas = new int[15][3]; for (int i = 0; i < Mas.length; i++) { for (int h = 0; h < Mas[i].length; h++) { Mas[i][h] = (int) (Math.random() * 8) + 2; if (h == Mas[i].length - 1) { Mas[i][h] = Mas[i][h - 2] * Mas[i][h - 1]; for (int q = 0; q < i; q++) { if (Mas[i][h] == Mas[q][h] && i > 0) { if (Mas[i][h - 1] == Mas[q][h - 1] || Mas[i][h - 2] == Mas[q][h - 2]) --i; } } } } } } }
Ответы
Ответ 1
Что, например, можно сделать для решения задачи: сгенерировать массив/список из всех возможных комбинаций пар чисел случайно перемешать этот массив/список взять из него первые 15 элементов. С использованием списка ArrayList и метода Collections.shuffle это выглядит так: private static class Pair { public int first; public int second; public Pair(int first, int second) { this.first = first; this.second = second; } } public static void main(String[] args) { ListallPairs = new ArrayList<>(); for (int first = 2; first <= 9; first++) { for (int second = first; second <= 9; second++) { allPairs.add(new Pair(first, second)); } } Collections.shuffle(allPairs); List chosenPairs = allPairs.subList(0, 15); } Для вывода на экран переопределяем метод toString в классе Pair: public String toString() { return first + "*" + second; } После чего в основном методе просто выводим результирующий список на экран: System.out.println(chosenPairs); Пример вывода: [2*3, 4*6, 8*9, 6*6, 4*4, 2*7, 7*9, 3*9, 3*8, 3*3, 2*2, 9*9, 7*8, 4*8, 5*5]
Комментариев нет:
Отправить комментарий