当前位置: 首页 > 知识库问答 >
问题:

具有特定范围且接近特定数字的PHP随机数

冯宪
2023-03-14

据你所知,PHP有一个随机函数,每个人都可以使用它。

<?php  rand(min,max);   ?>

现在我的问题是,我怎样才能将重力定义为特定的数?

例如,rand(0100)返回最小值和最大值之间的真正随机数,以及不可预见的将选择的数字,我在10个html" target="_blank">循环中使用rand,结果是:

28,41,2,94,65,23,47,97,59,69,32

现在我想在特定的数字附近有一个rand数字,例如rand(0,20)。接近10,例如长度为4的怒气。

1,6,12,15,7,8,20,12,10,9,20

如你所见,大多数数字接近10,但有1,甚至20。

我不知道如何使用以下条件编写随机函数:

1-到什么号码必须接近?10个

2-什么范围在附近?4.

3-这个数字接近具体数字的百分比是多少?百分之七十

共有1个答案

慕朝明
2023-03-14

你想创建一个正常的随机变量.下面的函数创建一个变量使用Marsaglia极方法:

 function rand_polar($m = 0.0, $s = 1.0){
       do {
             $x = (float)mt_rand()/(float)mt_getrandmax();
             $y = (float)mt_rand()/(float)mt_getrandmax();

             $q = pow((2 * $x - 1), 2) + pow((2 * $y - 1), 2);
       }
       while ($q > 1);

       $p = sqrt((-2 * log($q))/$q);

       $y = ((2 * $y - 1) * $p);
       $x = ((2 * $x - 1) * $p);

       return $y * $s + $m;
 }

用法:rand\u polar(平均值、标准方差),在您的情况下rand\u polar(10,4)

有边界:

function rand_polar($m = 0.0, $s = 1.0, $min = 0, $max = 20){
    do {
        do {
            $x = (float)mt_rand()/(float)mt_getrandmax();
            $y = (float)mt_rand()/(float)mt_getrandmax();

            $q = pow((2 * $x - 1), 2) + pow((2 * $y - 1), 2);
        }
        while ($q > 1);

        $p = sqrt((-2 * log($q))/$q);

        $y = ((2 * $y - 1) * $p);
        $x = ((2 * $x - 1) * $p);
        $rand = $y * $s + $m;
    }
    while($rand > $max || $rand < $min);
    return $rand;
}

用法:rand_polar(10, 4, 0, 20)

 类似资料:
  • 我目前正在创建一个应用程序,它将生成随机数。所以每次它都会生成三个数字num1、num2和num3。这些数字不应该重复。例如,如果num1=1,则num2和num3不能等于1。我尝试过此代码,它将显示0-2之间的三个不同数字。然而,我想生成1-3、2-4、3-5等范围内的随机数。因此,我如何通过使用下面的代码来实现这一点。请帮帮我,因为我是新手。非常感谢。

  • 问题内容: 如何在JavaScript中的两个指定变量之间生成随机整数,例如,并输出以下任何内容? 问题答案: 一些示例: 这是背后的逻辑。这是三个简单的规则: 返回介于0(含)和1(不含)之间的。所以我们有一个这样的间隔: 现在,我们想要一个介于(含)和(不含)之间的数字: 我们可以使用来获取[min,max)间隔中的对应对象。但是,首先我们应该通过从第二个间隔中减去一点来解决这个问题: 这给出

  • 问题内容: 我想生成一组x个唯一的随机数,并在Python中对其进行排序。例如:range(1000,10000)x = 100 我想出了导入随机数并使用random.randrange方法,然后循环获取100个随机数,最后对它们进行排序。 但是,我不知道如何获得唯一的数字(这样就不会重复)-我应该验证每个循环吗?还是还有其他更简单的方法呢?我应该如何对它们进行排序? 问题答案: 采用 排序部分很

  • 问题内容: 我想在特定范围内生成随机数。(例如范围在65到80之间) 我尝试按照下面的代码,但不是很完整。它还返回大于最大值的值。值(大于80)。 如何生成范围之间的随机数? 问题答案: 给出介于65(含)和80(不含)之间的随机整数,其中之一。

  • 问题内容: 如何生成int特定范围内的随机值? 我尝试了以下方法,但是这些方法不起作用: 尝试1: 尝试2: 问题答案: 在Java 1.7或更高版本中,执行此操作的标准方法如下: 请参阅相关的JavaDoc。这种方法的优点是不需要显式初始化java.util.Random实例,如果使用不当,可能会引起混乱和错误。 但是,相反,没有办法显式设置种子,因此在测试或保存游戏状态或类似情况有用的情况下,

  • 本文向大家介绍如何在JavaScript中生成特定范围内的随机整数?,包括了如何在JavaScript中生成特定范围内的随机整数?的使用技巧和注意事项,需要的朋友参考一下 要生成随机数,请使用JavaScript Math.random()方法。在这里设置最小值和最大值,并在它们之间生成一个随机数,如以下代码所示: 示例