Android 得到一套;“静态”;每天随机值
这是一个对于所有善于操纵随机化的人来说的问题。我正在用Android制作一个应用程序。对于此应用程序,我需要生成具有以下条件的随机值:Android 得到一套;“静态”;每天随机值,android,math,random,Android,Math,Random,这是一个对于所有善于操纵随机化的人来说的问题。我正在用Android制作一个应用程序。对于此应用程序,我需要生成具有以下条件的随机值: 我需要生成13个随机值 我需要每天获得这13个随机值的一组新值(基于用户设备的系统)。在一整天中,这13个值不得改变 我需要在本地生成这些值,即用户无法连接到internet在线获取值 现在最困难的部分是:我需要这些值在每天都是“唯一的”:用户1得到的13个随机值必须与用户2得到的13个值相同 每个值都有自己的范围(一些为[1-100],其他为[1-40])
- 我需要生成13个随机值
- 我需要每天获得这13个随机值的一组新值(基于用户设备的系统)。在一整天中,这13个值不得改变
- 我需要在本地生成这些值,即用户无法连接到internet在线获取值
- 现在最困难的部分是:我需要这些值在每天都是“唯一的”:用户1得到的13个随机值必须与用户2得到的13个值相同
- 每个值都有自己的范围(一些为[1-100],其他为[1-40])
编辑:如果时区之间的值不同,则可以编辑。常用的数字是。这意味着对于给定的种子,它们是可预测的。您可以将种子设置为自某个时间点起的天数。例如,因为。然后取13个伪随机值。在那一天,所有设备上都将是相同的。第二天,您使用seed+1创建另一个
Random
,获取13个伪随机值,以此类推。您认为最简单的方法。一粒简单的种子对大多数事情都很好
Calendar cal = new GregorianCalendar();
cal.set(Calendar.HOUR_OF_DAY, 0);
cal.set(Calendar.MINUTE, 0);
cal.set(Calendar.SECOND, 0);
cal.set(Calendar.MILLISECOND, 0);
long seed = cal.getTime().getTime();
如果基于设备的系统,每个用户如何获得唯一的值?不过,如果由于时区差异(或只是为了好玩/玩黑客),用户的系统上没有相同的日期,该怎么办?@kaya:应该使用系统数据来确定当前日期,没别的。@Hemmo:谢谢你指出这一点:我用以下内容编辑了我的问题:如果时区之间的值不同,这没关系。亚当,这看起来确实是个好主意,但是如果我每天加+1,值不会增加吗?我需要避免从一天到另一天的任何趋势感another@Kintaro您正在为种子添加值,而不是伪随机值本身,因此这些值中没有趋势,只是在种子中,这并不重要。例如,选中“是”,当然种子值必须更改,“我的坏”。谢谢你的回答,这是我实现的,它似乎与一些测试一起工作