微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在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.jb51.cc/php/133946.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐