当实践编码问题,我就遇到了这个挑战性的问题:挑战算法模块化倍数
说我有7变量方程,(A + B + C + C + d + B)(E + F + B + C)(G + F + F),以及一个高达3500个号码的巨大列表:
A 1,2,3; B 1,2; C 9,1; D 1; E 2; F 1; G 1
该列表基本上给出了每个变量可能具有的所有可能的值。问题是,我可以选择多少种方法来选择变量的值,以使结果数为7的倍数?
例如,我可以从上面的列表中选择 A = 1,B = 1,C = 1,D = 1,E = 2,F = 1,G = 1。这会使数字(1 + 2 + 1 + 1 + 1 + 1)(2 + 1 + 1 + 1)(1 + 1 + 1)= 35,这确实是7的倍数。
我的解决方案是测试七个变量的每种可能的组合,并检查这个总和是否是七的倍数。但是,这个解决方案显然非常缓慢。有没有人有这个问题更有效的解决方案?
任何人?到目前为止唯一的答案是太慢。 – 2015-04-05 16:41:36