生成每天范围内的随机整数

时间:2012-01-24 12:33:37

标签: random

我正在编写一个应用程序,我需要每天在一个范围内的持久随机整数。这个数字应该是不同的,但每一天都是持久的。输出应尽可能均匀,但分配质量不一定是最好的。我更喜欢这个问题的一个简单且“足够好”的解决方案。

我可以使用哪种算法?

输入:当前日期(例如,表示自某个纪元以来的天数的整数) 输出:X和Y之间的随机整数

谢谢。

编辑:我正在使用的平台没有种子PRNG实现。

2 个答案:

答案 0 :(得分:0)

算法:

  1. 种子RNG与当天
  2. 生成一个随机数
  3. Mod y ,添加 x
  4. 如果您想要统一的概率,请使用更智能的算法替换第三步。

    编辑:好的,你没有PRNG。然后,您可能希望将一些哈希算法应用于当前日期,并将其视为随机数。

答案 1 :(得分:0)

我不确定您是想自己编写算法还是只需要编程解决方案。

对于后者,您可以使用以下内容:

new Random((DateTime.Today - new DateTime(1970,1,1)).Days)
    .Next(min, max)

那是在C#中,但你明白了这个想法:

  • 使用固定的开始日期
  • 计算从那时起的日子
  • 将该天数用作随机数生成器的seed
  • 使用实用程序功能(例如
  • )获取您的界限内的数字