从一组电阻值中求最小电阻数的算法。(C++或Python)

2024-06-02 12:32:56 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图设计一个算法,它接受一个电阻值,输出最小的电阻数和与这些电阻相关的值。我希望算法迭代一组电阻值,并且该组中的值最多只能使用n次。我想知道从哪里开始。在

系列:Req=R1+R2+。。。在

并行:(1/Req)=(1/R1)+(1/R2)+。。。在

输入:

100000(10万)

设置:{30k,50k,80k,200k}

输出:

2个串联电阻器:50k+50k

2个并联电阻器:200k | | 200k


Tags: 算法reqr2电阻r1电阻器电阻值
1条回答
网友
1楼 · 发布于 2024-06-02 12:32:56

这其实很难,我能做的就是提出一个算法的想法来解决第一部分,包含并行的概念看起来也比较难,但也许算法可以扩展。在

把电阻设为最小的输出,定义为电阻的最小值。E、 G:如果你只有10K电阻,最好(50K)=5*10K

对于一组可用电阻器[a、B、C,…],此函数“best”具有以下属性:

  1. 最佳(A)=集合中任何A的A。

  2. 最佳(目标)=最小(最佳(目标A)+A),最佳(目标B)+B,…)

  3. 最佳(0)=0

  4. best(x)=无意义,如果x<;0(删除这些情况)

这可以用来简化问题的解决。(我可能建议您在执行操作时将变量存储在树下。在

下面举个例子来说明一下:


可用设置=[10K,100K]

目标=120K

第一次迭代:

最佳(120K)=最小[最佳(110K)+10K,最佳(20K)+100K]

计算每个子树:

最佳(110K)=最小[最佳(100K)+10K,最佳(10K)+100K]

现在,我们可以使用属性计算min(U)中的所有内容,因此请备份树: 最佳(110K)=100K+10K(我想如果有类似这种情况下的平局随机选择一个永久性)

最佳(最佳值)=120K(最佳值)=120K(最佳值)+10K。。。=100K+10K+10K

这应该可以作为问题前半部分的解决方案,您可以通过添加额外的属性来扩展它,但是用这种方法来简化解决问题会更加困难。在

也许最好的方法是解决问题的前半部分,并使用不同的算法,使用并行方法找到最佳解决方案,并确定在每种情况下哪一个是最小的。在

相关问题 更多 >