查找成千上万的词组,按词汇顺序求和成给定的数字

问题描述 投票:2回答:1

大量的数字可以用逗号格式化以更容易地分成三组阅读。例如。 1050 = 1,05010200 = 10,200

每三人一组的总和为:

[1050=1,050给出:1+50=51

[10200=10,200给出:10+200=210

我需要搜索三分之和的匹配项。即,如果我正在搜索1234,那么我正在寻找其三和= 1234的数字。

235,999起,最小的匹配为235+999=1234。没有其他小于235,999的整数给出的三分之和等于1234。

236,998以来的下一个最小匹配是236+998=1234。每次可以加999,但是在达到999后失败,因为由于999的溢出,数字加了1。

更一般而言,我要求的解决方案(从最小到最大)为:

a + b + c + d…= x

其中a,b,c,d…是介于0-999和x之间的任意整数是固定整数

注意,对于任何正整数x,对此都有无限的解决方案。

[如何从最小数目的解开始(对于y个解,其中y可以是任意大的数)来获得解?

有没有一种方法可以做到,而无需蛮力一一循环?我正在处理可能非常大的数字,这可能需要数年时间才能直通。理想情况下,应该做到这一点而不会失败。

大量的数字可以用逗号格式化以更容易地分成三组阅读。例如。 1050 = 1,050和10200 = 10,200。这三组中每组的总和为:1050 = 1,050给出:1 + 50 = 51 ...

math numbers partition
1个回答
2
投票

如果不考虑由3位数字组成的组,而一次只考虑1位数字,则更容易考虑这个问题。


0
投票

如果不考虑由3位数字组成的组,而一次只考虑1位数字,则更容易考虑这个问题。

© www.soinside.com 2019 - 2024. All rights reserved.