如何在PHP中找到所有N个单位数,非重复数字组合的总和?

前端之家收集整理的这篇文章主要介绍了如何在PHP中找到所有N个单位数,非重复数字组合的总和?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
假设我想要找到所有5个单位数,非重复数的集合,最多可加30个…我最终会得到[9,8,7,5,1],[9,7],4,2],6,3],3]和[8,4].这些集合中的每一个都包含5个非重复数字,最多可加30,即给定的总和.

任何帮助将不胜感激.即使只是我使用的起点也会很棒.

我想出了一个方法,这似乎是一个很长的路要走:得到所有唯一的5位数字(12345,12346,12347等),加上数字,看看它是否等于给定的总和(例如30).如果是,请将其添加到可能的匹配集列表中.

我这样做是为了个人项目,这将帮助我解决Kakuro难题,而不是立即解决整个问题.是的,它可能是作弊,但是……它不是那么糟糕……:P

一种天真的方法是将变量从12345增加到98765并仅在它具有唯一数字并且数字总和为30时才选择它:
for($i=12345;$i<98765;$i++) {
    $arr = preg_split('//',strval($i));
    if(count(array_unique($arr)) == count($arr) && array_sum($arr) == 30)
        echo $i."\n";
}

Working example

原文链接:https://www.f2er.com/php/133946.html

猜你在找的PHP相关文章