子序列的通用表示符号
子序列的通用表示符号,数学和计算机科学领域并没有一个全球统一、专属于子序列的单一符号(不像函数有专用的 f(x)f(x))。
在实际学术论文和算法教材中,最标准、最严谨的表示方法是以下两种:
1. 最严谨的数学表示(使用下标集合)
给定序列 f=⟨f1,f2,…,fn⟩f=⟨f1,f2,…,fn⟩,若取一个严格递增的下标集合 I={i1,i2,…,ik}I={i1,i2,…,ik}(其中 1≤i1<i2<⋯<ik≤n1≤i1<i2<⋯<ik≤n),则该子序列通常表示为:
⟨fi⟩i∈I或f∣I⟨fi⟩i∈I或f∣I
其中 f∣If∣I 表示将序列 ff 限制在指标集合 II 上。
2. 算法/编程领域的常见表示(切片/Slice)
在编程语言(如 Python、SQL)或算法伪代码中,常用切片(Slice)表示法。对于你提到的 ⟨f1,f2,…,fn−1⟩⟨f1,f2,…,fn−1⟩(即删除最后一个元素),一般写作:
f[1:n−1]f[1:n−1] 或 f[0:n−1]f[0:n−1](取决于下标从 0 还是 1 开始)。
或者直接称为 ff 的前缀(Prefix),记为 Pn−1Pn−1。
针对你举的例子 ⟨f1,f2,…,fn−1⟩⟨f1,f2,…,fn−1⟩:
这个特定的子序列属于删除最后一个元素,在数学文献中常见的写法有:
直接枚举:最稳妥的方式就是直接写 ⟨f1,f2,…,fn−1⟩⟨f1,f2,…,fn−1⟩ 本身(因为只删了一个元素,写出来不繁琐)。
限制表示法:f∣{1,2,…,n−1}f∣{1,2,…,n−1}。
删除符号(局部定义):有些论文为了简便,会在开头声明“记删除第 ii 个元素后的子序列为 f(−i)f(−i)”,那么你的例子就是 f(−n)f(−n)。但这不是通用符号,必须提前定义。
