怎么能用PHP输出一个由a,b,c三个字母组成的全部组合呢? 5

输出有A,B,C三个字母组成的全部组合... 输出有A,B,C三个字母组成的全部组合 展开
 我来答
百度网友a435633
2009-12-28 · TA获得超过1234个赞
知道大有可为答主
回答量:1018
采纳率:0%
帮助的人:0
展开全部
你这个不是组合的问题,而是排列的问题。
从网上给你找了段现成的代码:
<?php
function permutations($letters,$num){
$last = str_repeat($letters{0},$num);
$result = array();
while($last != str_repeat(lastchar($letters),$num)){
$result[] = $last;
$last = char_add($letters,$last,$num-1);
}
$result[] = $last;
return $result;
}
function char_add($digits,$string,$char){
if($string{$char} <> lastchar($digits)){
$string{$char} = $digits{strpos($digits,$string{$char})+1};
return $string;
}else{
$string = changeall($string,$digits{0},$char);
return char_add($digits,$string,$char-1);
}
}
function lastchar($string){
return $string{strlen($string)-1};
}
function changeall($string,$char,$start = 0,$end = 0){
if($end == 0) $end = strlen($string)-1;
for($i=$start;$i<=$end;$i++){
$string{$i} = $char;
}
return $string;
}
?>

用法示例 :

<?php
$arr=permutations("ABC",3);
print_r($arr);
?>

输出 :

Array
(
[0] => AAA
[1] => AAB
[2] => AAC
[3] => ABA
[4] => ABB
[5] => ABC
[6] => ACA
[7] => ACB
[8] => ACC
[9] => BAA
[10] => BAB
[11] => BAC
[12] => BBA
[13] => BBB
[14] => BBC
[15] => BCA
[16] => BCB
[17] => BCC
[18] => CAA
[19] => CAB
[20] => CAC
[21] => CBA
[22] => CBB
[23] => CBC
[24] => CCA
[25] => CCB
[26] => CCC
)
page7
2009-12-28 · TA获得超过240个赞
知道小有建树答主
回答量:222
采纳率:0%
帮助的人:255万
展开全部
<?php
//兄弟我原创的...给点辛苦分吧哈哈。

$str = array('A','B','C','D');//初始数据,可以无限添加。

//函数体
function A($array, $return='')
{
if(!$return) $return = $array;//初始化
$temp = array();
//组合新数据
foreach ($return as $value)
{
foreach ($array as $v)
{
$temp[] = $value.$v;
}
}
$return = $temp;

//判断是否输出结果
if(strlen($return[0])==count($array))
{
return $return;
}else{
$return = A($array, $return);
return $return;
}
}

//执行输出
print_r(A($str));

?>
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zzs1949
2009-12-28 · TA获得超过1600个赞
知道小有建树答主
回答量:1250
采纳率:80%
帮助的人:1124万
展开全部
看着改吧……呵呵
<?php
$a=A;
$b=B;
$c=C;
$m= rand(1,30);
$n= rand(1,20);
for($i=0;$i<$m;$i++)
{
for ($ii=0;$ii<$n;$ii++)
{echo $a;}
for ($ii=0;$ii<$n;$ii++)
{echo $b;}
for ($ii=0;$ii<$n;$ii++)
{echo $c;}
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
gaoxu387
2009-12-28 · 超过20用户采纳过TA的回答
知道答主
回答量:119
采纳率:0%
帮助的人:63.6万
展开全部
<?php
$sum=0;
for($i=a;$i<=c;$i++)
{
for($j=a;$j<=c;$j++)
{
for($k=a;$k<=c;$k++)
{
echo $i.$j.$k."<br/>";
$sum++;
}
}
}
echo "一共有{$sum}个组合";
?>
呵呵,一共有27个组合呢。不重复
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式