作者:
protien (protien)
2014-07-12 00:03:34大家好,想跟各位請教一下一個排列組合的問題的寫法。
以下是最近想處理的一個問題:
有一組4維的陣列,每一個維度有 100 個 element
{{1,2,3,...100},{1,2,3,...100},{1,2,3,...100},{1,2,3,...100}}
現在想要在每一個維度中隨機抽樣並放進一個新的陣列 {w,x,y,z},例如:
{1,1,1,1}, {1,1,1,2},......{1,1,1,100}, or {2,1,1,100}
數字可以相同,現在想用mathematica 把所有的組合全部列出來。
個人有在help那邊找到一個指令可以做類似的事情 Tuples
例如:
In: Tuples[{{a, b}, {1, 2, 3, 4}, {x}}]
out:
{{a, 1, x}, {a, 2, x}, {a, 3, x}, {a, 4, x}, {b, 1, x}, {b, 2, x},
{b, 3, x}, {b, 4, x}}
但是由於我的問題利用這個方法需要的記憶體的量太大了,跑到一半軟體就罷工了 囧
所以想請教一下大家有甚麼方法或者另外的寫法可以解決這件事?
作者:
LPH66 (-6.2598534e+18f)
2014-07-12 16:44:00要看你 {w,x,y,z} 接下來要做什麼如果要對每個 {w,x,y,z} 做事的話, 不如直接 Do像是 Do[..., {w,{1,2,3,...,100}}, {x,{1,2,3,...,100}}]