显示每日提示,没有数据库

时间:2011-02-07 22:44:42

标签: random asp-classic

我有大约100个提示,我需要在网站上随机显示,每天不同的提示,并且无法访问数据库。我已经考虑过将这些提示放入数组中并将每个组与一个月中的某一天相关联,但这并不会使这些提示随机出现。完成这项任务的相对无痛的方法是什么?

3 个答案:

答案 0 :(得分:1)

由于您希望每天只显示一个提示,并且您无法存储任何状态,因此您可以执行以下操作:

  1. 使用某种确定性方法对提示进行排序。
  2. 使用今天的日期为随机数生成器播种。
  3. i
  4. 处显示i = random.Next(numTips) th 提示
  5. 每次重复此整个过程(包括重新设定随机数生成器)。
  6. 如果您还想确保在重复提示前至少显示一次提示:

    1. 为具有常量值的随机数生成器播种(当前时间,这很重要)。
    2. 使用您创建的不那么随机的数字生成器,使用Fisher-Yates对元素进行随机播放。或者使用LINQ:

      tips.OrderBy(x => random.Next()).ToArray();
      
    3. 显示i th 提示mod tips.Length,其中i是自大纪元以来的天数。

答案 1 :(得分:0)

选择1到100之间的随机数,显示该提示。

如果您可以获得磁盘上的提示,请在文件1.tip到100.tip中命名,然后当您选择号码时,只需读入并显示该文件。

如果你以某种方式在内存中有提示(数组最简单),只需显示随机数指向的提示减1(假设你有从零开始的数组索引)。

除非我遗漏了一些基本的东西,否则这就是基本要点。

答案 2 :(得分:0)