Java: Как создать комнату с людьми, имеющими случайные дни рождения?

Это мой второй день на Java. Я наткнулся на интересный вопрос о парадоксе дня рождения.

  1. Генерация случайного дня рождения.
  2. Создайте человека со случайным днем ​​рождения.
  3. Создайте функцию, чтобы проверить, имеют ли два человека одинаковый день рождения.
  4. Создать комнату с заданным количеством человек n.
  5. Создайте функцию, чтобы проверить, имеют ли по крайней мере два человека в комнате один и тот же день рождения.

Тем не менее, я застрял в том, как создать "Комнату" с "людьми", а затем сравнить дни рождения людей.

Кто-нибудь знает как это сделать?

Спасибо за ваши усилия и время!:)

    class Person {
    int age;
    }

    class Room {
    int Person;
    }

    public class BirthdayParadox {
    public static void main(String[] args) {
        int x = (int) (Math.random() * 364);
        int y = (int) (Math.random() * 364);
        long r = Math.round(x);
        long s = Math.round(y);

        Person person1 = new Person();
        person1.age = (int) r;

        Person person2 = new Person();
        person2.age = (int) s;

        if (person1.age == person2.age) {

            System.out.println("Same!");
        }

        else if (person1.age != person2.age) {
            System.out.println(person1.age + " " + person2.age);
        }

    }

    }

2 ответа

  1. Ваш Room класс, вероятно, должен содержать List<Person> или массив Person (Person[]).

  2. Конструктор Person должен принять dateOfBirth параметр, или, чтобы сделать его более простым, вы можете принять целое число от 1 до 365, которое представляет дату дня рождения, не включая год, так как это все, что вас волнует. Не звони этому участнику age, поскольку это никак не связано с возрастом.

  3. Вы хотите использовать (int)(Math.random() * 365) + 1что даст вам целые числа от 1 до 365. Вам не нужно использовать Math.round(),

Для этого все, что вам нужно, это массив целых чисел, где каждый индекс содержит день рождения одного человека.

Например, чтобы сохранить дни рождения 10 человек, вы должны создать целочисленный массив размером 10.

int[] birthdays = new int[10];

Вы можете присвоить значение индексу массива следующим образом:

birthdays[2] = (int)(Math.random() * 364);

Приведенный выше код назначит случайному значению день рождения третьего лица.

Чтобы получить день рождения человека, используйте код, подобный следующему:

birthdays[1]

Таким образом, чтобы напечатать день рождения 5-го человека, вы должны использовать

System.out.println(birthdays[4]);

Помните, что массивы индексируются 0, что означает, что первое значение равно 0, а последнее - (размер - 1). Так, например, 6-й элемент имеет индекс 5.

Другие вопросы по тегам