You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何找出对应最小平均能耗成本的光伏电池容量?

解决方法

核心思路是把容量和对应的平均成本绑定存储,而非分开维护两个独立列表,这样就能直接通过最小成本定位到对应的容量。下面给出两种实用实现方式:

前提假设

先确认你已有可用的calculate_avg_cost(capacity)函数,这里提供一个模拟版本供参考:

import numpy as np

def calculate_single_cost(capacity):
    # 模拟单次能耗成本计算逻辑
    production = capacity + np.random.randn() * 10
    demand = np.random.randn() * 15
    cost = (demand - production) * 0.8 if production < demand else -(production - demand) * 0.3
    return max(cost, 0)

def calculate_avg_cost(capacity, runs=1000):
    return sum(calculate_single_cost(capacity) for _ in range(runs)) / runs

方法1:用元组配对存储(推荐)

遍历容量列表,将「平均成本」和「容量」打包成元组,通过min()函数指定以成本为判断依据找到最小元组,最后提取对应容量:

def find_optimal_capacity(capacities):
    # 生成(平均成本, 容量)的元组迭代器,节省内存
    cost_cap_pairs = ((calculate_avg_cost(cap), cap) for cap in capacities)
    # 取成本最小的元组的第二个元素,即为对应容量
    return min(cost_cap_pairs)[1]

如果需要保留所有容量的成本数据用于后续分析,也可以先存入列表:

def find_optimal_capacity(capacities):
    cost_cap_list = []
    for cap in capacities:
        avg_cost = calculate_avg_cost(cap)
        cost_cap_list.append((avg_cost, cap))
    min_pair = min(cost_cap_list)
    print(f"最小平均成本: {min_pair[0]:.2f},对应容量: {min_pair[1]}")
    return min_pair[1]

方法2:用字典映射

以容量为键、平均成本为值构建字典,通过min()函数基于字典值找到对应的键(即最优容量):

def find_optimal_capacity(capacities):
    cost_map = {cap: calculate_avg_cost(cap) for cap in capacities}
    # key参数指定按字典的值比较,返回值最小的键
    return min(cost_map, key=cost_map.get)

为什么不建议用单独的成本列表?

单独维护成本列表时,需要通过索引对应回容量,但一旦容量列表顺序变动、出现重复值,很容易出现匹配错误。绑定存储的方式更直观健壮,尤其适用于容量非连续整数的场景。

内容的提问来源于stack exchange,提问作者user23819712

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.27 10:02:54