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

从离散非整数数组中寻找最优解:求a+b的最大值

离散非整数变量的范围限定与求解方案

当然可以将变量范围限定为离散的非整数数值,这类问题属于离散优化场景,针对你给出的案例,下面提供具体的解决思路和实现方式:

一、暴力枚举法(小规模场景适用)

因为你的变量可选值数量很少(A有3个选项,B有3个选项,共9种组合),直接遍历所有可能的配对计算和,就能快速找到最大值。

Python 代码实现

# 定义给定的离散数值数组
N = [[2.3, 4.5, 5.8], [6.4, 7.1, 4.1]]

max_c = -float('inf')
optimal_a = None
optimal_b = None

# 遍历所有A和B的组合
for a in N[0]:
    for b in N[1]:
        current_c = a + b
        # 更新最大值及对应变量
        if current_c > max_c:
            max_c = current_c
            optimal_a = a
            optimal_b = b

print(f"最优解:a={optimal_a}, b={optimal_b},c的最大值为{max_c}")

运行这段代码会输出:最优解:a=5.8, b=7.1,c的最大值为12.9(注:你提到的最优解a=4.5, b=7.1对应的和为11.6,并非最大值,可能是计算时的疏漏)

二、大规模场景的优化方案

如果变量的可选离散值数量较多,暴力枚举效率会下降,可采用以下思路:

  • 将离散非整数数值映射为整数索引(比如把N[0]的元素对应索引0、1、2,N[1]对应索引0、1、2),转化为整数优化问题,使用scipy.optimize等工具求解。
  • 针对求和最大化的简单场景,可直接分别找出两个数组中的最大值相加(仅适用于无额外约束的情况)。

三、约束更复杂的情况

如果问题存在额外约束(比如a和b的取值有联动限制),可以使用离散优化库(如ortools),通过定义变量的可选离散值集合来求解。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 06:45:34