作业帮 > 综合 > 作业

Mathematica 如何生成这类列表?

来源:学生作业帮 编辑:百度作业网作业帮 分类:综合作业 时间:2024/07/15 11:32:45
Mathematica 如何生成这类列表?
如何生成这类列表?
即分别取出n个元素表中后面的n-1个元素、后面的n-2个元素...后面的n个元素,组成一个新的2层表.主要不明白Take函数对子表的处理方法.
例如:
输入:
s1={1,2,3,4,5};
输出:
s2={{2,3,4,5},{3,4,5},{4,5},{5}}
Mathematica 如何生成这类列表?
s2=Table[#[[-i ;;]], {i, Length@# - 1, 1, -1}] &@s1
这是最容易想到的,不过恐怕也是速度最慢的.稍好一些的可以写:
NestList[Rest, Rest@#, Length@# - 2] &@s1
最快的办法是什么我也不知道,我去贴吧帮你问问吧.