我试图设计一个算法,接收电阻值,输出最小电阻数和与这些电阻相关联的值。我希望该算法迭代一组电阻值,并且该集合中的值可以使用不超过n次。我想知道从哪里开始的方向。
系列: Req = R1 + R2 +.
平行:(1/Req) = (1/R1) + (1/R2) +.
输入:
100000 (100 K)
集: {30k,50k,80k,200 k}
输出:
2个串联电阻器: 50k + 50k
2个并联电阻器:200 k\x-200 k
发布于 2018-11-29 17:08:14
这其实是相当困难的,我能做的就是提出一个算法的想法来解决第一部分,包含并行的概念看起来也很难,但是也许这个算法可以扩展。
如果您定义了一个函数“最佳”,它以目标电阻作为输入,并输出产生该电阻的最小电阻集。如果你只有10K电阻,最好(50K)=5*10K。
此函数“最佳”对一组可用电阻器A,B,C,…
这可以用来简化地解决问题。(我可能会建议您在执行过程中将这些变量存储在树下。
这里有一个例子来说明一下:
AvailableSet = 10K,100 K
目标=120 K
第一次迭代:
最佳(120 K)=最小最佳(110 K)+10 K,最佳(20 K)+100 K
计算每个子树:
最佳(110 K)=最小(100 K)+10 K,最佳(10 K)+100 K
由于我们可以使用这些属性来计算min(_)中的所有内容,所以现在可以完成此操作:最好(110 K)=100 K+ 10K (我想如果在这种情况下有一个领带,那么随机选择一个折扣)
最佳(120 K)=最小(110 K)+ 10K,最佳(20K)+100 K=.=100 K+ 10K + 10K
这应该可以作为问题的前半部分的解决方案,您可以通过添加额外的属性来扩展这个问题,但是它将使以这种方式简化解决问题变得更加困难。
最好的方法可能是解决问题的前半部分,并使用不同的算法,使用并行方法找到最佳解,并决定在每种情况下哪一个是最小的。
https://stackoverflow.com/questions/53543066
复制相似问题