请教一下,用PHP如何生成50万个不重复的8位阿拉伯数字?

请教一下,用PHP如何生成50万个不重复的8位阿拉伯数字。代码怎么样写?求帮助?急。。求完整的代码... 请教一下,用PHP如何生成50万个不重复的8位阿拉伯数字。代码怎么样写?求帮助?急。。求完整的代码 展开
 我来答
xiii130
2013-03-08 · 知道合伙人软件行家
xiii130
知道合伙人软件行家
采纳数:817 获赞数:2867
爱好编程,在工作中积累了比较丰富的经验。愿与大家共同进步。

向TA提问 私信TA
展开全部
<?php
function singelRand(){
$chars="1234567890";
$string="";
for($i=0;$i<8;$i++){
srand((double)microtime()*1000000);
$rand=rand(0,strlen($chars)-1);
$string.=substr($chars,$rand,1);
}
return $string;
}
function produce50W(){
$count = 50000;
$result = array();
for($i=0;$i<$count;$i++){
array_push($result, singelRand());
}
return $result;
}
$a = produce50W();
print_r($a);
?>
更多追问追答
追问
我测试了下。貌似生成的8位数会有重复现象
追答
简单,判断一下就是了,不过效率可能会受到影响,因为数据量比较大
function singelRand($result){
$chars="1234567890";
$string="";
for($i=0;$i<8;$i++){
srand((double)microtime()*1000000);
$rand=rand(0,strlen($chars)-1);
$string.=substr($chars,$rand,1);
}
if(!in_array($string, $result)){
return $string;
}
}
function produce50W(){
$count = 50000;
$result = array();
for($i=0;$i<$count;$i++){
$callback = singelRand();
if($a!=NULL){
array_push($result, $callback);
}
}
return $result;
}
$a = produce50W();
print_r($a);
pyllion
2013-03-08 · TA获得超过817个赞
知道小有建树答主
回答量:661
采纳率:100%
帮助的人:660万
展开全部
这个有点难度,下面的代码测试是通过的,测试时是500000数据按每一行为5个数字

代码如下,测试通过:

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>测试数据</title>
</head>

<body>
<p>
<?
for($i=0; $i<=499999; $i++)
{
if($i%5==0){echo("<br>");}
?>
(<?=$i+1;?>) <?=rand(10000000,99999999);?>,
<?
}
?>
</p>

</body></html>
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友0f37e23c0
2013-03-08 · TA获得超过1543个赞
知道大有可为答主
回答量:1070
采纳率:50%
帮助的人:1298万
展开全部
答案:

<?php
$totail = 99999999;
for ($i =500000 ; $i >= 1; $i --)
{
echo $totail - $i;
echo "<br>";
}
?>
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友7c143ea
2013-03-11 · 超过60用户采纳过TA的回答
知道小有建树答主
回答量:126
采纳率:0%
帮助的人:66.1万
展开全部
$num = array();
for ($i = 10000000, $j = 0; $j < 500000; $i++, $j++) {
$num[] = $i;
}
$num里装了50W个数字。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友a19d193
2013-03-08 · TA获得超过3446个赞
知道大有可为答主
回答量:1464
采纳率:100%
帮助的人:1447万
展开全部
50万啊,如果你只用一次的话很容易
<?php
set_time_limit(0);
$numbers = array();
for (var i = 10000000; i <= 99999999; i++) {
$numbers[] = i;

}
$rand_keys = array_rand($numbers, 500000);
foreach ($rand_keys as $value) {
echo $value . "<br />\n";

}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式