How to find a combination like this

1 回表示 (過去 30 日間)
Nooh Hood Mohamed Almahfoodhi
Nooh Hood Mohamed Almahfoodhi 2019 年 2 月 24 日
コメント済み: Walter Roberson 2019 年 3 月 1 日
I am wondering is there a way where I could use a matrix in combinatorics such as
nchoosek(4,1:4) where it calcluates 4choose1, 4choose2,... 4choose4 ?
Is thie possible in Matlab?

採用された回答

Walter Roberson
Walter Roberson 2019 年 2 月 24 日
N = 4;
temp = factorial(0:N);
temp(end) ./ (temp .* fliplr(temp))
This would be 4C0, 4C1, 4C2, 4C3, 4C4, so you could index into the result to get the subset you need.
  2 件のコメント
Nooh Hood Mohamed Almahfoodhi
Nooh Hood Mohamed Almahfoodhi 2019 年 3 月 1 日
Thank you that worked.
Walter Roberson
Walter Roberson 2019 年 3 月 1 日
temp = cumprod([1 1:N]);
turns out to be faster than factorial(0:N)

サインインしてコメントする。

その他の回答 (1 件)

Jos (10584)
Jos (10584) 2019 年 3 月 1 日
Computationally less efficient, and mathematically less beautiful as Walters' snippet, but more matlab-ish in style:
N = 4 ;
C = arrayfun(@(k) nchoosek(N, k), 0:N)
or after same mathematical adjustments to N! / K!(N-K)!
C2 = arrayfun(@(k) prod(k+1:N)/prod(2:N-k), 0:N)

カテゴリ

Help Center および File ExchangeElementary Math についてさらに検索

タグ

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by