首页 > 后端开发 > php教程 > 如何高效生成特定范围内的唯一随机数列表?

如何高效生成特定范围内的唯一随机数列表?

Susan Sarandon
发布: 2024-12-07 08:54:12
原创
581 人浏览过

How Can I Efficiently Generate a List of Unique Random Numbers Within a Specific Range?

生成范围内的唯一随机数

生成指定范围内的唯一随机数列表可能是一项具有挑战性的任务。一种方法是生成随机数并每次检查它们是否唯一。然而,这种方法对于大范围或大量随机数可能效率低下。

更优化的方法是创建所需范围内的数字数组,然后对数组进行打乱以随机化顺序。生成的数组将包含指定范围内的唯一随机数。

使用具有随机顺序的数字范围的数组:

$numbers = range(1, 20);
shuffle($numbers);
登录后复制

在此代码中,范围(1, 20) 创建一个从 1 到 20 的数字数组。然后 shuffle() 函数会随机化数组中数字的顺序。当所需的随机数数量小于或等于数字范围时,此方法特别有用。

使用包装函数:

对于更复杂的场景,您可以创建一个包装函数,以最小值、最大值和所需数量的随机数作为输入:

function UniqueRandomNumbersWithinRange($min, $max, $quantity) {
    $numbers = range($min, $max);
    shuffle($numbers);
    return array_slice($numbers, 0, $quantity);
}
登录后复制

This函数获取初始范围的数字,对它们进行打乱,然后使用 array_slice() 提取所需数量的随机数。

用法示例:

以下代码演示如何使用 UniqueRandomNumbersWithinRange()函数:

<?php
print_r(UniqueRandomNumbersWithinRange(0, 25, 5));
?>
登录后复制

结果:

Array
(
    [0] => 14
    [1] => 16
    [2] => 17
    [3] => 20
    [4] => 1
)
登录后复制

此代码生成一个由 5 个 0 到 25 之间的唯一随机数组成的数组。这些数字经过打乱以确保唯一性.

以上是如何高效生成特定范围内的唯一随机数列表?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板