我需要準備一個簡單的腳本來生成一組元素中存儲在變量中的一組元素(可n參數化)中的一組元素的可能排列,最簡單的解決方案是想到的是根據所選組的長度使用幾個循環。但我認爲,這將是更優雅服用echo命令來產生組合的能力優勢,那就是用echo生成元素的組合
echo {1,2}{1,2}
11 12 21 22
所以使用這種方法,我想實現這樣做的一般方法,如使用輸入參數的元素列表(例如{1,2})和元素的數量。它會是這樣的:
set={1,2,3,4}
group=3
for ((i=0; i<$group; i++));
do
repetition=$set$repetition
done
因此,在這種特殊情況下,在循環結束時,重複變量的值爲{1,2,3,4} {1,2,3,4} {1,2,3,4}。但是我無法找到使用這個變量來使用echo命令產生組合的方法。我已經嘗試了幾件事情,例如:
echo $repetition
echo $(echo $repetition)
我被困住了,我會很感激任何提示或幫助。
對於你的任務,元素的順序似乎很重要。因此,您正在尋找一種算法來枚舉輸入的所有*排列*。實際上尋找產生*組合的算法的人將被這個問題誤導。 – josch 2017-09-01 10:46:49
謝謝Josch,你是對的,我已經根據你的建議cha動了這個問題,使之更加清晰。 – Toni 2017-09-07 08:07:22