PHP - 从键生成指定范围内的随机整数

标签 php algorithm random

我在 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 函数、伪代码或代码片段的方向上进行推送或提示,以便我自己完成。 提前致谢!

最佳答案

为什么要重新发明轮子

mt_srand(44);
for ($i=0; $i < 10; $i++) echo mt_rand(). "\n";
echo "\n\n";
mt_srand(44);
for ($i=0; $i < 10; $i++) echo mt_rand(). "\n";

结果

362278652
928876241
1914830862
68235862
1599103261
790008503
1366233414
1758526812
771614145
1520717825


362278652
928876241
1914830862
68235862
1599103261
790008503
1366233414
1758526812
771614145
1520717825

关于PHP - 从键生成指定范围内的随机整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31761533/

相关文章:

PHP 查询不能与 bindParam 一起使用,但查询本身可以工作

java - 查找/打印在找到随机数之前生成了多少个数字

寻找相似公式的算法

java - 如何找到与同一对象关联的最大对象数

algorithm - 在 <key, value> 对列表中查找键列表

linux - Python 3.6 无法在带有 "failed to get random numbers to initialize Python"的 QEMU 中构建

php随机mysql数据

php - First Data PHP API

php - MySQL PDO 准备语句

php - 从两个表中选择最新条目?