帐号: 密码:
// 设为首页 // 收藏本站 // 请您留言 // 网址导航
远方教程-满足你的求知欲!
站内搜索:
HTML ASP PHP CSS DIV Dreamweaver Photoshop Word Excel PPT SEO技巧
您当前位置:网站首页 >> PHP教程 >> 常用PHP函数 >> 阅读文章

常用php函数[10]:排列函数

来源:远方教程 作者:远方教程 发布时间:2015-06-30 查看次数:1755 访问[新版]

        这个只是基础算法, 如果要实际应用, 输出部分要改成保存到数组中。

排列函数定义

  1.        <?php
  2.        function permute($pos){
  3.          global $n ,$r , $used , $p  ;
  4.        /*如果已是第r个元素了,则可打印r个元素的排列 */
  5.        //如果要实际应用,这里要保存到数组中。
  6.            if ($pos==$r) {
  7.                for ($i=0; $i<$r; $i++)
  8.                    echo $p[$i]+1;
  9.                echo "<br>";
  10.             return;
  11.         }
  12.         for ($i=0; $i<$n; $i++)
  13.             if ($used[$i]==0) { /*如果第i个元素未用过*/
  14.     /*使用第i个元素,作上已用标记,目的是使以后该元素不可用*/
  15.                 $used[$i]++;
  16.     /*保存当前搜索到的第i个元素*/
  17.                 $p[$pos] = $i;
  18.     /*递归搜索*/
  19.               permute($pos+1);
  20.     /*恢复递归前的值,目的是使以后改元素可用*/
  21.     $used[$i]--;
  22.             }
  23.     }
  24.     ?>

使用部分:

  1.        <?php
  2.        $n = $_POST['n'] ;
  3.        $r = $_POST['r'] ;
  4.        if($n>=$r){
  5.            $used = array();
  6.            $p=array();
  7.            for($i=1;$i<=$n;$i++){
  8.                $used[$i]=0;
  9.            }
  10.         permute(0);
  11.     }
  12. 12
  13.     ?>

组登算法:

  1.        <?php
  2.            function luck($start,$loop,$footnote,$choice){
  3.                global $arr;
  4.                for($i=$start;$i<=$loop;$i++){
  5.                    $arr[$footnote]=$i;
  6.                    if (count($arr)==$choice){
  7.                        print_r($arr);
  8.                        array_pop($arr);
  9.                        echo "<br />";
  10.                     continue;
  11.                 }
  12.                 luck($i+1,$loop+1,$footnote+1,$choice);
  13.             }
  14.         }
  15.         $arr=array();
  16.         $start=1;
  17.         $end=7;
  18.         $choice=3;
  19.         $loop=$end-$choice+1;
  20.         $footnote=0;
  21.         luck($start,$loop,$footnote,$choice);
  22.     ?>
打印 打印 | 关闭 关闭 评论
相关文章
图片新闻
站内搜索  
搜索
猜您喜欢  
最新更新  
阅读排行  
关于我们 | 联系方式 | 大事记 | 免责声明 | | 给我留言
部分广告源自金山联盟2345联盟 QQ咨询 站长之家QQ群:232617873
Copyright 2022 远方教程 © All Rights Reserved.

回顶部