美文网首页
背包问题,使用回溯法

背包问题,使用回溯法

作者: lifefruity | 来源:发表于2021-02-01 21:41 被阅读0次
<?php 

//背包0-1问题=>3,4,6,8KG的物品,背包最大10KG,需要求出组合
//这么想,这个不管什么结果,肯定是全排列的前N个值就是了
function func($selected, $able){
    if(array_sum($selected) >= 10){
        echo implode('', $selected)."<br>";
        return;
    }
    
    for($i = 0; $i < count($able); $i++){
        //step 1. 可选解【放入】到已选集合中
        $let = $able[$i];
        if(in_array($let, $selected)){
            continue;
        }
        $selected[] = $let;

        //step 2. 进入下一个阶段
        func($selected, $able);
        
        //var_dump($selected);exit;
        //step 3.回溯
        array_pop($selected);
    }
    
}

func([], [3,4,6,8]);

相关文章

  • 背包问题,使用回溯法

  • 回溯法解决背包问题

    问题描述: 辰辰是个天资聪颖的孩子,他的梦想是成为世界上最伟大的医师。为此,他想拜附近最有威望的医师为师。医师为了...

  • 回溯法求0/1背包问题

    回溯法求0/1背包问题 给定n件物品和一个容量为c的背包,物品的重量为Wi,其价值为Vi,0/1背包问题是如何选择...

  • N皇后

    回溯法核心代码: n皇后问题回溯法

  • 0-1背包问题(回溯法)

    0-1背包问题 在0 / 1背包问题中,需对容量为c 的背包进行装载。从n 个物品中选取装入背包的物品,每件物品i...

  • 0-1背包问题(回溯法)

    0-1背包问题有n个重量分别为{w1,w2,…,wn}的物品,它们的价值分别为{v1,v2,…,vn},给定一个容...

  • 回溯法 0-1背包问题

    题目 给定n个重量为w1w1​,w2w2​,w3w3​,…,wnwn​,价值为v1v1​,v2v2​,v3v3​,...

  • 暴力穷举和回溯法(八皇后问题)

    以前每次遇到算法问题都是直接暴力求解,一直以为自己用的是暴力穷举法,现在学了回溯法,发现部分问题其实使用的是回溯法...

  • 回溯法之N皇后问题

    回溯法 有许多问题,当需要找出它的解集或者要求回答什么解是满足某些约束条件的最佳解时,往往要使用回溯法。 回溯法的...

  • 算法

    算法应用BFS广度优先搜索DFS深度优先搜索回溯法(DFS+剪枝)部分和问题分治法快速排序、归并排序动态规划背包问...

网友评论

      本文标题:背包问题,使用回溯法

      本文链接:https://www.haomeiwen.com/subject/thgstltx.html