Java:如何创建一个有随机生日的人的房间?

Java:如何创建一个有随机生日的人的房间?,java,math,probability,object-oriented-database,birthday-paradox,Java,Math,Probability,Object Oriented Database,Birthday Paradox,这是我学习Java的第二天。我遇到了一个关于生日悖论的有趣问题 生成一个随机的生日 创建一个随机生日的人 构建一个函数来检查两个人的生日是否相同 创建一个有给定人数的房间 构建一个函数来检查一个房间中是否至少有两个人的生日相同 然而,我被困在如何创建一个“房间”与“人”,然后比较人的生日 有人知道怎么做吗 感谢您的努力和时间!:) 您的房间类可能应该包含一个列表或一个Person数组(Person[]) Person的构造函数应该接受一个dateOfBirth参数,或者更简单地说,您可以接受一个

这是我学习Java的第二天。我遇到了一个关于生日悖论的有趣问题

  • 生成一个随机的生日
  • 创建一个随机生日的人
  • 构建一个函数来检查两个人的生日是否相同
  • 创建一个有给定人数的房间
  • 构建一个函数来检查一个房间中是否至少有两个人的生日相同
  • 然而,我被困在如何创建一个“房间”与“人”,然后比较人的生日

    有人知道怎么做吗

    感谢您的努力和时间!:)

  • 您的
    房间
    类可能应该包含一个
    列表
    或一个Person数组(Person[])

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

  • 您希望使用
    (int)(Math.random()*365)+1
    ,这将为您提供介于1和365之间的整数。您不需要使用
    Math.round()


  • 对于这一点,您需要的只是一组整数,每个索引包含一个人的生日

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

    int[] birthdays = new int[10];
    
    可以使用以下命令为数组的索引赋值:

    birthdays[2] = (int)(Math.random() * 364);
    
    birthdays[1]
    
    上面的代码将第三个人的生日指定为一个随机值

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

    birthdays[2] = (int)(Math.random() * 364);
    
    birthdays[1]
    
    所以,要打印第五个人的生日,您可以使用

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

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

    这与您之前的问题有什么不同,您之前的问题被关闭为“过于宽泛”?