[python]算数・数学⑤~集合と順列と確率~
前回まで
改めて
機械学習を始めるにも、算数や数学がわからないと、入門書すら読めない。ただそこまで、ちゃんと解説してあるものもない。ということで最低限必要な数学基礎をこの記事で書けたらいいなと思っています。
環境
ほぼ影響ないですが、python3系を利用。
前提
四則演算や累乗(2乗とか3乗とか)がわかっていること。
集合
集合とは以下のようなものを言います。一つ一つは要素と言います。
{1,3,5,7,9}
10以下の奇数を要素として集合を記述するときに
{1,3,5,7,9}
という書き方と
{x|xは10以下の奇数の自然数}
という書き方ができます。
要素xが集合Aに属してることを$x\in{A}$と記述します。$1\in{A}$ですし$2\in{A}$ですね。
なお
A = {1,2,3,4,5,6,7,8,9,10}つまり{x|xは10以下の自然数}
B = {1,3,5,7,9}
とあったときに、BはAの部分的な集合(部分集合)と言えるので、$B\subset{A}$もしくは$A\supset{B}$ とすることができます。
pythonでかいてみます。
a = {1,2,3,4,5,6,7,8,9,10}
b = {1,3,5,7,9}
#ちなみにset型となっています。
type(a) #->set
b <= a #->True
集合の要素を変えてみます
a = {1,2,3,4,5,6}
b = {5,6,7,8,9,10}
a|b#和集合:合体させて重複無くしたもの
->{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
a&b#積集合:重複しているもの
->{5,6}
a-b#差集合:aにあってbにないもの
->{1, 2, 3, 4}
b-a#差集合:bにあってaにないもの
->{7, 8, 9, 10}
a^b#対象差:aもしくはbにしかないもの
->{1, 2, 3, 4,7, 8, 9, 10}
#集合に要素を追加:add()
#集合から要素を削除: discard(), remove(), pop(), clear()
順列
懐かしきこういうやつ。
${}_n P_r = n\times(n-1)\times(n-2)\times(n-3)\times・・・\times(n-r+1)$
7個から3桁を作る場合は
${}_{7} P_3 = 7\times(7-1)\times(7-2)=7\times6\times5=210$
となる。
import itertools
num = {1,2,3,4,5,6,7}
a = set(itertools.permutations(num,3))
len(a) # -> 210
階乗
7個から7桁を作る場合は
${}_{7} P_7 = 7!= 7\times6\times5\times6・・・\times1=5040$
b = set(itertools.permutations(num,7))
len(b) #->5040
import math
math.factorial(7)#->5040
重複順列(一度選んだものを再度選べる場合)
${}_n \Pi_r = n^r$
7つの数字を1つずつ選んで戻して3桁を作る場合
${}_7 \Pi_3 = 7^3$
#7個の数字から1つずつ3回選ぶ
num = {1,2,3,4,5,6,7}
a = set(itertools.product(num,num,num))
len(a)
# -> 343
組み合わせ(Combination)
順番を考慮しないものです。
つまり(1,2,3)と(3,2,1)を同じものとみなします。
${}_nC_r=\frac{nPr}{r!}$
例えば5つの数字から3つの組み合わせを作る
${}_5 C_3 = \frac{5\times{4}\times{3}}{3\times{2}\times{1}}$
num = {1,2,3,4,5}
p = len(set(itertools.permutations(num,3)))
f = math.factorial(3)#階乗
com = p/f
com #-> 10.0
もっと簡単に以下のメソッドで出来る
c = set(itertools.combinations(num,3))
len(c)
ここまで
ここまで。確率については結構雑な感じになっていますが、違う投稿で、尤度の説明でもう少し具体的にしていきます。
次回は微分について投稿していきます。
Author And Source
この問題について([python]算数・数学⑤~集合と順列と確率~), 我々は、より多くの情報をここで見つけました https://qiita.com/hiroyuki_mrp/items/cc5668cda464624f2d6e著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .