zoukankan      html  css  js  c++  java
  • 排列组合算法(PHP)

    用php实现的排列组合算法。使用递归算法,效率低,胜在简单易懂。可对付元素不多的情况。

    //从$input数组中取$m个数的组合算法
    function comb($input, $m)
    {
        if($m==1)
        {
            foreach($input as $item)
            {
                $result[]=array($item);
            }
            return $result;
        }
        for($i=0;$i<=count($input)-$m;$i++)
        {
            $nextinput=array_slice($input,$i+1);
            $nextresult=comb($nextinput,$m-1);
            foreach($nextresult as $one)
            {
                $result[]=array_merge(array($input[$i]),$one);
            }
        }
        return $result;
    }
    
    //从$input数组中取$m个数的排列算法
    function perm($input,$m)
    {
        if($m==1)
        {
            foreach($input as $item)
            {
                $result[]=array($item);
            }
            return $result;
        }
        for($i=0;$i<count($input);$i++)
        {
            $nextinput=array_merge(array_slice($input,0,$i),array_slice($input,$i+1));
            $nextresult=perm($nextinput,$m-1);
            foreach($nextresult as $one)
            {
                $result[]=array_merge(array($input[$i]),$one);
            }
        }
        return $result;
    }
    
    $input=array(1,2,3,4,5);
    print_r(comb($input,3));
    print_r(perm($input,3));

      

  • 相关阅读:
    MFC单文档中进行plc点云显示
    modbus发送和接收
    测试左移和测试右移
    2021软件测试笔试题
    202106月份总结测试开发面试题
    KuaiShou面试题
    阿拉伯数学手写体。
    GeminiScrollbar
    vue-core-video-player
    webpack
  • 原文地址:https://www.cnblogs.com/amonw/p/5602095.html
Copyright © 2011-2022 走看看