普段生活している上ではなかなか出会う機会がなかったのですが、
最近よく目にするようになった、
- 『機械学習』
- 『統計学』
- 『メディアアート』
など様々な分野で、
『順列』や『組み合わせ』はたっぷり組み込まれているようで。
ということで、
『順列』や『組み合わせ』など複数の数字を取り扱う方法について、
まるっとまとめてみることにしてみました。
階乗とは わかりやすくまとめてみた
まずは『階乗(かいじょう)』。
順番がある並び方になります。
例えばA君、B君、C君の3人で、
ヨーイドンと走った時のパターンの数はというと、
- A-B-C
- A-C-B
- B-A-C
- B-C-A
- C-A-B
- C-B-A
ということで6通りになります。
こんなパターンの計算を表しているのが『階乗(かいじょう)』。
ビックリマークで表します。
$$ n! $$計算的には、
- nから始まって
- nを1ずつ減らしつつ
- それら全部を掛け算
すればOKです。
$$ n! = n \times (n – 1) \times (n – 2) \cdots 3 \times 2 \times 1 $$
例えば6人で走った時のパターンはというと、
$$ 6! = 6 \times 5 \times 4 \times 3 \times 2 \times 1 = 720$$ということで720通りになります。
『プログラム』を組むとこうなるかなと思います。(スマホの場合はResultを押してね)
See the Pen
factorial-test by aoki_monpro (@suica)
on CodePen.
順列(nPk)とは わかりやすくまとめてみた
ビックリマークの『階乗(かいじょう)』だと、
走った人数全員を計算することになります。
例えば、
- 10人で走ったうち、上位4人の順番のパターンは・・・
- 20人で走ったうち、上位15人の順番のパターンは・・・
という場合は『階乗』だと対応できないです。
そんな時に使えるのが『順列(じゅんれつ)』。
英語で『Permutation(パーミュテーション)』。
書き方はこう。
$$ {}_n \mathrm{ P }_k $$
nの方に全体の数を書いて(上の例だと10人や20人)
kの方に知りたい数を書いて表します。(上の例だと4人や15人)
計算的には 、
- nから始まって
- nを1ずつ減らしつつ
- kの数だけ掛け算
になります。
$$ {}_n \mathrm{ P }_k = n \times ( n – 1 ) \cdots ( n – k + 1 ) = \frac{ n! }{ ( n – k )! } $$
例えば9人で走って、上位4人の順番のパターンは、
$$ {}_{9} \mathrm{ P }_4= 9 \times 8 \times 7 \times 6 = 3024 $$
ということで、3024通りになります。
『プログラム』を組むとこうなるかなと思います。(スマホの場合はResultを押してね)
See the Pen
Permutation-test by aoki_monpro (@suica)
on CodePen.
組み合わせ(nCk)とは わかりやすくまとめてみた
順番をつける場合は『階乗(!)』か『順列($$ {}_n \mathrm{ P }_k $$)』でいいのですが、
順番をつけずに組み合わせる数を知りたい場合もあります。
例えばにぎり寿司が4種類あるとして、
その中から2個を選ぶ組み合わせを知りたいとしたら。
『組み合わせ』を使います。
英語で『Combination(コンビネーション)』。
書き方はこう。
$$ {}_n \mathrm{ C }_k $$
計算的には、2種類のかけ算を組み合わせて計算します。
$$ {}_n \mathrm{ C }_k = \frac{nから数を下げながらk個のかけ算}{1から数をあげながらk個のかけ算}$$
先ほどの4種類から2個を選ぶ場合はこうなります。
$$ {}_4 \mathrm{ C }_2 = \frac{4 \times 3 }{1 \times 2 } = \frac{12}{2} = 6$$
9種類から3個を選ぶ『組み合わせ』の数ならこうですね。
$$ {}_{9} \mathrm{ C }_3 = \frac{9 \times 8 \times 7 }{1 \times 2 \times 3 } = \frac{504}{6} = 84$$
『プログラム』を組むとこうなるかなと思います。(スマホの場合はResultを押してね)
See the Pen
Combination-test by aoki_monpro (@suica)
on CodePen.
順列や組み合わせなどを Pythonでやってみた
『統計学』や『機械学習』で大人気のプログラム言語『Python(パイソン)』を使うと、
『順列』『組み合わせ』『階乗』などをあっさりと計算・表示することができます。
いくつか方法がありますが、『Python』で『scipy』というライブラリを使った例です。
from scipy.special import factorial from scipy.special import perm from scipy.special import comb f = factorial(5) p = perm(3,2) c = comb(5,3) print(f) # 120.0 と表示 print(p) # 6.0 と表示 print(c) # 10.0 と表示
あっさりと答えが返ってきます。
『Python』を手軽に試せる方法はこちら
順列や組み合わせなどを わかりやすくまとめてみて
これまでの生活ではなかなか出番がなかったのですが、
いざやってみると計算自体はかけ算なので難しくはなく、
普段の生活でも取り入れていきたいなと思えるようになりました。
『数学・物理』関係ではこんな記事も読まれています。
1. 【P5.js】初心者向けの動画をリリースしました(プログラミング×数学物理)【Udemy】2. 【ベクトル】をわかりやすくするコツ〜『ベクトル』はただの数値の組み合わせです(4)【P5.js】
3. プログラムで数学も身につく 一石四鳥なクリエイティブコーディング
4. 【三角関数】の使い方〜わかりやすさ重視でまとめてみた【動画あり】
5. 【ラジアン】とは わかりやすくまとめてみた【初心者向け】
6. 【図解】波の用語や動きをプログラムも交えてまとめてみる【数学&物理】
7. 【微分】とは わかりやすくまとめてみた〜めっちゃすごいわり算【初心者向け】
8. 【シグマ(∑)】計算をわかりやすくまとめてみた【エクセルのsum】【初心者向け】
9. 【極座標 】とは【直交座標 】との違いや変換方法についてまとめてみた
10. 【虚数】【複素数】とは わかりやすくまとめてみた【初心者向け】
11. 【指数】とは わかりやすくまとめてみた【初心者向け】
12. 【対数】とは わかりやすくまとめてみた【初心者向け】
13. 順列・組み合わせ・階乗とは わかりやすくまとめてみた【数学】
14. 【確率(加法定理)】とは わかりやすくまとめてみた【初心者向け】
15. 【ベクトル場】と【速度ベクトル】とは わかりやすく【ドラクエのすべる床】
↓ ここから下は物理関連
1. プログラムで【加速度】をわかりやすくするために実際に動かしてみる(5)【P5.js】
2. 【流体力学】とは 圧力・密度・浮力をまとめてみた【初心者向け】
↓ ここから下はちょいムズカシイ
1. 【ネイピア数】とは わかりやすくまとめてみた【自然対数の底(e)】
2. 【ベクトル解析 勾配(grad)】わかりやすくまとめてみた
3. 【ベクトル解析 発散(div)】わかりやすくまとめてみた
4. 【テイラー展開】をわかりやすくまとめてみた【おすすめ動画あり】
『統計学』関係ではこんな記事も読まれています。
1. 【分散】【標準偏差】とは わかりやすくまとめてみた【ExcelとPython】2. 【正規分布】とは わかりやすくまとめてみた【ExcelとPython】
3. 【確率】当たりがでる確率を計算する方法【二項分布】【Excel/Python】
4. 順列・組み合わせ・階乗とは わかりやすくまとめてみた【数学】
5. 【確率(加法定理)】とは わかりやすくまとめてみた【※初心者向け】
6. 【条件付き確率】とは わかりやすくまとめてみた
アオキのツイッターアカウント。
この記事へのコメントはありません。