如何用Python For循环计算指定递推规则的xN1i、xN2i序列
Python 循环实现递推计算方案
核心规则提炼
你给出的递推公式中,(xSpanN1/2)+(xSpanN2/2)是固定常量,可以提前计算为步长step,避免循环中重复计算:step = (xSpanN1 + xSpanN2) / 2
方案1:仅获取第N次迭代的最终结果
适合不需要历史数值、只需要最终迭代结果的场景,内存占用低:
# 基础参数定义 xSpanN1 = 0.232e-6 xSpanN2 = 0.09688e-6 N = 3 # 可自行修改为需要的迭代次数 step = (xSpanN1 + xSpanN2) / 2 # 初始化第0次的数值 xN1, xN2 = 0.0, step # 循环迭代N次 for _ in range(N): xN1 = xN2 + step xN2 = xN1 + step print(f"迭代{N}次结果:xN1i{N} = {xN1}, xN2i{N} = {xN2}")
方案2:保存所有迭代次数的历史结果
如果需要留存从第0次到第N次的所有计算结果,用列表存储即可:
xSpanN1 = 0.232e-6 xSpanN2 = 0.09688e-6 N = 3 step = (xSpanN1 + xSpanN2) / 2 # 初始化存储列表,索引对应迭代次数 xN1_history = [0.0] xN2_history = [step + xN1_history[0]] for _ in range(N): next_xN1 = xN2_history[-1] + step next_xN2 = next_xN1 + step xN1_history.append(next_xN1) xN2_history.append(next_xN2) # 按需查看所有历史结果 for idx in range(len(xN1_history)): print(f"第{idx}次:xN1i{idx}={xN1_history[idx]}, xN2i{idx}={xN2_history[idx]}")
补充:直接公式计算(无需循环)
观察递推规律可以得到通用计算公式,迭代次数较大时效率更高:
- xN1iN =
2 * N * step - xN2iN =
(2 * N + 1) * step
内容的提问来源于stack exchange,提问作者Khalil Jouma
相关产品推荐
相关产品推荐

