【发布时间】:2015-10-24 00:57:06
【问题描述】:
我在 MySQL 数据库中有一组具有唯一 ID 的问题。 用户也有一个唯一的 ID,并且要回答这些问题,他们的答案会保存在数据库中。
现在,我希望用户根据用户 ID 从可用问题池(比如说 50 个)中获得 5 个不重复且唯一且随机选择的问题。因此,当一个 id 为 10 的用户开始回答他的问题,但停下来想稍后返回到同一页面时,他将得到与以前相同的问题。 id 为 11 的用户会收到一组不同的随机问题,但对他来说总是相同的,并且与所有其他用户不同。
我发现 random.org 可以使用他们的序列生成器生成我需要的内容,该序列生成器根据提供的 ID 生成随机数字序列: https://www.random.org/sequences/?min=1&max=50&col=1&format=plain&rnd=id.10 但我希望生成在本地完成,而不是依赖 random.org API。
所以,我需要在指定范围“Y”内生成“X”唯一随机整数,这些整数是根据提供的整数“Z”生成的。我应该能够调用一个以“Z”为参数的函数,并且每次都接收到相同的“X”整数。
我需要知道如何使用 PHP 代码复制这一代,或者至少在 PHP 函数、伪代码或代码 sn-p 的方向上进行推送或提示,这将允许我自己完成。 提前谢谢!
【问题讨论】:
-
你尝试过php中的rand()函数吗?看这里:w3schools.com/php/func_math_rand.asp
-
是的,我做了,但是我检查的 PHP 中的 rand 函数不接受任何“键”来生成它们的值,并且每次执行它们时都会生成一组不同的值。
-
你说的“键”是什么意思?
-
他想要一个可预测且矛盾的随机数。
-
@Rolle 在您的情况下,我将使用数据库为每个用户保存单个会话和该会话的 questionos id。在这种情况下,您只需生成一次随机密钥,无需考虑以后使用。