[問題] 排列顛倒

看板Mathematica作者 (葡萄籽)時間9年前 (2015/03/26 21:23), 編輯推噓3(3010)
留言13則, 4人參與, 最新討論串1/1
各位大大,小妹剛接觸mathematica,非常非常菜,想請教一個問題 如果想將數列裡的數字順序排列顛倒,除了使用reverse 例如: Reverse[{a,,b,3,4,5,c ,d }]=>{d,c,5,4,3,b,a} 還能用什麼其他的數學運算使數列顛倒 拜託各位大大超賜交 -- Sent from my Android -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 42.67.38.63 ※ 文章網址: https://www.ptt.cc/bbs/Mathematica/M.1427376204.A.F80.html

03/26 23:09, , 1F
yourlist[[Range[Length[yourlist], 1, -1]]]
03/26 23:09, 1F

03/28 11:31, , 2F
太感謝了~~
03/28 11:31, 2F

03/28 14:37, , 3F
純粹玩玩 Flatten[Fold[{#2, #1} &, yourlist]]
03/28 14:37, 3F

03/28 14:39, , 4F
f/@yourlist//.{f[x_],t___,y___Integer}->{t,x,y}
03/28 14:39, 4F

03/28 14:41, , 5F
想要更複雜的方法一定找得到 不過效率都沒有Reverse高
03/28 14:41, 5F

03/28 14:45, , 6F
抱歉 我忽略了串列元素未必為整數 前面規則式方法應改為:
03/28 14:45, 6F

03/28 14:47, , 7F
f/@list//.{f[x_],t___,y___?(FreeQ[#,f]&)}->{t,x,y}
03/28 14:47, 7F

03/28 14:49, , 8F
規則式中的f可改成任意未定義的函數 但不能出現於串列中
03/28 14:49, 8F

03/28 21:34, , 9F
是說新版的 MMA 也有類似 Matlab 的 span 語法
03/28 21:34, 9F

03/28 21:35, , 10F
本題的倒轉可以用 list[[-1;;1;;-1]] 達成
03/28 21:35, 10F

03/28 21:35, , 11F
這裡 a;;b;;c 是由 a 到 b 每次跳 c 這樣的意思
03/28 21:35, 11F

03/28 21:36, , 12F
a, b 是負數時表示倒數
03/28 21:36, 12F

03/30 06:55, , 13F
謝謝各位~
03/30 06:55, 13F
文章代碼(AID): #1L50XC-0 (Mathematica)
文章代碼(AID): #1L50XC-0 (Mathematica)