Q29合成电阻的黄金分割比

E:/GitHub/suanfaquti/Q29合成电阻的黄金分割比.py
'''
问题描述
现有n个1Ω的电阻。组合这些电阻,使总电阻值接近黄金分割比1.6180339887…。
举个例子,当 n = 5 时,如果像图这样组合,则可以使电阻值为 1.6。
求n=10时最接近黄金分割的数值,请精确到小数点后 10 位。
分析
把所有可能的数值加起来
'''

def series_connection(*args):
    return sum(args)

def parallel_connection(*args):
    denominator = 0
    for i in args:
        denominator += 1 / i
    return 1 / denominator

calculatedList = [(),(1,)]
total_number = 10
goldenNum=1.6180339887

for i in range(2, total_number+1):
    new_values = set()
    for j in range(1,int(i/2)+1):
        possible_values1=calculatedList[j]
        possible_values2 = calculatedList[i-j]
        for v1 in possible_values1:
            for v2 in possible_values2:
                new_values.add(series_connection(v1, v2))
                new_values.add(parallel_connection(v1,v2))
    calculatedList.append(new_values)

res=list(calculatedList[-1])
res1=[abs(i-goldenNum) for i in res]
print(res[res1.index(min(res1))])               #1.6181818181818182
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值