【问题标题】:Java: How to create a room with people having random birthdays?Java:如何创建一个包含随机生日的人的房间?
【发布时间】:2014-10-04 18:22:42
【问题描述】:

这是我学习 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);
        }

    }

    }

【问题讨论】:

  • 这与您之前以“过于宽泛”而结束的问题有何不同?

标签: java math probability object-oriented-database birthday-paradox


【解决方案1】:
  1. 您的Room 类可能应该包含一个List<Person> 或一个Person (Person[]) 数组。

  2. Person 的构造函数应该接受一个dateOfBirth 参数,或者,为了更简单,您可以接受一个介于 1 和 365 之间的整数,它表示不包括年份的生日日期,因为这就是你所关心的。不要打电话给那个成员age,因为它与年龄无关。

  3. 您想使用 (int)(Math.random() * 365) + 1,它会为您提供 1 到 365 之间的整数。您不需要使用 Math.round()

【讨论】:

    【解决方案2】:

    为此,您只需要一个array 整数,每个索引包含一个人的生日。

    例如,要保存 10 个人的生日,您将创建一个大小为 10 的整数数组。

    int[] birthdays = new int[10];
    

    您可以使用以下方法为数组的索引赋值:

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

    上面的代码会将第三个人的生日分配给一个随机值。

    要获取某人的生日,请使用与以下类似的代码:

    birthdays[1]
    

    所以,要打印第 5 个人的生日,您可以使用

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

    请记住,数组是从 0 开始索引的,这意味着第一个值为 0,最后一个值为 (size - 1)。例如,第 6 个元素的索引为 5。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-04-11
      • 2015-05-12
      • 2011-08-06
      • 2020-11-05
      • 2022-01-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多