Mathematica 如何生成这类列表?

如何生成这类列表?即分别取出n个元素表中后面的n-1个元素、后面的n-2个元素...后面的n个元素,组成一个新的2层表。主要不明白Take函数对子表的处理方法。例如:输入... 如何生成这类列表?
即分别取出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}}

谢谢!
展开
 我来答
青衣瓦屋
2013-09-24 · TA获得超过273个赞
知道小有建树答主
回答量:158
采纳率:100%
帮助的人:134万
展开全部
s2=Table[#[[-i ;;]], {i, Length@# - 1, 1, -1}] &@s1
这是最容易想到的,不过恐怕也是速度最慢的。稍好一些的可以写:
NestList[Rest, Rest@#, Length@# - 2] &@s1
最快的办法是什么我也不知道,我去贴吧帮你问问吧。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式