【问题标题】:Challenging Algorithmic Modular Multiples具有挑战性的算法模倍数
【发布时间】:2015-04-04 22:36:55
【问题描述】:

在练习编码问题时,我遇到了这个具有挑战性的问题:

假设我有一个 7 变量方程,(A+B+C+C+D+B)(E+F+B+C)(G+F+F),以及多达 3500 个的巨大列表数字:

A 1、2、3;乙 1, 2; C 9, 1; 1; 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 的倍数。但是,该解决方案显然非常缓慢。有没有人对这个问题有更有效的解决方案?

【问题讨论】:

  • 有人吗?到目前为止,给出的唯一答案太慢了。

标签: numbers equation modular


【解决方案1】:

如果第一个数字是 7 的倍数,那么无论你用它乘以多少,它仍然是 7 的倍数

所以 (E+F+B+C)(G+F+F) 完全不相关。

如果 (E+F+B+C) 是 7 的倍数,那么和 (G+F+F) 也是 7 的倍数。

如果它们都不是 7 的倍数,那么我认为答案不可能是 7 的倍数。至少,我想不出会发生这种情况的情况。 例如,除了 7 或 14 个 10 秒之外,任何 10 秒都不会被 7 去除

【讨论】:

  • 谢谢!但是我将如何计算可能的答案总数?你能用伪代码或其他东西解释一下吗?非常感谢
  • 我将如何以有效的方式实现这一点?我能想到的唯一方法是再次循环遍历所有内容,这与我的解决方案基本相同。它太慢了。不过感谢您的帮助!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-10-12
  • 2014-07-08
  • 1970-01-01
  • 2013-03-30
  • 2015-12-28
  • 2016-02-06
  • 2020-06-05
相关资源
最近更新 更多