目标:总奖金 B 分配给 N 人,最小化 N 人的奖金个税之和。
每人独立选择「单独计税」或「并入综合所得」。函数 fi(x) = min(单独税(x), 并入增量税(x)) 为分段线性函数,每段内边际税率恒定。
算法策略(按人数选择):
| 人数 N | 算法 | 最优性 |
| N = 1 | 直接计算两种方式取优 | ✅ 确定最优 |
| N = 2 | 网格搜索,步长 100 元,遍历所有 b₁ ∈ [0, B] | ✅ 确定最优(误差 ≤100 元) |
| N = 3 | 两步法:①粗扫(步长 max(500, B/200))找最优区域;②精扫(步长 100 元)在粗扫最优解 ±粗步长 范围内穷举 | ✅ 确定最优(误差 ≤100 元) |
| N ≥ 4 | 贪婪分配(步长 100 元,每步给边际税率最低的人)+ 20 轮局部微调(邻位转移) | ⚠ 逼近最优,存在 marginal gap |
原理:分段线性函数在每段内斜率恒定。N=2/3 时穷举所有分配点确保全局最优;精扫消除粗扫的步长误差至 100 元。N≥4 时穷举组合爆炸((B/步长)^(N-1) 量级),改用贪心+局部搜索。
验证方法:可尝试对 N=2 场景手动枚举几个分界点(如 36,000、144,000 等税率节点),与结果对照。