php中如何生成1-15之间的随机数?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php中如何生成1-15之间的随机数?相关的知识,希望对你有一定的参考价值。

php中如何自动生成1-15之间的随机数?

能实现吗?哪位能帮我写这段程序啊?非常感谢!

可以使用PHP math 函数 rand(1,15)直接返回即可。

定义和用法:rand() 函数返回随机整数。

语法:rand(min,max)。

参数:min,max 可选。规定随机数产生的范围。

说明:如果没有提供可选参数 min 和 max,rand() 返回 0 到 RAND_MAX 之间的伪随机整数。例如,想要 5 到 15(包括 5 和 15)之间的随机数,用 rand(5, 15)。

扩展资料:

提示和注释

注释:在某些平台下(例如 Windows)RAND_MAX 只有 32768。如果需要的范围大于 32768,那么指定 min 和 max 参数就可以生成大于 RAND_MAX 的数了,或者考虑用 mt_rand() 来替代它。

注释:自 PHP 4.2.0 起,不再需要用 srand() 或 mt_srand() 函数给随机数发生器播种,现在已自动完成。

注释:在 3.0.7 之前的版本中,max 的含义是 range 。要在这些版本中得到和上例相同 5 到 15 的随机数,简短的例子是 rand (5, 11)。

参考资料来源:百度百科-PHP Math

参考技术A

1、使用shuffle函数生成随机数。

<?php

$arr=range(1,10);

shuffle($arr);

foreach($arr as $values)

 echo $values." ";

?>

2、使用array_unique函数生成随机数。

<?php

$arr=array();

while(count($arr)<10)

 $arr[]=rand(1,10);

 $arr=array_unique($arr);

echo implode(" ",$arr);

?>

3、使用array_flip函数生成随机数,可以去掉重复值。

<?php

$arr=array();

$count1=0;

$count = 0;

$return = array();

while ($count < 10)

 

 $return[] = mt_rand(1, 10);

 $return = array_flip(array_flip($return));

 $count = count($return);

  //www.jb51.net

foreach($return as $value)

 

 echo $value." ";

 

echo "<br/>";

$arr=array_values($return);// 获得数组的值

foreach($arr as $key)

echo $key." ";

?>

扩展资料

Python中的shuffle()函数的使用:

解释说明:shuffle()函数是打乱序列里面的元素,并随机排列的。

使用说明:

import random

random.shuffle (alist )123

注意下:alist可以使是一个列表,也可以是个序列。shuffle()是不能直接访问的,需要导入random模块。

有一点需要注意: 下面这样的写法是错误的,不可以把随机排列的结果赋值给另外一个序列列表,只能在原序列列表的基础上操作。

alist2=random.shuffle(alist)
输出的结果为:None

参考技术B

可以使用php 中的 rand() 函数

rand(min,max)

min,max    可选。规定随机数产生的范围。


如果没有提供可选参数 min 和 max,rand() 返回 0 到 RAND_MAX 之间的伪随机整数。例如,想要 1 到 15(包括 1 和 15)之间的随机数,用 rand(1, 15)

<?php 
    $s = rand(1, 15 );// $s 为返回1到15之间的随机数
    echo $s;//输出 即可
?>

参考技术C <?php
$a = rand(1, 15 );//$a为1到15的随机数
echo $a;//输出
?>本回答被提问者采纳
参考技术D rand(1,15);

PHP生成00 - 29之间的随机数[重复]

【中文标题】PHP生成00 - 29之间的随机数[重复]【英文标题】:PHP Generate Random Number Between 00 - 29 [duplicate] 【发布时间】:2012-08-05 15:24:23 【问题描述】:

可能重复:Formatting a number with leading zeros in PHP

我的值介于 00 - 29 之间,需要使用 PHP 随机选择。 我尝试使用 rand() 函数,但它给了我 0 - 29。而不是 00、01、02、03 ... 等等。

如何从 PHP 中随机获取 00 - 09 而不是 0 - 9?谢谢。

【问题讨论】:

【参考方案1】:
$random = sprintf("%02f", rand(0,29));

或者,如 cmets 中所述:

$random = str_pad(rand(0,29), 2, "0", STR_PAD_LEFT);

【讨论】:

我会用 sprintf 而不是 spintf ;) +1 打败我。 str_pad() 也是一个不错的选择。在这种情况下,技术比 *printf() 少一点。 它给了我:0.00, 1.00, 2.00... 不是 00, 01, 02... 这里有什么遗漏吗? 更新了答案以显示str_pad()(杰森好点)并修复了小数错误 他的sprintf() 格式错误,请参阅更新。 (告诉你这是技术性的:)【参考方案2】:

使用str_pad:

$random = str_pad(rand(0, 29), 2, '0', STR_PAD_LEFT);

【讨论】:

【参考方案3】:

创建一个类似的数组

$array = array('00','01','02','03'....,'29');
echo $array[array_rand($array)];

【讨论】:

+1 用于提供替代方案。虽然相当 解决方案:) @JasonMcCreary 我同意。这是一个丑陋的解决方案。 是的,它会起作用,但不要那样做:)【参考方案4】:

a) 如果值低于 10,则添加“0”

b) 使用 number_format 处理输出

【讨论】:

【参考方案5】:

您可以使用 sprintf 来格式化数字。

$number = rand(0,29);
$number = sprintf("%02d", $number);

在 PHP 手册中搜索 sprintf

【讨论】:

【参考方案6】:

您也可以使用这种不依赖附加功能的方法:

$n = rand(0, 29);
if( $n < 10 ) $n = "0" . $n;

【讨论】:

是的,这项工作。但是当存在本机函数时很愚蠢。为什么要围绕它们编写代码? Be a better PHP developer.

以上是关于php中如何生成1-15之间的随机数?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用php在两个日期之间生成随机日期?

php程序如何产生随机数?

Java基础__随机生成1~15之间的数字

C语言随机数序列编程:用C语言程序编写。生成随机数序列。范围:1-15要求生成1-15的随机序列,中间无重复

PHP CodeBase: 生成N个不重复的随机数

如何用php生成1-10之间的不重复随机数