#目次
- 経緯
- Σとは
- やりたいこと
- Pythonで動作確認
- 例題を軽く
- [番外編~what if~](http://qiita.com/weedslayer/items/25c38c928ad59ba61071#番外編 ~what if~)
##経緯
- 授業でΣ(シグマ)に出くわす
- 久しぶりだしPython使って簡単に表現できないか思いつく
- 軽くググッて見る
- [使えそうなリソース]を発見
- ちょっとだけ試してみる
##Σとは
一言で言うとsum
とか(主に)数列の和と表現したりする。
*画像転載元: Learn Sigma Notation Online
詳しい使い方は以下参照:
Σの意味ってなんでしたっけ?
【数列9】シグマ1 シグマとは?シグマの意味、計算を説明 【高2数学・数B】
数列の和~シグマΣの定義と計算方法:ビジュアル数学(数学B:数列
をどうにかしてpythonで動かしてみる。
##Pythonで動作確認
以下が元のコード
sigma.py
def f(x):
return 2*x + 1
def g(x):
return (x-1) * (x-3)
def sigma(func, frm, to:
result = 0;
for i in range(frm, to+1):
result += func(i)
return result
sigma(f, 2, 4) #21
sigma(g, 1, 3) #-1
細かい流れはここ参照。
これをPython3.xでも使えるように
sigma2.py
def f(x):
return
def sigma(func, frm, to):
result = 0;
for i in range(frm, to+1):
result += func(i)
print(result)
sigma(f, 1, 10) #21
##例題を軽く
例題:以下の式の和を求めよ。
これを
と
に分ける。
まずは#2の答えを出す関数を作る
def f(n):
return 3 * n - 2
そして#1の答えを出す関数
def sigma(func, frm, to):
result = 0; #答えの受け皿
for i in range(frm, to+1):
result += func(i)
#ここで関数を呼び出す。ちなみにここではi = x
print(result)
完成形はこんな感じ
ef f(n):
return 3 * n - 2
def sigma(func, frm, to):
result = 0; #答えの受け皿
for i in range(frm, to+1):
result += func(i)
#ここで関数を呼び出す。ちなみにここではi = x
print(result)
sigma(f, 1, 4) #22
##番外編~what if~
f(x)
の式を作る必要がない式に出くわした場合、
-
sigma
関数の引数func
を消す -
result += func(i)
からresult += i
に - これで正常に動く。。はず
def sigma2(frm, to):
result = 0;
for i in range(frm, to+1):
result += i
print(result)
sigma2(1,10) #55