11.07.2015 Views

第3回 - 奥乃研究室

第3回 - 奥乃研究室

第3回 - 奥乃研究室

SHOW MORE
SHOW LESS
  • No tags were found...

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

¥documentclass[a4paper,12pt]{article}¥usepackage{listings}¥begin{document}¥section{ 階 乗 の 定 義 }¥begin{equation}n! =¥left¥{¥begin{array}{ll}1 & ¥mbox{if } n = 0 ¥¥n ¥times (n-1)! & ¥mbox{otherwise}¥end{array}¥right.¥end{equation}¥end{document}4[インストール 方 法 ]1. TAのページから jalkd-on-line.tar.gz をダウンロード2. ファイルを 展 開 し, 展 開 して 出 来 たトップディレクトリ(このREADMEが あるディレクトリ)を 環 境 変 数 JAKLD_HOMEにセットする.$ export JAKLD_HOME=$HOME/jakld3. 環 境 変 数 PATH にサブディレクトリ bin を 追 加 する.$ export PATH=$JAKLD_HOME/bin:$PATH4. 環 境 変 数 を 設 定 する 上 記 2 行 を,シェル 初 期 化 ファイル(~/.profile, ~/.bash_profile 等 )に 追 加 すると 次 回 からのログイン 後 ,すぐに 使 えます[ 使 用 方 法 ]1. 端 末 に「jakld」と 打 てば 起 動 します( 行 編 集 機 能 つき).51. Command Prompt, cygwin で copy&paste2. Shell の 機 能 を 使 う3. Output file を 明 示 的 に 使 用‣ (define out (open-output-file ”outfile.txt”))out同 じファイル 名 のファイルがあると 上 書 き‣ out#‣ (display (fact 7) out) 結 果 を“outfile.txt”に 書 き 込 む5040‣ (newline out)#t‣ (close-output-port out)4. call-with-output-file Output file の 非 明 示 的 使 用‣ (call-with-output-file ”fact101.txt”(lambda (out)(newline out)(display (fact 101) out)(newline out)))62


1.1 The Elements of Programming1.1.1 Expressions1.1.2 Naming and the Environment1.1.3 Evaluating Combinations1.1.4 Compound Procedures1.1.5 The Substitution Model for ProcedureApplication ( 復 習 )1.1.6 Conditional Expressions and Predicates ( 復 習 )1.2 Procedures and the Processes They Generate1.2.1 Linear Recursion and Iteration1.2.2 Tree Recursion•8• 式 ( expression )は 単 純 なものから 構 築 .• ほぼすべての 式 は, 値 (value)を 持 つ.• 式 は 評 価 (evaluate)されて 値 を 返 す.• すべての 値 には 型 (type)がある.1. expressions ( 式 )• primitives( 基 本 式 )と• combinations( 合 成 式 )で 構 成2. means of combination ( 合 成 法 )3. Means of abstraction( 抽 象 化 法 )4. Creating procedure objects ( 手 続 きの 作 成 法 )5. 以 上 が 言 語 構 文 (language syntax), 構 築 子(language constructs)6. Viewing the rules of evaluation from acomputational perspective ( 計 算 という 観 点 からの 評 価 法 )7. 6.が 言 語 意 味 論 (language semantics)103


• define を 使 って 式 を 合 成• (define foo (+ 3 5))foo の 値 は 8• (define bar +)bar は + と 同 じ 手 続 き• (bar 3 5)14• “To square something, multiply it by itself.”To square something, multiply it by itself.• This is a compound procedure, of which name is“square”. 手 続 き 名 前• (define ( )) 仮 パラメータ, 本 体• ( )procedure application 手 続 き 適 用• Vocabulary ( 語 彙 ) ⇒Primitives• Syntax ( 構 文 ) ⇒means of abstractions• Semantics ( 意 味 ) ⇒ Viewing the rules ofevaluation from a computationalperspective ( 計 算 という 観 点 からの 評 価 法 )• 手 続 き 適 用 の 評 価 法 として「 置 換 モデル」165


(f 6)(* (f 5) 6)(* (* (f 4) 5) 6)(* (* (* (f 3) 4) 5) 6)(* (* (* (* (f 2) 3) 4) 5) 6)(* (* (* (* (* (f 1) 2) 3) 4) 5) 6)(* (* (* (* (* (* (f 0) 1) 2) 3) 4) 5) 6)(* (* (* (* (* (* 1 1) 2) 3) 4) 5) 6)(* (* (* (* (* 1 2) 3) 4) 5) 6)(* (* (* (* 2 3) 4) 5) 6)(* (* (* 6 4) 5) 6)(* (* 24 5))(* 120)720処 理 系 にやさしいプログラムを 書 くことが 不 可 欠29SC> (time (null? (factorial 5000)))total time: 0.729999999999563 secsuser time: 0.690993 secssystem time: 0 secs#fSC> (time (null? (f 5000)))total time: 1.34000000000015 secsuser time: 1.321901 secssystem time: 0 secs#fSC> (time (null? (fact 5000)))total time: 0.720000000001164 secsuser time: 0.701008 secssystem time: 0 secs#f30• トップダウン(top-down) 式 で 計 算 – 線 形 再 帰(define (factorial n)(if ( counter n)product(iter (* counter product)(+ counter 1) )))(iter 1 1) )319


0,fib(n) 1, fib(n 1) fib(n 2 ),if n 0if n 1otherwise(define (fib n)(cond ((= n 0) 0)((= n 1) 1)(else (+ (fib (- n 1))(fib (- n 2)) ))))35abi1i1 a b afib(n) biiniwhereab001 0(define (fib-i n)(define (iter a b count)(if (= count 0)b(iter (+ a b) a (- count 1)) ))(iter 1 0 n) )36(define (fib-i n)(define (iter a b count)(if (= count 0) 木 構 造 再 帰b(iter (+ a b) a (- count 1)) ))(iter 1 0 n) )ブロック 構 造 を 使 わないと,(define (fib-i n)(fib-iter 1 0 n) )(define (fib-iter a b count)(if (= count 0)b(fib-iter (+ a b) a (- count 1))))3711


Scale Label ValueRelative to C/DA X 2B X 2CXCFX x piK X 3KZ X x 360Llog XLglog XLnln XR1 / XR1, R2 Square root of XSsin XSh1, Sh2 sinh XCF/MX x log e10LL0 e 0.001xSq1, Sq2Square root of XCI1 / XLL1 or ZZ1 e 0.01xSRTsin X, tan XCIF 1 / (pi x X)LL2 or ZZ2 e 0.1xSTsin, tan XDXLL3 or ZZ3e xTtan X, cotan XDFX x piLL00 or LL/0 e ‐xT1, T3 tan X, cotan XDF/MX x log e10LL01 or LL/1e ‐0.1xT2tan X, cotan XDFMX x log e10DI1 / XDIF 1 / (pi x X)Ee xH ‐H1, H2 Square root of (1+X 2 )LL02 or LL/2 e ‐0.01xLL03 or LL/3 e ‐0.001xMlog XP Square root of (1‐X 2 )p% ‐Thtanh XVVoltsW1, W2 Square root of XZXZZ1, ZZ2, ZZ3 e x 42HC ‐P1, P2 Square root of (1‐X 2 )大 きな 数 ・ 小 さな 数deca da ×10 1 deci d × 10 -1yotta Y × 10 24 yocto y × 10 -24hecto h × 10 2 centi c × 10 -2kilo K × 10 3 milli m × 10 -3mega M × 10 6 micro μ × 10 -6giga G × 10 9 nano n × 10 -9tera T × 10 12 pico p × 10 -12peta P × 10 15 femto f × 10 -15exa E × 10 18 atto a × 10 -18zetta Z × 10 21 zepto z × 10 -2110 1 ten or decad10 2 hundred or hecatontad10 3 thousand or chiliad10 4 myriad10 5 lac or lakh10 6 million10 7 crore10 8 myriamyriad10 9 milliard or billion10 12 trillion10 15 quadrillion10 18 quintillion10 21 sextillion10 24 septillion10 33 decillion10 63 vigintillion10 303 centillion10 100 googol10 googol googolplex10 N N plex10 -N N minex4313


224plex 阿 伽 羅88plex 無 量 大 数80plex 不 可 思 議72plex 那 由 他64plex 阿 僧 祇56plex 恒 河 砂48plex 極44plex 載40plex 正36plex 澗32plex 溝28plex 穣24plex 杼 ( 禾 偏 )20plex 垓16plex 京12plex 兆8plex 億4plex 萬 ( 万 )3plex 千2plex 百1plex 十0plex 一1minex 分2minex 厘3minex 毫 ( 毛 )4minex 絲 ( 糸 )5minex 忽6minex 微7minex 纎 ( 繊 )8minex 沙9minex 塵10minex 埃11minex 渺12minex 漠13minex 模 糊14minex 逡 巡15minex 須 臾441minex2minex3minex4minex5minex6minex7minex8minex9minex10minex11minex12minex分厘毫 ( 毛 ) モウ絲 ( 糸 ) シ忽 コツ微 ビ纎 ( 繊 )セン沙 シャ塵 ジン埃 アイ渺 ビョウ漠 バク13minex14minex15minex16minex17minex18minex19minex20minex21minex22minex23minex模 糊逡 巡 シュンジュン須 臾 シュユ瞬 息 シュンソク弾 指 ダンシ刹 那六 徳 リットク虚空清浄45コンピュータ 将 棋 「あらか2010」清 水 市 代 女 流 王 将 破 る (10/11, 東 大 )• 情 報 処 理 学 会 の「トッププロ 棋 士 に 勝 つ 将 棋 プロジェクト」 特 製 システム• 阿 伽 羅 (あから)は10の224 乗 という 数 を 表 し、 将 棋 の 局 面 の 数 がこの 数 に近 いことに 因 んで 命 名 された• ハードウエア 部- 東 京 大 学 クラスターマシン:-Intel Xeon 2.80GHz, 4 cores 109 台-Intel Xeon 2.40GHz, 4 cores 60 台合 計 169 台 676 cores-バックアップマシン:4プログラムそれぞれについて1 台 ずつ-CPU: Xeon W3680 3.33GHz 6cores-Memory: 24GB (DDR3 UMB ECC 4GBx6)※ 使 用 ハードウェアは 当 日 変 更 される 可 能 性 もあります。(2010 年 10 月 6 日 追 記 )• ソフトウエア 部- 構 成 : 国 内 トップ4プログラムによる 多 数 決 合 議 法 (4つのプレイヤープログラムに 局 面 を 渡 し、 指 し 手 を 受 け 取 り、もっとも 多 い 手 を 指 し 手 として 返 す)- 合 議 マネージャ: 開 発 : 電 気 通 信 大 学 伊 藤 研 究 室 & 保 木 邦 仁- プレイヤー1:「 激 指 」 開 発 : 激 指 開 発 チーム( 鶴 岡 慶 雅 、 横 山 大 作 )- プレイヤー2:「GPS 将 棋 」 開 発 :チームGPS( 田 中 哲 朗 、 金 子 知 適 ほか)- プレイヤー3:「Bonanza」 開 発 : 保 木 邦 仁- プレイヤー4:「YSS」 開 発 : 山 下 宏4614


(fib-i 6)(iter 1 0 6)(iter 1 1 5)(iter 2 1 4)(iter 3 2 3)(iter 5 3 2)(iter 8 5 1)(iter 13 8 0)8Linear iterative process( 線 形 反 復 プロセス)(define (fib-i n)(define (iter a b count)(if (= count 0)b(iter (+ a b) a(- count 1) )))(iter 1 0 n) )•55• C(n):n に 対 して fib の 呼 ばれる 回 数• C(0)=C(1)=1• n≧2 に 対 して C(n)=C(n-1)+C(n-2)+1• C(2)=3, C(3)=5, C(4)=9, C(5)=15, …• 一 般 に、C(k) > 2 k/2C(n) を 求 める1. F(n)=C(n)+1 とおくと2. F(n)=F(n-1)+F(n-2) for n≧23. F(0)=2, F(1)=256• n≧2 に 対 して C(n)=C(n-1)+C(n-2)+1• F(n)=C(n)+1 とおくと• F(n)=F(n-1)+F(n-2) for n≧2• F(0)=2, F(1)=2さあ、 解 いてみてください。17


•58• n≧2 に 対 して C(n)=C(n-1)+C(n-2)+1• F(n)=C(n)+1 とおくと• F(n)=F(n-1)+F(n-2) for n≧2• F(0)=2, F(1)=2•n nF( n) A B, φ,ψ は2t t 1 0 の 根1 2A 1 1 2B15 55 52n 2n 2 n 1 1( ) (nF n )5 5 5C(n)2( 5n1n1) 161• Fib(n) はan15n n1 5• 0.62 0より21 n• 従 って、 fib(n) は an に 最 も 近 い 整 数56218


• 手 続 きが 再 帰 的 とは、 構 文 上 から 定 義 。自 分 の 中 で 自 分 を 直 接 ・ 間 接 に 呼 び 出 す。• 再 帰 的 手 続 きの 実 行– 再 帰 プロセスで 実 行– 反 復 プロセスで 実 行• 線 形 再 帰 プロセスは 線 形 反 復 プロセスに 変 換 可 能「tail recursion ( 末 尾 再 帰 的 )」• 再 帰 プロセスでは、deferred operation 用 にプロセスを 保 持 する 必 要 あり ⇒ スペース 量 が 余 分 に 必 要• Scheme のループ 構 造 はsyntactic sugar– do, repeat, until, for, while64• 「 適 用 順 序 ( 作 用 順 序 ,Applicative order)」今 まで 見 てみた 置 換 モデルの 評 価 順 序 :• 別 の 順 序 :「 正 規 順 序 (normal-order)」 :仮 パラメータをすべて 置 換 してから, 簡 約 する.1. (f 5)2. ((sum-of-squares (+ a 1) (* a 2)) 5)3. (sum-of-squares (+ 5 1) (* 5 2))4. ((+ (square x) (square y)) (+ 5 1) (* 5 2))5. (+ (square (+ 5 1)) (square (* 5 2))6. (+ ((* x x) (+ 5 1)) ((* x x) (* 5 2))7. (+ (* (+ 5 1) (+ 5 1)) (* (* 5 2) (* 5 2)))8. (+ (* 6 6) (* 10 10))9. (+ 36 100)10. 1362 回 同 じものを 計 算65• 条 件 式 の 一 般 形 ; cond は 特 殊 形 式 (special form)• (cond ( …)( …)…( …) )• 式 の 対 ( … ) : 節 (clause)• : 述 語 (predicate)• 述 語 の 値 : true (#t) か false (#f).• : 帰 結 式 (consequent expression)• 特 別 の: else (#t を 返 す)• 節 の 評 価 は,が#tならが 順 に 評 価 される.• 一 旦 述 語 が#tを 返 すと,それ 以 降 の 節 は 評 価 されない.6619


• 木 の 辿 り 方– 前 順 走 査 (pre-order traversal)ノード⇒ 左 部 分 木 ⇒ 右 部 分 木+ ⇒ 3 ⇒ * ⇒ 4 ⇒ 5– 間 順 走 査 (in-order tr.)左 部 分 木 ⇒ノード⇒ 右 部 分 木 33 ⇒ + ⇒ 4 ⇒ * ⇒ 5– 後 順 走 査 (post-order tr.)左 部 分 木 ⇒ 右 部 分 木 ⇒ノード3 ⇒ 4 ⇒ 5 ⇒ * ⇒ +Javaプログラムのデモ+×4 5http://winnie.kuis.kyoto-u.ac.jp/~okuno/Lecture/11/IntroAlgDs/701. 反 復 型 ( 繰 返 型 ) 階 乗 のプログラムを 書 きなさい.2. 本 日 の 講 義 の 感 想 を31 文 字 でまとめなさい.721. 反 復 型 階 乗 プログラムのファイルを 作 成 せよ. fact-iter.scm2. (fact-iter 100+ご 自 分 の 学 籍 番 号 の 下 1 桁 ) を 実 行 し, 出 力結 果 を 求 めよ.3. Fibonacci 数 の 再 帰 型 と 反 復 型 手 続 きのファイルを 作 成 せよ.1つのファイル 中 に fib と fib-iter を 定 義 する. fib.scm4. 2 種 類 のFibonacci 数 の 手 続 きを 実 行 し,10, 20, 30 のFibonacci 数 を 求 めよ.5. 階 乗 のプログラムの 説 明 と 出 力 結 果 ,および,Fibonacci 数 のプログラムの 説 明 と 出 力 結 果 を latexで 作 成 し,pdfを 提 出 .6. Program ファイルとpdf ( 学 籍 番 号 - 名 前 - 回 .pdf) をSICP-3@zeus.kuis.kyoto-u.ac.jp に 送 付(otherwise 回 答 は 減 点 )7321

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!