我在MySQL数据库中有一组具有唯一I的问题。用户也有一个唯一的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。
因此,我需要生成'X‘唯一的随机整数,在指定的范围'Y’是根据提供的整数'Z‘生成的。我应该能够调用一个以'Z‘为参数的函数,并且每次都能收到相同的'X’整数。
我需要知道如何用PHP代码复制这一代,或者至少在PHP函数、伪代码或代码片段的方向上进行推送或提示,这样我就可以自己完成了。提前谢谢你!
发布于 2015-08-01 12:42:16
为什么要重新发明轮子
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发布于 2015-08-01 12:12:27
当ID为10的用户第一次打开页面时,请使用rand()生成随机数,然后将它们存储到数据库中用户表中的单元格中。因此,id 10的用户存储了rand()号。
例如,users表有id,rand_questions。检查rand_questions是否为空,然后使用生成的新随机数进行更新,否则将从数据库中获得数字。
发布于 2015-08-01 12:16:02
您可以获得随机的$w数组值。以这段代码为例,并根据您的逻辑进行更改。
$w = array('0'=>11,'1'=>22,'2'=>44,'3'=>55,'4'=>66,'5'=>88);
$str = '';
for($i=0;$i<5;$i++) {
$str.= $w[rand(0,5)];
}https://stackoverflow.com/questions/31761533
复制相似问题