【发布时间】:2019-05-01 18:07:24
【问题描述】:
我正在尝试设计一种算法,该算法采用电阻值并输出最小数量的电阻器以及与这些电阻器相关的值。我希望算法迭代一组电阻值,并且该组中的值最多可以使用 n 次。我想知道从哪里开始。
系列:Req = R1 + R2 +...
并行:(1/Req) = (1/R1) + (1/R2) +...
输入:
100000 (100k)
设置: {30k, 50k, 80k, 200k}
输出:
2个电阻串联:50k + 50k
2 个电阻并联:200k || 200k
【问题讨论】:
-
这看起来像是一个组合优化问题。有整本教科书,实际上并不是可以在单个 StackOverflow 答案中解释的东西。在我看来,它有点像 Backpack Problem 的变体,但由于并行交替而变得更加困难。
-
FWIW,这似乎是Dynamic Programming 的工作,如果您能弄清楚如何将其分解为子问题。这是一种相当先进的技术。
-
我想知道你是否可以建立一个“虚拟电阻”的概念来模拟并联情况(同时记录消耗的电阻数量和哪些),然后将问题减少到串联情况。
-
...不超过
n次...这也是输入吗? -
我已根据 algorithm 标签投票重新开放。 OP 掌握了一个简单的案例,但可能会被搜索空间的组合爆炸所淹没。之前的 cmet 是很好的线索。