2014-01-09 24 views
1

任何人都可以使用KornShell(ksh)獲取代碼來生成k個對象與n個對象的組合的數量是n C k?例如,一次取k = 2的{1,2,3,4}的組合是{1,2},{1,3},{1,4},{2,3},{2 ,4},{3,4},總共6 =4/ [(2)(4-2)sub]個子集。KornShell生成k個對象與n個對象組合的數量

+1

爲什麼選擇ksh? Unix shell對這些計算不太好。 – Ned

+0

它是組合的數量(所以是統計評估)還是所有您想要的生成組合? – NeronLeVelu

+2

這個問題中符號代表什麼? – javaPlease42

回答

1

@Ned諾沃特尼是正確的,SH是不是在做這個

認爲合適的地方,這裏的遞歸形式:

> function cr { integer n=$1 k=$2; if ((k==1)); then print $n; elif ((k==n)); then print 1; else print $(($(cr $((n-1)) $((k-1))) + $(($(cr $((n-1)) $k))))); fi; } 
> cr 4 2 
6 
> 

和這裏的快階乘形式:

> function fact { integer x=$1 f=1; while ((x>0)) do : $((f*=x--)); done; print $f; } 
> function cf { integer n=$1 k=$2; print $(($(fact $n)/($(fact $k)*$(fact $(($n-$k)))))); } 
> cf 4 2 
6 
> 
+0

我想你的意思是'$(CR ...)'而不是'$(c ...)'在遞歸形式? – tripleee

+0

但是,哦。固定 –

相關問題