加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

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

发布时间:2020-12-13 17:54:47 所属栏目:PHP教程 来源:网络整理
导读:假设我想要找到所有5个单位数,非重复数的集合,最多可加30个…我最终会得到[9,8,7,5,1],[9,7],4,2],6,3],3]和[8,4].这些集合中的每一个都包含5个非重复数字,最多可加30,即给定的总和. 任何帮助将不胜感激.即使只是我使用的起点也会很棒. 我想出了一个方法,这
假设我想要找到所有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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读