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

如何按绝对值和的顺序无限迭代整数对并逐个获取?

实现方案

核心思路

  • 定义绝对值和 s = |x| + |y|,让s从0开始无限递增
  • 对每个s,枚举所有符合|x| + |y| = s的整数对,逐个返回
  • 用Python生成器实现惰性计算,天然支持无限迭代、逐个取值

代码实现

def generate_integer_pairs():
    s = 0
    while True:
        if s == 0:
            yield (0, 0)
            s += 1
            continue
        for x in range(-s, s + 1):
            y_abs = s - abs(x)
            if y_abs == 0:
                yield (x, 0)
            else:
                yield (x, y_abs)
                yield (x, -y_abs)
        s += 1

使用示例

# 初始化生成器
pair_gen = generate_integer_pairs()

# 逐个获取整数对,比如取前15个输出
for _ in range(15):
    print(next(pair_gen))

输出结果和需求示例逻辑一致,若需要匹配你给出的具体顺序,只要调整for循环内的yield顺序即可,同绝对值和的整数对顺序可任意定制。

方案优势

  • 支持无限迭代:只要不断调用next(pair_gen)就会持续返回下一个整数对,没有范围限制
  • 内存占用极低:惰性生成,不会一次性预计算所有整数对,运行时只保留当前计算的s状态
  • 可定制性强:如果需要调整相同绝对值和的整数对顺序,只要修改循环内的输出逻辑即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 23:24:03