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

按分辨率递增迭代列表的算法名称是什么?Python是否有对应实现?

问题解答

1. 算法标准名称

你描述的这种逐层选取区间中点、采样分辨率逐轮提升的迭代规则,最通用的标准名称是 逐次中点采样(Successive Midpoint Sampling),属于多分辨率分层采样的线性场景实现。部分数字信号处理、几何建模场景也会称其为「二分渐进采样序列」,核心逻辑和低差异序列中的范德科鲁普序列(Van der Corput Sequence)高度同源,只是你这里固定优先选取两端端点作为初始采样点。

2. Python实现说明

Python 标准库没有直接封装该遍历逻辑的现成函数,不过实现逻辑非常简单,你可以参考以下代码实现:

def progressive_midpoint_sample(lst):
    if not lst:
        return []
    n = len(lst)
    res = []
    # 第0轮先加两端元素索引
    res.append(0)
    if n > 1:
        res.append(n-1)
    # 待处理的区间队列,存储(左边界索引, 右边界索引)
    intervals = [(0, n-1)]
    while intervals:
        next_intervals = []
        for l, r in intervals:
            mid = (l + r) // 2
            if mid not in res:
                res.append(mid)
                next_intervals.append((l, mid))
                next_intervals.append((mid, r))
        intervals = next_intervals
    # 按索引提取原列表元素
    return [lst[i] for i in res]

# 测试用例
test_list = [1,2,3,4,5,6,7,8,9]
print(progressive_midpoint_sample(test_list))
# 输出:[1, 9, 5, 3, 7, 2, 4, 6, 8],和你给出的示例完全一致

如果需要处理超长序列,可以用位运算优化索引生成逻辑,去掉mid not in res的判断来提升性能。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 09:24:03