编程与算法中的端点问题(linspace(a, b, n),endpoint)

  • 左闭右开,[0, n) ⇒ [0, n-1],共 n 个元素;

1. 列表长与编号

列表(seq,也可以是数组等线性结构)的长度要比末尾元素的编号多 1,比如一个列表内含有 5 个元素,最后一个元素的编号是 4,5 = 4+1

i = 0
while i < n:
    ... 

再者,想要获得末尾的元素:seq[n-1]。seq[n] 访问越界;

2. 常见算法的端点

  • 素数判断:

    sqrt_number = sqrt(number)
    for i in xrange(2, int(sqrt_number)+1):

3. linspace(a, b, n)

n 表示最后得到的序列的元素个数(包含端点),a、b 则是首尾的端点,则区间的长度为 b-a,又该区间内小间隔的数目为 n-1,则每一段小区间的长度为:

ban1

则最终得到的 n 个点分别是:a,a+(b-a)/(n-1),a+2(b-a)/(n-1),…,a+(b-a)/(n-1)*(n-1) = b;

也即:

{a+kban1}0kn1

np.linspace() ⇒ 默认是包含左右两个端点的,也即关键字参数 endpoint=True,如果将其 endpoint=False,便不再包含又端点。

np.linspace(0, 5, 10)                   (5-0)/(10-1) ⇒ 区间长度
np.linspace(0, 5, 10, endpoint)         (5-0)/10 ⇒ 区间长度

转载于:https://www.cnblogs.com/mtcnn/p/9424140.html

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值