【发布时间】:2014-02-28 16:27:07
【问题描述】:
我有个问题想不通,希望有人能提供帮助。我认为它可能必须通过递归和/或排列来解决,但我不是一个足够好的(PHP)程序员。
$map[] = array("0", "1", "2", "3");
$map[] = array("4", "5", "6", "7");
$map[] = array("8", "9", "10", "11");
$map[] = array("12", "13", "14", "15");
$map[] = array("16", "17", "18", "19");
$map[] = array("20", "21", "22", "23");
$map 数组的最大长度限制为“6”。
我正在寻找一种方法来进行所有可能的组合。以下是一些有效的组合:
示例 1:
$map[] = array("0", "1", "2", "3", "4", "5", "6", "7");
$map[] = array("8", "9", "10", "11");
$map[] = array("12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", );
$map[] = array("23");
示例 2:
$map[] = array("0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23");
示例 3:
$map[] = array("0", "1");
$map[] = array("2", "3", "4", "5", "6", "7", "8");
$map[] = array("9", "10", "11");
$map[] = array("12");
$map[] = array("13", "14", "15", "16", "17", "18", "19", "20");
$map[] = array("21", "22", "23");
每个映射数组中的值必须按升序排列,例如此示例无效:
$map[] = array("0", "1", "4");
$map[] = array("3", "5");
etc...
希望可以做到。
【问题讨论】:
-
当你说,地图数组被限制为六个,那么你所有的有效示例都超过六个......
-
@omar-ali 例子是$map的第二维。
-
@omar-ali 他的意思是
$map中只有6个索引(注意$map是一个数组) -
您能补充一下您的最终目标是什么吗?也许您的处理方法不正确,您实际上想做什么?
-
我正在尝试找到最佳组。值(0、1、2、3 等)指的是时间范围内的“分数”(0 = 00:00 - 01:00、1 = 01:00 - 02:00 等)。我只能将这些分数分组和“总和”到 6 个“块”时间。我正在尝试找到一种方法,使组或“块”产生尽可能好的总和。
标签: php arrays recursion permutation