遇到一个算法问题,一直不得求解,恳请大神指点!
现有数据:
29,
'b' => 11,
'c' => 33,
'd' => 84,
'e' => 46,
'f' => 67,
'g' => 19,
'h' => 18,
'i' => 88,
'j' => 8,
'k' => 54,
'l' => 86,
'm' => 88,
'n' => 29,
'o' => 96,
'p' => 1,
'q' => 4,
'r' => 100,
's' => 89,
't' => 44,
'u' => 53,
'v' => 68,
'w' => 12,
'x' => 54,
'y' => 23,
'z' => 78,
);
?>
其中 $data 包含 100 组数据,每组数据由字母组成,数量和内容都是随机的。
其中 $times 是每个字母出现的次数。
现在需要从 $data 中取 20 组数据,使这 20 组数据排重过滤后组成的新数据中,所有字母出现次数总和最小(相比于其他的可能的组合)。
穷举法比较的路子走不通,因为从 100 组数据中取所有 20 组数据可能的组合,这个数据量太大。
请问,应该如何获取?
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
http://www.jianshu.com/p/dbd85d2792f4,这篇文章即答案