phpphp 二维数组字段求和求和有什么用

http://www./q/15749/PHP求数组值相加(可重复)等于某值的所有组合 tieGump1 票 tieGump 8例如 $data = array(1,2,4);$n=10;的所有的组合有Array ( [0] =& 1,1,1,1,1,1,1,1,1,1 [1] =& 2,1,1,1,1,1,1,1,1 [4] =& 2,2,1,1,1,1,1,1 [5] =& 4,1,1,1,1,1,1 [14] =& 2,2,2,1,1,1,1 [15] =& 4,2,1,1,1,1 [45] =& 2,2,2,2,1,1 [46] =& 4,2,2,1,1 [54] =& 4,4,1,1 [141] =& 2,2,2,2,2 [142] =& 4,2,2,2 [150] =& 4,4,2 )这些,我实现了一个算法。但是当$n比较大的时候运算特别慢,用二进制key相交的方式也试了。都比较慢,求一种更好的方式。谢谢,下面是我用递归实现的一种方式。求指导。
function myAll($n, $arr) {
foreach ($arr as $v) {
$tmp = $n - $v;
if ($tmp & 0) {
foreach (myAll($tmp, $arr) as $v1) {
$tt = is_array($v1) ? array_merge(array (
), $v1) : array (
if (array_sum($tt) == $n) {
arsort($tt);
$return[] = $
if ($n == $v)
$return[] = array (
$data = array(1,2,4);$n=10;$tmp=myAll($n, $data);foreach($tmp as $value){
$t[]=implode($value,',');}$t2=array_unique($t);$ii=array_intersect_key($tmp,$t2);print_r($ii);
评论 (0) & 举报 (0) & 分享 & 链接 &  添加评论...1个答案 票 数
brayden认证专家1 票brayden6562最佳答案这个就是完全背包问题的一个变种. 即要求正好达到背包容量. 物品的价值即是其重量.
打开 背包九讲, 第一讲: /pack/P01.html
-- 引用"如果是第一种问法,要求恰好装满背包,那么在初始化时除了f[0]为0其它f[1..V]均设为-&,这样就可以保证最终得到的f[N]是一种恰好装满背包的最优解。
为什么呢?可以这样理解:初始化的f数组事实上就是在没有任何物品可以放入背包时的合法状态。如果要求背包恰好装满,那么此时只有容量为0的背包可能被价值为0的nothing&恰好装满&,其它容量的背包均没有合法的解,属于未定义的状态,它们的值就都应该是-&了。如果背包并非必须被装满,那么任何容量的背包都有一个合法解&什么都不装&,这个解的价值为0,所以初始时状态的值也就全部为0了。
这个小技巧完全可以推广到其它类型的背包问题,后面也就不再对进行状态转移之前的初始化进行讲解。"-- 引用结束
你的问题$data = array(1,2,4);$n=10, 即是背包容量为10. 物品v =[1,2,4], c=[1,2,4]的一个完全背包问题, 要求恰好装满背包.
阅读(...) 评论()php 二维数组以某一键名进行分组相加 - php数组 - PHP粉丝网
当前位置: &2017年7月 PHP大版内专家分月排行榜第三2017年6月 PHP大版内专家分月排行榜第三2017年5月 PHP大版内专家分月排行榜第三2016年10月 PHP大版内专家分月排行榜第三2016年9月 PHP大版内专家分月排行榜第三2015年10月 PHP大版内专家分月排行榜第三2014年12月 PHP大版内专家分月排行榜第三2014年9月 PHP大版内专家分月排行榜第三
2017年7月 PHP大版内专家分月排行榜第三2017年6月 PHP大版内专家分月排行榜第三2017年5月 PHP大版内专家分月排行榜第三2016年10月 PHP大版内专家分月排行榜第三2016年9月 PHP大版内专家分月排行榜第三2015年10月 PHP大版内专家分月排行榜第三2014年12月 PHP大版内专家分月排行榜第三2014年9月 PHP大版内专家分月排行榜第三
2013年5月 总版技术专家分月排行榜第一
2016年7月 总版技术专家分月排行榜第二2016年3月 总版技术专家分月排行榜第二2015年12月 总版技术专家分月排行榜第二2014年8月 总版技术专家分月排行榜第二2014年7月 总版技术专家分月排行榜第二2013年6月 总版技术专家分月排行榜第二
2017年1月 总版技术专家分月排行榜第三
2017年2月 PHP大版内专家分月排行榜第一2017年1月 PHP大版内专家分月排行榜第一
2017年1月 总版技术专家分月排行榜第三
2017年2月 PHP大版内专家分月排行榜第一2017年1月 PHP大版内专家分月排行榜第一
匿名用户不能发表回复!|
每天回帖即可获得10分可用分!小技巧:
你还可以输入10000个字符
(Ctrl+Enter)
请遵守CSDN,不得违反国家法律法规。
转载文章请注明出自“CSDN(www.csdn.net)”。如是商业用途请联系原作者。定义和用法
array_sum() 函数返回数组中所有值的总和。
如果所有值多是整数,则返回一个整数值。如果其中有一个或多个值是浮点数,则返回浮点数。
PHP 4.2.1 之前的版本修改了传入的数组本身,将其中的字符串值转换成数值(大多数情况下都转换成了零,根据具体制而定)。
array_sum(array)
必需。规定输入的数组。
转载请注明:文章转载自
本文标题:PHP array_sum() 函数 返回数组中所有值的总和
本文地址:
IT技术书籍推荐:
计算机科学丛书:Php和Mysql Web开发(原书第4版)
Luke Welling (作者), Laura Thomson (作者), 武欣 (译者)
《计算机科学丛书:Php和Mysql Web开发(原书第4版)》将PHP开发与MySQL应用相结合,分别对PHP和MySQL做了深入浅出的分析,不仅介绍PHP和MySQL的一般概念,而且对PHP和MySQL的Web应用做了较全面的阐述,并包括几个经典且实用的例子。《计算机科学丛书:Php和Mysql Web开发(原书第4版)》是第4版,经过了全面的更新、重写和扩展,包括PHP 5.3最新改进的特性(例如,更好的错误和异常处理),MySQL的存储过程和存储引擎,Ajax技术与Web 2.0以及Web应用需要注意的安全问题。
热门文章推荐:
热门关键词:
最新互联网资讯
互联网资讯php鑾峰彇鏁扮粍涓?浉鍔犲拰鏈

我要回帖

更多关于 php 数组字段求和 的文章

 

随机推荐