Submit Search
Upload
数列で学ぶ初めての CommonLisp #fibonacci
•
Download as ODP, PDF
•
0 likes
•
518 views
pgf2alpha
Follow
プログラマーズナイト #3 にて LT したもの(未完成版)の完成版
Read less
Read more
Report
Share
Report
Share
1 of 16
Download now
Recommended
pre: 数列で学ぶ初めての CommonLisp #fibonacci
pre: 数列で学ぶ初めての CommonLisp #fibonacci
pgf2alpha
会津合宿2015Day3:D問題
会津合宿2015Day3:D問題
HCPC: 北海道大学競技プログラミングサークル
04.第四章用Matlab求偏导数
04.第四章用Matlab求偏导数
Xin Zheng
Rの初歩: 6. グラフィックス
Rの初歩: 6. グラフィックス
Teiko Suzuki
ロマ数16 simizut
ロマ数16 simizut
Tatsuki SHIMIZU
OpenGLと行列
OpenGLと行列
miyosuda
kibayos beaker-070829
kibayos beaker-070829
Mikio Yoshida
【Unity道場スペシャル 2017博多】クォータニオン完全マスター
【Unity道場スペシャル 2017博多】クォータニオン完全マスター
Unity Technologies Japan K.K.
Recommended
pre: 数列で学ぶ初めての CommonLisp #fibonacci
pre: 数列で学ぶ初めての CommonLisp #fibonacci
pgf2alpha
会津合宿2015Day3:D問題
会津合宿2015Day3:D問題
HCPC: 北海道大学競技プログラミングサークル
04.第四章用Matlab求偏导数
04.第四章用Matlab求偏导数
Xin Zheng
Rの初歩: 6. グラフィックス
Rの初歩: 6. グラフィックス
Teiko Suzuki
ロマ数16 simizut
ロマ数16 simizut
Tatsuki SHIMIZU
OpenGLと行列
OpenGLと行列
miyosuda
kibayos beaker-070829
kibayos beaker-070829
Mikio Yoshida
【Unity道場スペシャル 2017博多】クォータニオン完全マスター
【Unity道場スペシャル 2017博多】クォータニオン完全マスター
Unity Technologies Japan K.K.
ggplot2再入門(2015年バージョン)
ggplot2再入門(2015年バージョン)
yutannihilation
ggplot2 110129
ggplot2 110129
Takashi Minoda
最適化の手前の数学
最適化の手前の数学
俊介 後藤
【Unity道場】ゲーム制作に使う数学を学習しよう
【Unity道場】ゲーム制作に使う数学を学習しよう
Unity Technologies Japan K.K.
CG2013 03
CG2013 03
shiozawa_h
私を SKI に連れてって
私を SKI に連れてって
Susisu
CG2013 07
CG2013 07
shiozawa_h
CG2013 02
CG2013 02
shiozawa_h
CG2013 05
CG2013 05
shiozawa_h
動的計画法を極める!
動的計画法を極める!
HCPC: 北海道大学競技プログラミングサークル
はんなりPython#42 20210629
はんなりPython#42 20210629
takey Takesue
Magnitude ~ extend the Euler Characteristics via Möbius Inversion ~
Magnitude ~ extend the Euler Characteristics via Möbius Inversion ~
Tatsuki SHIMIZU
Infinite SVM - ICML 2011 読み会
Infinite SVM - ICML 2011 読み会
Shuyo Nakatani
kagami_comput2016_07
kagami_comput2016_07
swkagami
アルゴリズムイントロダクション15章 動的計画法
アルゴリズムイントロダクション15章 動的計画法
nitoyon
CG2013 06
CG2013 06
shiozawa_h
CG2013 01
CG2013 01
shiozawa_h
kagami_comput2015_7
kagami_comput2015_7
swkagami
ディジタル信号処理 課題解説 その5
ディジタル信号処理 課題解説 その5
noname409
SICP
SICP
S W
7. sinif 5. üni̇te
7. sinif 5. üni̇te
Aslıhan Aksoy
framework.net -Jennifer Suarez
framework.net -Jennifer Suarez
GinsuaC
More Related Content
What's hot
ggplot2再入門(2015年バージョン)
ggplot2再入門(2015年バージョン)
yutannihilation
ggplot2 110129
ggplot2 110129
Takashi Minoda
最適化の手前の数学
最適化の手前の数学
俊介 後藤
【Unity道場】ゲーム制作に使う数学を学習しよう
【Unity道場】ゲーム制作に使う数学を学習しよう
Unity Technologies Japan K.K.
CG2013 03
CG2013 03
shiozawa_h
私を SKI に連れてって
私を SKI に連れてって
Susisu
CG2013 07
CG2013 07
shiozawa_h
CG2013 02
CG2013 02
shiozawa_h
CG2013 05
CG2013 05
shiozawa_h
動的計画法を極める!
動的計画法を極める!
HCPC: 北海道大学競技プログラミングサークル
はんなりPython#42 20210629
はんなりPython#42 20210629
takey Takesue
Magnitude ~ extend the Euler Characteristics via Möbius Inversion ~
Magnitude ~ extend the Euler Characteristics via Möbius Inversion ~
Tatsuki SHIMIZU
Infinite SVM - ICML 2011 読み会
Infinite SVM - ICML 2011 読み会
Shuyo Nakatani
kagami_comput2016_07
kagami_comput2016_07
swkagami
アルゴリズムイントロダクション15章 動的計画法
アルゴリズムイントロダクション15章 動的計画法
nitoyon
CG2013 06
CG2013 06
shiozawa_h
CG2013 01
CG2013 01
shiozawa_h
kagami_comput2015_7
kagami_comput2015_7
swkagami
ディジタル信号処理 課題解説 その5
ディジタル信号処理 課題解説 その5
noname409
SICP
SICP
S W
What's hot
(20)
ggplot2再入門(2015年バージョン)
ggplot2再入門(2015年バージョン)
ggplot2 110129
ggplot2 110129
最適化の手前の数学
最適化の手前の数学
【Unity道場】ゲーム制作に使う数学を学習しよう
【Unity道場】ゲーム制作に使う数学を学習しよう
CG2013 03
CG2013 03
私を SKI に連れてって
私を SKI に連れてって
CG2013 07
CG2013 07
CG2013 02
CG2013 02
CG2013 05
CG2013 05
動的計画法を極める!
動的計画法を極める!
はんなりPython#42 20210629
はんなりPython#42 20210629
Magnitude ~ extend the Euler Characteristics via Möbius Inversion ~
Magnitude ~ extend the Euler Characteristics via Möbius Inversion ~
Infinite SVM - ICML 2011 読み会
Infinite SVM - ICML 2011 読み会
kagami_comput2016_07
kagami_comput2016_07
アルゴリズムイントロダクション15章 動的計画法
アルゴリズムイントロダクション15章 動的計画法
CG2013 06
CG2013 06
CG2013 01
CG2013 01
kagami_comput2015_7
kagami_comput2015_7
ディジタル信号処理 課題解説 その5
ディジタル信号処理 課題解説 その5
SICP
SICP
Viewers also liked
7. sinif 5. üni̇te
7. sinif 5. üni̇te
Aslıhan Aksoy
framework.net -Jennifer Suarez
framework.net -Jennifer Suarez
GinsuaC
Via Global (Grupo Viatek)
Via Global (Grupo Viatek)
Grupo Viatek
Saletinho 2013
Saletinho 2013
Beatriz Sayuri
K hernandez speech_of_intro
K hernandez speech_of_intro
raiderkr
7a moshin олимп_ch
7a moshin олимп_ch
val28
Os máis altos!!!
Os máis altos!!!
Bergantera
Viewers also liked
(7)
7. sinif 5. üni̇te
7. sinif 5. üni̇te
framework.net -Jennifer Suarez
framework.net -Jennifer Suarez
Via Global (Grupo Viatek)
Via Global (Grupo Viatek)
Saletinho 2013
Saletinho 2013
K hernandez speech_of_intro
K hernandez speech_of_intro
7a moshin олимп_ch
7a moshin олимп_ch
Os máis altos!!!
Os máis altos!!!
Similar to 数列で学ぶ初めての CommonLisp #fibonacci
命令プログラミングから関数プログラミングへ
命令プログラミングから関数プログラミングへ
Naoki Kitora
Rでマンデルブロ集合
Rでマンデルブロ集合
Yoshiteru Kamiyama
モナドハンズオン前座
モナドハンズオン前座
bleis tift
How to study stat
How to study stat
Ak Ok
Incanterの紹介
Incanterの紹介
mozk_
自然言語処理のための機械学習入門1章
自然言語処理のための機械学習入門1章
Hiroki Mizukami
【Unity道場スペシャル 2017札幌】乱数完全マスター
【Unity道場スペシャル 2017札幌】乱数完全マスター
Unity Technologies Japan K.K.
【Unity道場スペシャル 2017京都】乱数完全マスター 京都編
【Unity道場スペシャル 2017京都】乱数完全マスター 京都編
Unity Technologies Japan K.K.
ディープニューラルネット入門
ディープニューラルネット入門
TanUkkii
関数プログラミングことはじめ
関数プログラミングことはじめ
Naoki Kitora
関数プログラミング ことはじめ (再)
関数プログラミング ことはじめ (再)
Suguru Hamazaki
Lispでやる記号微分
Lispでやる記号微分
Keiichi Watanabe
Prml07
Prml07
Tsukasa Fukunaga
TensorflowとKerasによる深層学習のプログラム実装実践講座
TensorflowとKerasによる深層学習のプログラム実装実践講座
Ruo Ando
2値分類・多クラス分類
2値分類・多クラス分類
t dev
化学科自主ゼミ1
化学科自主ゼミ1
Hiroki Sato
代数トポロジー入門
代数トポロジー入門
Tatsuki SHIMIZU
Or seminar2011final
Or seminar2011final
Mikio Kubo
Similar to 数列で学ぶ初めての CommonLisp #fibonacci
(18)
命令プログラミングから関数プログラミングへ
命令プログラミングから関数プログラミングへ
Rでマンデルブロ集合
Rでマンデルブロ集合
モナドハンズオン前座
モナドハンズオン前座
How to study stat
How to study stat
Incanterの紹介
Incanterの紹介
自然言語処理のための機械学習入門1章
自然言語処理のための機械学習入門1章
【Unity道場スペシャル 2017札幌】乱数完全マスター
【Unity道場スペシャル 2017札幌】乱数完全マスター
【Unity道場スペシャル 2017京都】乱数完全マスター 京都編
【Unity道場スペシャル 2017京都】乱数完全マスター 京都編
ディープニューラルネット入門
ディープニューラルネット入門
関数プログラミングことはじめ
関数プログラミングことはじめ
関数プログラミング ことはじめ (再)
関数プログラミング ことはじめ (再)
Lispでやる記号微分
Lispでやる記号微分
Prml07
Prml07
TensorflowとKerasによる深層学習のプログラム実装実践講座
TensorflowとKerasによる深層学習のプログラム実装実践講座
2値分類・多クラス分類
2値分類・多クラス分類
化学科自主ゼミ1
化学科自主ゼミ1
代数トポロジー入門
代数トポロジー入門
Or seminar2011final
Or seminar2011final
数列で学ぶ初めての CommonLisp #fibonacci
1.
00. First 数列で学ぶ初めての CommonLisp
# fibonacci 2012-04-28
2.
01. Profile
Akiko Terada (@pgf2) Work : software developer
3.
02. fibonacci -55
34 -21 13 -8 5 -3 2 -1 1 0 1 1 2 3 5 8 13 21 34 55 F(0) = 0 F(1) = 1 F(n) = F(n-2)+F(n-1) (n >= 2) F(-n) = (-1)^{n+1}*F(n)
4.
03. Divide and
conquer algorithm 先ずは直感 分割統治法!!
5.
03. Divide and
conquer algorithm 分割統治法は、そのままでは解決できない問題を 小さな問題に分割することで、最終的に問題を解 決しようとする考え方。また、その方法やアルゴ リズム。 分割統治法 - Wikipedia
6.
03. Divide and
conquer algorithm (defun fib(n) (cond ((< n 1) 0) ((= n 1) 1) (t (+ (f (- n 2)) (f (- n 1))))))
7.
03. Divide and
conquer algorithm F(2) = F(1) + F(0) F(3) = F(2) + F(1) = F(1) + F(0) + F(1) F(4) = F(3) + F(2) = F(2) + F(1) + F(1) + F(0) = F(1) + F(0) + F(1) + F(1) + F(0) 計算コストが指数的に拡散してしまう!
8.
04. Dynamic Programming トップダウンが駄目ならボトムアップ
動的計画法!!
9.
04. Dynamic Programming 動的計画法は、コンピュータ科学の分野におい て、ある最適化問題を複数の部分問題に分割して 解く際に、そこまでに求められている以上の最適 解が求められないような部分問題を切り捨てなが ら解いていく手法である。
動的計画法 - Wikipedia
10.
04. Dynamic Programming (defun
fib(n) (let ((n0 0) (n1 1) (i 1) (tmp)) (loop (if (> i n) (return n0)) (setq tmp (+ n0 n1)) (setq n0 n1) (setq n1 tmp) (incf i))))
11.
05. Memoization
他には? メモ化!!
12.
05. Memoization メモ化とは、プログラムの高速化のための最適化 技法の一種であり、サブルーチン呼び出しの結果 を後で再利用するために保持し、そのサブルーチ ンの呼び出し毎の再計算を防ぐ手法である。
メモ化 - Wikipedia
13.
05. Memoization (setf (symbol-function
'fib) (let ((table (make-hash-table :test #'equal))) (labels ((f (n) (let ((val (gethash n table nil))) (unless val (setf val (cond ((< n 0) 0) ((= n 1) 1) (t (+ (f (- n 2)) (f (- n 1)))))) (setf (gethash n table) val)) val))) #'f)))
14.
05. Memoization 計算コストと領域コストの問題発生
難しいのでパス :-)
15.
06. Conclusion ● 分割統治法 →
計算コスト ● 動的計画法 → ? ● メモ化 → 領域コスト コスト考えるなら動的計画法!
16.
07. Last ご清聴ありがとうございました!
Download now