
f[ntemp_Integer]:=Block[{n=ntemp,A=Range[ntemp^2],AA,BB},
(*產生切割點*)
AA=Insert[
A[[#[[1]]+1;;#[[2]]]]&/@Partition[Accumulate[Flatten@{Range[n],
Range[n-1,1,-1]}],2,1],{1},1];
(*產生臨時陣列*)
BB=If[#<=n,
Flatten@{AA[[#]],Table[0,{Range[n-Length@AA[[#]]]+1}]},
Flatten@{Table[0,{Range[n-Length@AA[[#]]]+1}],
AA[[#]]}]&/@Range[Length@AA];
(*輸出矩陣*)
BB[[#;;#+n-1,#]]&/@Range[n]//MatrixForm
]
m[n_]:=With[{b=FoldList[Plus,0,Join[Range[n-1],Range[n-1,1,-1]]]},
Table[Take[b,{i,i+n-1}]+i,{i,n}]]
f[10]
m[10]

讀者回應 ( 0 意見 )
訂閱發佈留言 (Atom)
發佈留言
Please leave your name and tell me what you thought about this site. Comments, suggestions and views are welcomed.
如果這篇文章對你有幫助,那請留個訊息給我~