gpt4 book ai didi

php - 我如何在 PHP 中找到所有加起来等于给定总和的 N 个单位数、非重复数字集?

转载 作者:可可西里 更新时间:2023-11-01 12:56:16 27 4
gpt4 key购买 nike

假设我想找到所有 5 个单位数、非重复数字加起来等于 30 的集合...我最终会得到 [9,8,7,5,1], [9, 8,7,4,2], [9,8,6,4,3], [9,8,6,5,2], [9,7,6,5,3] 和 [8,7 ,6,5,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

关于php - 我如何在 PHP 中找到所有加起来等于给定总和的 N 个单位数、非重复数字集?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2762319/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com