本文目录一览:
php程序如何产生随机数?
mt_rand — 生成更好的随机数
它可以产生随机数值的平均速度比 libc 提供的 rand() 快四倍。
所以建议楼主用这个函数 比rand要快
int mt_rand ([ int $min ], int $max ) $min为做小值 $max为最大值
?php
echo "table";
for ($i=0;$i2;$i++) // 外层循环控制行数
{
echo "tr";
for ($j=0;$j10;$j++) // 内层循环控制列数
{
echo "td".mt_rand(10,100000)."/td"; // 产生随机数
}
echo "/tr";
}
echo "/table"
?
PHP生成随机数的几种方法
php生成随机数的几种方法,总结如下:
第一种方法,非常简单,直接使用系统自带的函数:
查看代码1 srand((double)microtime()*1000000);
2 //随机产生0-99之间的整数
3 $randval=rand(0,99999999);
4 echo $randval,'
';
5
6
第二种方法,稍微复杂一点,不只是生成只有数字的随机字符串,更包括了各种特殊字符:
查看代码
function randomkeys($length){
$output='';
for($a=0;$a$length; $a++){
$output.=chr(mt_rand(33, 126));
}
return $output;
}
echo randomkeys(20);
php怎么生成6位随机数?
通常情况下,当我们要生成一个随机字符串时,总是先创建一个字符池,然后用一个循环和mt_rand()或rand()生成php随机数,从字符池中随机选取字符,最后拼凑出需要的长度。代码如下:
function randomkeys($length)
{
$pattern = '1234567890abcdefghijklmnopqrstuvwxyz
ABCDEFGHIJKLOMNOPQRSTUVWXYZ,./l
t;?;#:@~[]{}-_=+)(*^%___FCKpd___0pound;"!'; //字符池
for($i=0;$i$length;$i++)
{
$key .= $pattern{mt_rand(0,35)}; //生成php随机数
}
return $key;
}
echo randomkeys(8);
这个php随机函数能生成XC*=z~7L这样的字符串,随机!
另一种用PHP生成随机数的方法:利用chr()函数,省去创建字符池的步骤。代码如下:
function randomkeys($length)
{
$output='';
for ($a = 0; $a $length; $a++) {
$output .= chr(mt_rand(33, 126)); //生成php随机数
}
return $output;
}
echo randomkeys(8);
在第二个php随机函数里,先用mt_rand()生成一个介于33到126之间的php随机数,然后用chr()函数转化成字符。查看ascii码表就会发现,33到126代表的正是第一个函数中字符池里的所有字符。第二个函数和第一个函数功能相同,而且更简洁。-编写php程序产生一个随机数
php使用codebase生成随机数
有25幅作品拿去投票,一次投票需要选16幅,单个作品一次投票只能选择一次。前面有个程序员捅了漏子,忘了把投票入库,有200个用户产生的投票序列为空。那么你会如何填补这个漏子?
当然向上级反映情况。但是我们这里讨论的是技术,就是需要生成1-25之间的16个不重复的随机数,去填补。具体怎么设计函数呢?将随机数存入数组,再在数组中去除重复的值,即可生成一定数量的不重复随机数。
程序如下:
复制代码
代码如下:
?php
/*
*
array
unique_rand(
int
$min,
int
$max,
int
$num
)
*
生成一定数量的不重复随机数
*
$min
和
$max:
指定随机数的范围
*
$num:
指定生成数量
*/
function
unique_rand($min,
$max,
$num)
{
$count
=
0;
$return
=
array();
while
($count
$num)
{
$return[]
=
mt_rand($min,
$max);
$return
=
array_flip(array_flip($return));
$count
=
count($return);
}
shuffle($return);
return
$return;
}
$arr
=
unique_rand(1,
25,
16);
sort($arr);
$result
=
'';
for($i=0;
$i
count($arr);$i++)
{
$result
.=
$arr[$i].',';
}
$result
=
substr($result,
0,
-1);
echo
$result;
?