在php中减少随机数的随机性

在php中减少随机数的随机性,php,Php,我试图在php中回显随机数。我在下面使用这个方法 <?php echo mt_rand(10, 100)." Users Online"; ?> 我使用的代码给出了随机数,但我希望随机数以较小的数字跳跃,而不是像从20跳到100 有什么简单的方法可以做到这一点吗?您可以随时将随机数生成器上的范围更改为较小的范围。如果你想让它更灵活一点,你甚至可以用变量替换我下面例子中的30和35,如果你需要的话,根据时间计算随机数的最大值和最小值 <?php echo mt_rand(30,

我试图在php中回显随机数。我在下面使用这个方法

<?php
echo mt_rand(10, 100)." Users Online";
?>
我使用的代码给出了随机数,但我希望随机数以较小的数字跳跃,而不是像从20跳到100


有什么简单的方法可以做到这一点吗?

您可以随时将随机数生成器上的范围更改为较小的范围。如果你想让它更灵活一点,你甚至可以用变量替换我下面例子中的30和35,如果你需要的话,根据时间计算随机数的最大值和最小值

<?php
echo mt_rand(30, 35)." Users Online";
?>

您可以随时将随机数生成器上的范围更改为较小的范围。如果你想让它更灵活一点,你甚至可以用变量替换我下面例子中的30和35,如果你需要的话,根据时间计算随机数的最大值和最小值

<?php
echo mt_rand(30, 35)." Users Online";
?>

使用会话变量跟踪数字。 如果设置了一个数字,则使用前一个值的随机数+-5

<?php
session_start();
if(isset($_SESSION['num'])){
    $num = mt_rand($_SESSION['num']-5, $_SESSION['num']+5);
}else{
    $num = mt_rand(10, 100);
}
echo $num . " Users Online"; 
$_SESSION['num'] = $num;

使用会话变量跟踪数字。 如果设置了一个数字,则使用前一个值的随机数+-5

<?php
session_start();
if(isset($_SESSION['num'])){
    $num = mt_rand($_SESSION['num']-5, $_SESSION['num']+5);
}else{
    $num = mt_rand(10, 100);
}
echo $num . " Users Online"; 
$_SESSION['num'] = $num;

我有一个建议。。。也许你真正想要的是一系列随机数。解释。。。您可以使用Switch语句根据第一个随机数实际传递结果。像这样:

 $i = mt_rand(1, 4);
 $finalRand = 0;
 switch ($i) {
    case 1:
        $finalRand = mt_rand(1, 10);
        break;
    case 2:
        $finalRand = mt_rand(11, 20);
        break;
    case 3:
        $finalRand = mt_rand(21, 50);
        break;
    case 4:
        $finalRand = mt_rand(50, 100);
        break;
}
此例程的最终结果是首先随机选择一个数字,然后从中随机选择最终范围中的一个数字


你可以调整它以得到你想要的任何结果。但这是基本想法。

我有一个建议。。。也许你真正想要的是一系列随机数。解释。。。您可以使用Switch语句根据第一个随机数实际传递结果。像这样:

 $i = mt_rand(1, 4);
 $finalRand = 0;
 switch ($i) {
    case 1:
        $finalRand = mt_rand(1, 10);
        break;
    case 2:
        $finalRand = mt_rand(11, 20);
        break;
    case 3:
        $finalRand = mt_rand(21, 50);
        break;
    case 4:
        $finalRand = mt_rand(50, 100);
        break;
}
此例程的最终结果是首先随机选择一个数字,然后从中随机选择最终范围中的一个数字

你可以调整它以得到你想要的任何结果。但这是基本的想法。

这个例子消除了一点你在问题中描述的东西,它经常想从20跳到100,但这是可能发生的

你可以在家里试试 前1000个结果是:

你可以自己测试一下

编辑 您可以通过更改$limit和$diff来计算出正确的结果。

此示例消除了您在问题中描述的一点内容,它经常希望从20跳到100,但也可能发生

你可以在家里试试 前1000个结果是:

你可以自己测试一下

编辑

您可以通过更改$limit和$diff来计算出正确的结果。

Errm这将使数字完全不是随机的……为什么需要它们?如果您不想让它跳跃,您必须使用会话来分配一个基本随机数,然后添加或减去一个较小的随机数以显示给该用户。例如,一个用户出现了,并且被随机分配了一个介于10和100之间的数字。他们得到40分。保存在用户会话中的。例如,每次刷新页面时,生成一个介于-2和2之间的随机数,并将其添加到基数40中。因此,他们将看到一个38到42之间的随机数。听起来像是一个数字的缩影。从你的问题来看,你似乎在试图对用户撒谎,说有多少人在使用你的服务?你想解决什么问题?呃,那会让数字根本不是随机的…你为什么需要它们?如果你不想让它跳来跳去,你就必须使用会话来分配一个基本随机数,然后加上或减去一个较小的随机数以显示给该用户。例如,一个用户出现了,并且被随机分配了一个介于10和100之间的数字。他们得到40分。保存在用户会话中的。例如,每次刷新页面时,生成一个介于-2和2之间的随机数,并将其添加到基数40中。因此,他们将看到一个38到42之间的随机数。听起来像是一个数字的缩影。从你的问题来看,你似乎在试图对用户撒谎,说有多少人在使用你的服务?你想解决什么问题?这并不能解决问题。一个用户在第一次刷新页面时仍然可以获得100,下次刷新页面时仍然可以获得5//耸耸肩。。。我只是建议减少他的数字的随机性,但你没有这样做。这些数字就像没有这个代码一样随机这并不能解决问题。一个用户在第一次刷新页面时仍然可以获得100,下次刷新页面时仍然可以获得5//耸耸肩。。。我只是建议减少他的数字的随机性,但你没有这样做。数字就像没有这个代码一样随机这是一个很棒的解决方法,我也会尝试一下:这个代码在随机数字中也会有很大的跳跃。从6到45到60再回到12的例子。@Andreas解释总是带来快乐。。。你可以通过settin来优化它
g适当的$limit和$diff。为了实现@jason5137715的要求,使用会话变量确实很有意义。但是因为你的答案是基于会话变量的,我想我必须提出一些不同的东西。此外,如果你严格地说不想使用会话变量或不能使用,会发生什么?@Andreas,永远不要忘记我回答中的最初描述。这个例子消除了一点你在问题中描述的内容,它经常想从20跳到100,但这是可能发生的。如果你不能使用会话?为什么会这样?即使使用POST,因为我不知道这是如何解决问题的这是一个非常棒的解决方法,我也会尝试一下:这段代码也会使随机数大幅跳跃。从6到45到60再回到12的例子。@Andreas解释总是带来快乐。。。您可以通过设置适当的$limit和$diff来优化这一点。为了实现@jason5137715的要求,使用会话变量确实很有意义。但是因为你的答案是基于会话变量的,我想我必须提出一些不同的东西。此外,如果你严格地说不想使用会话变量或不能使用,会发生什么?@Andreas,永远不要忘记我回答中的最初描述。这个例子消除了一点你在问题中描述的内容,它经常想从20跳到100,但这是可能发生的。如果你不能使用会话?为什么会这样?即使这样,也要使用POST,因为我不知道这是如何解决问题的