php产生随机数
① 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)。
(1)php产生随机数扩展阅读:
提示和注释
注释:在某些平台下(例如 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生成不重复随机数、数组的4种方法分享
下面写几种生成不重复随机数的方法,直接上代码吧
复制代码
代码如下:
<?php
define('RANDOM_MAX',
100);
define('COUNT',
10);
echo
'max
random
num:
'.RANDOM_MAX,
'
;result
count:'.COUNT,
'<br/>';
invoke_entry('rand1');
invoke_entry('rand2');
invoke_entry('rand3');
invoke_entry('rand4');
function
invoke_entry($func_name)
{
$time
=
new
time();
$time->time_start();
call_user_func($func_name);
echo
$func_name.'
time
spend:
',
$time->time_spend();
echo
'<br/>';
}
function
rand1()
{
$numbers
=
range
(1,
RANDOM_MAX);
shuffle($numbers); //随机打乱数组
$result
=
array_slice($numbers,
1,
COUNT);
return
$result;
}
function
rand2()
{
$result
=
array();
while(count($result)<
COUNT)
{
$result[]
=
mt_rand(1,
RANDOM_MAX); //mt_rand()是比rand()更好更快的随机函数
$result
=
array_unique($result);
//删除数组中重复的元素
}
return
$result;
}
function
rand3()
{
$result
=
array();
while(count($result)
<
COUNT)
{
$_tmp
=
mt_rand(1,
RANDOM_MAX);
if(!in_array($_tmp,
$result))
{ //当数组中不存在相同的元素时,才允许插入
$result[]
=
$_tmp;
}
}
return
$result;
}
function
rand4()
{
$result
=
array();
while
(count($result)
<
COUNT)
{
$result[]
=
mt_rand(1,
RANDOM_MAX);
$result
=
array_flip(array_flip($result)); //array_flip将数组的key和value交换
}
return
$result;
}
class
time
{
private
$_start;
public
function
time_start()
{
$this->_start
=
$this->microtime_float();
}
public
function
time_spend()
{
return
$this->microtime_float()
-
$this->_start;
}
private
function
microtime_float()
{
list($usec,
$sec)
=
explode("
",
microtime());
return
((float)$usec
+
(float)$sec);
}
}
?>
③ php生成随机数
<?php
$number = '';//初始化一个幸运数数
$num = rand(1,100); //得到一个1-100的随机数
if($num >=1 and $num<=20){
$number = 1; //如果随机数在1-20 那么这个幸运数就为1 ,也就是说幸运数1的概率为20%
}else if($num >=21 and $num <=41 ){
$number = 2; //如果随机数在21-41 那么这个幸运数就为2 ,也就是说幸运数2的概率为21%
}else if..... //依次类推
我这里的1-20 21-41 这个区间是乱写的 你可以打乱 意思就是说从1-100中间得到一个随机数
再给这个随机数添加一个概率 如果说这个随机数是在1-20直接的任意一个那么幸运数就为1,也就是说出现1的概率为20%
④ php随机数生成的函数是
php提供的随机数函数rand(),rand()函数将返回随机整数,具体使用方法如下:rand(min,max)
可选参数min和max可以使rand() 返回0到rand_max之间的伪随机整数,例如,想要5到15(包括 5 和 15)之间的随机数,用 rand(5, 15)
⑤ PHP随机数中的多少执行A,其它执行B该如何写函数呢
你是16进制数,用rand()或mt_rand()分段生成再拼起来。
随机字符串生成法:
function randomkeys($length)
{
$output='';
for ($a = 0; $a < $length; $a++) {
$output .= chr(mt_rand(33, 126)); //生成php随机数
}
return $output;
}
echo randomkeys(8);
其中,mt_rand()生成一个介于33到126之间的php随机数,然后用chr()函数转化成字符。
⑥ php生成随机数字,范围1-100,每次生成一个数字,可以重复
echomt_rand(1,100);
请使用rand函数
intrand(int$min,int$max)
使用循环生成,假如想生成512个数字,就可以像这样:
$num = 1;//初始化一个变量为1
for($i = 1; $i <= 512; $i++)//这个是看你要生成多少个数字,然后循环生成
{
if($num >= 100)
$num = 1;//若变量的数字大于一百,则返回变成1
echo $num."</br>";//输出变量数字,即生成的数字,后面的</br>是换行
$num++;//然后将变量加1,即在前面生成的数字基础上加一
}
(6)php产生随机数扩展阅读:
密码学安全伪随机性。其定义为,给定随机样本的一部分和随机算法,不能有效的演算出随机样本的剩余部分。
真随机性。其定义为随机样本不可重现。实际上只要给定边界条件,真随机数并不存在,可是如果产生一个真随机数样本的边界条件十分复杂且难以捕捉(比如计算机当地的本底辐射波动值),可以认为用这个方法演算出来了真随机数。