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

寻找圆心为(x,x)(x≤0)的网格最大圆形和最优圆心与半径

寻找圆心为(x,x)(x≤0)的最大和圆形区域

现有一个n×n整数网格置于无限网格中,需寻找圆心为(x,x)(x≤0)的圆形区域,使得区域内整数和最大。网格外区域对求和贡献为0,附n=10时不同圆心、半径的圆形示意图。

固定圆心时的最大半径求解代码

已知固定圆心时,可通过以下高效方法找到使和最大的半径:

from collections import Counter

g = [[-3, 2, 2],
     [ 2, 0, 3],
     [-1, -2, 0]]
n = 3

sum_dist = Counter()
for i in range(n):
    for j in range(n):
        dist = i**2 + j**2
        sum_dist[dist] += g[i][j]

sorted_dists = sorted(sum_dist.keys())
for i in range(1, len(sorted_dists)):
    sum_dist[sorted_dists[i]] += sum_dist[sorted_dists[i-1]]

print(sum_dist)
print(max(sum_dist, key=sum_dist.get))

但当圆心设为(x,x)且x≤0时,最大可能和会发生变化。请问如何找到使圆形内整数和最大的圆心与半径?

n=10对应的网格数据

示意图对应的网格数据如下:

[[ 3, -1,  1,  0, -1, -1, -3, -2, -2,  2],
 [ 0,  0,  3,  0,  0, -1,  2,  0, -2,  3],
 [ 2,  0,  3, -2,  3,  1,  2,  2,  1,  1],
 [-3,  0,  1,  0,  1,  2,  3,  1, -3, -1],
 [-3, -2,  1,  2,  1, -3, -2,  2, -2,  0],
 [-1, -3, -3,  1,  3, -2,  0,  2, -1,  1],
 [-2, -2, -1,  2, -2,  1, -1,  1,  3, -1],
 [ 1,  2, -1,  2,  0, -2, -1, -1,  2,  3],
 [-1, -2,  3, -1,  0,  0,  3, -3,  3, -2],
 [ 0, -3,  0, -1, -1,  0, -2, -3, -3, -1]]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 13:53:25