[问题] 排列颠倒

楼主: yuyu0930 (葡萄籽)   2015-03-26 21:23:22
各位大大,小妹刚接触mathematica,非常非常菜,想请教一个问题
如果想将数列里的数字顺序排列颠倒,除了使用reverse
例如:
Reverse[{a,,b,3,4,5,c ,d }]=>{d,c,5,4,3,b,a}
还能用什么其他的数学运算使数列颠倒
拜托各位大大超赐交
作者: chungyuandye (养花种鱼数月亮赏星星)   2015-03-26 23:09:00
yourlist[[Range[Length[yourlist], 1, -1]]]
楼主: yuyu0930 (葡萄籽)   2015-03-28 11:31:00
太感谢了~~
作者: biglion ( )   2015-03-28 14:37:00
纯粹玩玩 Flatten[Fold[{#2, #1} &, yourlist]]f/@yourlist//.{f[x_],t___,y___Integer}->{t,x,y}想要更复杂的方法一定找得到 不过效率都没有Reverse高抱歉 我忽略了串行元素未必为整数 前面规则式方法应改为:f/@list//.{f[x_],t___,y___?(FreeQ[#,f]&)}->{t,x,y}规则式中的f可改成任意未定义的函数 但不能出现于串行中
作者: LPH66 (-6.2598534e+18f)   2015-03-28 21:34:00
是说新版的 MMA 也有类似 Matlab 的 span 语法本题的倒转可以用 list[[-1;;1;;-1]] 达成这里 a;;b;;c 是由 a 到 b 每次跳 c 这样的意思a, b 是负数时表示倒数
楼主: yuyu0930 (葡萄籽)   2015-03-30 06:55:00
谢谢各位~

Links booklink

Contact Us: admin [ a t ] ucptt.com