Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/212.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 得到一套;“静态”;每天随机值_Android_Math_Random - Fatal编程技术网

Android 得到一套;“静态”;每天随机值

Android 得到一套;“静态”;每天随机值,android,math,random,Android,Math,Random,这是一个对于所有善于操纵随机化的人来说的问题。我正在用Android制作一个应用程序。对于此应用程序,我需要生成具有以下条件的随机值: 我需要生成13个随机值 我需要每天获得这13个随机值的一组新值(基于用户设备的系统)。在一整天中,这13个值不得改变 我需要在本地生成这些值,即用户无法连接到internet在线获取值 现在最困难的部分是:我需要这些值在每天都是“唯一的”:用户1得到的13个随机值必须与用户2得到的13个值相同 每个值都有自己的范围(一些为[1-100],其他为[1-40])

这是一个对于所有善于操纵随机化的人来说的问题。我正在用Android制作一个应用程序。对于此应用程序,我需要生成具有以下条件的随机值:

  • 我需要生成13个随机值

  • 我需要每天获得这13个随机值的一组新值(基于用户设备的系统)。在一整天中,这13个值不得改变

  • 我需要在本地生成这些值,即用户无法连接到internet在线获取值

  • 现在最困难的部分是:我需要这些值在每天都是“唯一的”:用户1得到的13个随机值必须与用户2得到的13个值相同

  • 每个值都有自己的范围(一些为[1-100],其他为[1-40])

我对解决方案的第一个假设是使用来自设备系统的日期值组合(一年中的一天、一个月中的一天、一周中的一天等),因为这些对于每个用户都是相同的。我不能使用小时、分钟或秒,因为13个值需要在一整天内保持不变(根据设备系统,它们只在第二天更改)

我很想了解你的想法

谢谢


编辑:如果时区之间的值不同,则可以编辑。

常用的数字是。这意味着对于给定的种子,它们是可预测的。您可以将种子设置为自某个时间点起的天数。例如,因为。然后取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您正在为种子添加值,而不是伪随机值本身,因此这些值中没有趋势,只是在种子中,这并不重要。例如,选中“是”,当然种子值必须更改,“我的坏”。谢谢你的回答,这是我实现的,它似乎与一些测试一起工作