<?php
define("MAX_NUM",30);
define("SMALL_NUM",5);
$allChar[MAX_NUM] = array();//create string
for($i = 0;$i<MAX_NUM;$i++)
{
$allChar[$i] = chr(rand(11, 100));
}
$arr_tmp = array();
$n =0;
for($i=0;$i < MAX_NUM;$i++)
for($j=0;$j < MAX_NUM;$j++)
for($k=0;$k < MAX_NUM;$k++)
for($l=0;$l < MAX_NUM;$l++)
for($m=0;$m < MAX_NUM;$m++)
{
$str = $allChar[$i].$allChar[$j].$allChar[$k].$allChar[$l].$allChar[$m];
$flag = true;
for($a = 0;$a < count($arr_tmp);$a++)
{
if($arr_tmp[$a] == $str )
{
$flag = false;
break;
}
}
if($flag)
{
$arr_tmp[$n++] = $str;
echo "字符串 ".$n." is :".$str." <br>";
}
}
?>
比较笨的方法,来接点分
define("MAX_NUM",30);
define("SMALL_NUM",5);
$allChar[MAX_NUM] = array();//create string
for($i = 0;$i<MAX_NUM;$i++)
{
$allChar[$i] = chr(rand(11, 100));
}
$arr_tmp = array();
$n =0;
for($i=0;$i < MAX_NUM;$i++)
for($j=0;$j < MAX_NUM;$j++)
for($k=0;$k < MAX_NUM;$k++)
for($l=0;$l < MAX_NUM;$l++)
for($m=0;$m < MAX_NUM;$m++)
{
$str = $allChar[$i].$allChar[$j].$allChar[$k].$allChar[$l].$allChar[$m];
$flag = true;
for($a = 0;$a < count($arr_tmp);$a++)
{
if($arr_tmp[$a] == $str )
{
$flag = false;
break;
}
}
if($flag)
{
$arr_tmp[$n++] = $str;
echo "字符串 ".$n." is :".$str." <br>";
}
}
?>
比较笨的方法,来接点分
解决方案 »
- 响应版主号召,发点入门教学文章 - 简单说下redis主从复制过程以及我发现的一个导致我线上业务出bug的不起眼特性
- PHP +MYSQL 的缓存查询系统 不知道我这样理解对不(新手)能否给个的例子
- header 问题???
- php读取js里面的cookie
- 程序在Zend里调试通过,结果也正常,可是不显示
- GD库生成动态多帧的gif图档
- MySQL中如何优化这样的查询: SELECT id, name FROM tab LIMIT 123, 10
- php程序怎么和javascript程序结合?谁知道相关的书籍或有介绍的网站?(回复给分)
- 如何发现出错代码及错误 信息!急!!!!!!
- 在用include加载某个文件时,被加载的文件有错误,可以用try-catch抛出异常吗?
- 问一个数字格式化问题
- GET和POST有什么区别?什么情况下应使用GET,什么情况下应使用POST?
$data = "abcdefghijk"; //测试串,长度任意。越长则运行时间越长
preg_match_all("/./",$data,$r); //按字符分裂成数组
$ar = $r[0];/**
递归函数,参数
$ar 数据数组
$m 组合串的长度
$s 工作变量,用于缓存中间量
**/
function foo($ar,$m,$s='') {
if($m == 0) {
echo "$s<br>"; //如果长度够了则输出结果
}else {
for($i=0;$i<count($ar);$i++) {
foo($ar,$m-1,$s.$ar[$i]); //递归
}
}
}foo($ar,5);
?>
define('COUNT', 4);$root = "";
$dom = new Node($str[0], 1, &$root);
$dom->execute(substr($str, 1));class Node{
var $char;
var $level;
var $parent; function Node($char, $level, &$parent){
$this->char = $char;
$this->level = $level;
$this->parent = &$parent;
} function execute($str){
if($this->level==COUNT){
echo $this->doPath()."<br>";
return ;
}
$length = strlen($str);
for($i=0; $i<$length; $i++){
$obj = new Node($str[$i], $this->level+1, $this);
$obj->execute(substr($str, $i+1));
}
} function doPath(){
return $this->level==1? $this->char: $this->parent->doPath().$this->char;
}
}?>
大家继续发表一下意见。
也容我再想想。
<?php$str = "abcdefghijk";
define('COUNT', 4);$dom = new Root($str);
$dom->execute();class Root{ var $str = ''; function Root($str){
$this->str = $str;
} function execute(){
$i = 0;
while($this->str[$i]!=null){
$dom = new Node($this->str[$i++], 1, $this);
$dom->execute(substr($this->str, $i));
}
}}class Node{
var $char;
var $level;
var $parent; function Node($char, $level, &$parent){
$this->char = $char;
$this->level = $level;
$this->parent = &$parent;
} function execute($str){
if($this->level==COUNT){
echo $this->doPath()."<br>";
return ;
}
$length = strlen($str);
for($i=0; $i<$length; $i++){
$obj = new Node($str[$i], $this->level+1, $this);
$obj->execute(substr($str, $i+1));
}
} function doPath(){
return $this->level==1? $this->char: $this->parent->doPath().$this->char;
}
}?>
<?php$str = "abcdedef";
define('COUNT', 4);$dom = new Root($str);
$dom->execute();class Root{ var $str = ''; function Root($str){
$this->str = $str;
} function execute(){
$i = 0;
while($this->str[$i]!=null){
$dom = new Node($this->str[$i++], 1, $this);
$dom->execute(substr($this->str, $i));
}
}}class Node{
var $char;
var $level;
var $parent; function Node($char, $level, &$parent){
$this->char = $char;
$this->level = $level;
$this->parent = &$parent;
} function execute($str){
if($this->level==COUNT){
return NodeHelp::sort($this->doPath());
}
$length = strlen($str);
for($i=0; $i<$length; $i++){
$obj = new Node($str[$i], $this->level+1, $this);
$obj->execute(substr($str, $i+1));
}
} function doPath(){
return $this->level==1? $this->char: $this->parent->doPath().$this->char;
}
}class NodeHelp{ function sort($str){
$i=1;
$data = array($str[0]);
while($str[$i]!=null){
$data = NodeHelp::sortHelp($str[$i],$data);
$i++;
}
NodeHelp::write($data);
} function sortHelp($char, $data){
$result = array();
foreach($data as $d){
$length = strlen($d);
for($i=0; $i<=$length; $i++){
$result[] = substr($d, 0, $i).$char.substr($d, $i);
}
}
return $result;
} function write($data){
foreach($data as $d)
echo $d."-";
echo "--------END<br>";
}}?>
你的是从abcd开始的,并没有aaaa,aaab,aaac,aaad之类的,要是彩票的话这些是允许出现的。