如何编写partition_pts函数将区间[a,b]拆分为n个等距子区间
partition_pts 函数实现修正方案
原代码问题分析
- 步长参数设置错误:将
range的步长设置为n+1,完全不符合等距分割的步长逻辑,导致生成的点间隔错误 - 区间闭合逻辑错误:
range本身为左闭右开区间,原代码将结束值设置为b*n,永远无法取到右端点b对应的数值 - 兼容性差:原实现依赖
a、b为整数的前提,若传入浮点型端点会直接报错,适用场景受限
正确实现逻辑
n个等距子区间对应n+1个端点,每个端点的计算公式为:a + k * (b-a)/n,其中k的取值范围是0 ≤ k ≤ n
修正后代码
def partition_pts(a,b,n): step = (b - a) / n return [a + k * step for k in range(n + 1)]
结果验证
调用partition_pts(-1, 2, 6),返回结果为[-1.0, -0.5, 0.0, 0.5, 1.0, 1.5, 2.0],完全符合预期。
内容的提问来源于stack exchange,提问作者Averyf00350
相关产品推荐
相关产品推荐

