<4D F736F F F696E74202D208FEE95F1926D8EAF836C F815B834E93C1985F817595B68E9A97F18FC68D B A E

Size: px
Start display at page:

Download "<4D F736F F F696E74202D208FEE95F1926D8EAF836C F815B834E93C1985F817595B68E9A97F18FC68D B A E"

Transcription

1 北海道大学 Hokkido Uiversity 1 情報知識ネットワーク特論 情報検索とパターン照合 情報科学研究科コンピュータサイエンス専攻情報知識ネットワーク研究室 喜田拓也

2 第 3 回 Suffix 型アルゴリズム Boyer-Moore アルゴリズム Glil アルゴリズム Horspool アルゴリズム Sudy アルゴリズム

3 3 Nïve アルゴリズム テキスト T: bbbbbcbbbc パターン P: bbc パターン出現パターン出現!! t positio t positio 6 of T13 of T 一文字づつずらしてマッチングしていく もっと大雑把にいえば O(m) 時間 Nïve-Strig-Mtchig (T, P) テキスト上のポインタ 1 legth[t]. ( 比較する文字の現在 2 m legth[p]. 位置 ) が前後する! 3 for s 0 to m 4 do if P[1..m] = T[s+1 s+m] 5 the report occurrece t s. 最悪の場合 O((-m+1)m) 時間かかる 演習 :T= 8, P= 4 b の場合を文字比較の回数は何回か? P=b の意味

4 4 Kuth-Morris-Prtt アルゴリズム D. E. Kuth, J. H. Morris, Jr, d V. R. Prtt. Fst ptter mtchig i strigs. SIAM Jourl o Computig, 6(1): , テキスト T: bbbbbcbbbc パターン P: ext[5] = 3 ext[3] = 0 bbc bbc bc bbc パターン出現! t positio 6 of T KMP-Strig-Mtchig (T, P) ext 関数によって次にPの何文字目とテキストを 1 legth[t]. 比較するかがわかる ( シフト量は q-ext[q]) 2 m legth[p]. 値が0のときは テキストの次の文字と比較する 3 q 1. テキストの各文字との比較はO(1) 回ずつである 4 ext ComputeNext(P). 5 for i 1 to do 6 while q>0 かつ P[q] T[i] do q ext[q]; 7 if q=m the report occurrece t i-m; 8 q q+1. 最悪の場合でも O(+m) 時間 (ext はあらかじめ配列として計算 )

5 5 効率的照合アルゴリズムの一般形 MtchigAlgorithm (P, T) 1 m legth[p]. 2 legth[t]. 3 i 1. 4 while i m +1 do 5 i が出現位置であるか否かを決定する ; 6 if i が出現位置 the report occurrece t i; 7 パタンを右へシフトする量 Δ を求める ; 8 i i + Δ. KMP 法 BM 法をはじめとする多くの効率的パタン照合アルゴリズムがこの枠組みに入る 竹田正幸 全文テキスト処理のための高速パターン照合アルゴリズム 情報学シンポジウム 1991 年 1 月. アルゴリズムの高速化のために大事なこと : 5 行目をいかに最小の手間で決定できるか 7 行目においてシフト量をどれだけ大きくできるか

6 6 Boyer-Moore アルゴリズム R. S. Boyer d J. S. Moore. A fst strig serchig lgorithm. Commuictios of the ACM, 20(10): , 特徴 : パタンの右から左へ文字を比較していく 二つの関数 (delt1 と delt2) の値を比較し より大きいほうを使ってパタンをシフトする 最悪 O(m) 時間だが 平均的には O(/m) 時間となる (sub lier!!) delt1(chr) := パタン内の chr の最右の出現位置に合わせるようにシフトした際のポインタ ( 文字比較位置 ) のとび幅 ( 出現しない場合はパタン長 ) delt1(c) = 5 (bd-chrcter heuristic) テキスト T: パタン P: b c d c b c b c c b c b b b b c b b b c の位置を合わせるようにシフトする Δ=delt1(chr) j + 1 = 5 0 = 5

7 7 delt2(j) delt2(j) := パタンPの長さ j-1 のsuffixのP 中の他の出現位置 ( あるいは最長一致する Prefix) に合わせた際のポインタのとび幅 ( 出現しない場合はパタン長 ) (good-suffix heuristic) delt2(3) = 8 テキスト T: b c d b b c b c c パタン P: b c b b b b c b b b b の位置を合わせるようにシフトする delt2(3) の候補としては 1 と 5 の二つある しかし 5 の出現位置の左隣は b で既に一致しないことが分かっているので この場合は 1 となる Δ=delt2(3) = 8 2 = 6 delt2(5) = 10 テキスト T: パタン P: b c b b b c b c c b c b b b b c b b b b の位置を合わせるようにシフトする Δ=delt2(5) = 10 4 = 6

8 8 BM 法の問題点 delt 関数を計算するのが難しい 単純なやり方だと O(m 2 ) 時間かかる O(m) 時間の手法はひと手間かかる KMPの裏返し delt1 と delt2 の値をいちいち比較するので 手間がかかりすぎる delt1 だけを用いる方法が一般的 ( ただしそのままでは パタンがうまくシフトできないことがあるので 工夫が必要 ) 最悪の場合には O(m) 時間かかってしまう T =, P = b m の場合を考えよ アルファベットのサイズが小さいときには効率が悪い テキストもパタンも ={0,1} の場合は ほとんどシフトできない! つまり バイナリテキスト

9 9 Glil アルゴリズム Z. Glil. O improvig the worst cse ruig time of the Boyer-Moore strig serchig lgorithm. Commuictios of the ACM, 22(9): , 元の BM 法では 一致した文字列の情報を 忘れてしまう ので O(m) 時間かかる Prefix が何文字一致しているかを記憶しておけばよい 理論的には テキスト走査を O() 時間で行える 実際には処理が煩雑になり 遅くなる delt2(5) = 10 テキスト T: パタン P: b c b b c b b b b c b b b b c b b b テキストの各文字はせいぜい 2 回しか比較されなくなる! これ以降は すでに比較ずみ であることを記憶しておく 比較する残りの部分はここだけ

10 10 Horspool アルゴリズム R. N. Horspool. Prcticl fst serchig i strigs. Softwre Prctice d Experiece, 10(6): , が十分に大きい場合は delt1 関数 (bd-chrcter heuristic) が大抵の場合一番よいシフト量を与える 少しの変更を加えることで よりとび幅を増やすことができる! delt1(c) = 5 テキスト T: パタン P: b c d c d b c b c c b c b c b b d b c b b d delt1 (d) = 10 delt1 (b) = 3 テキスト T: b c d c d b c b c c b c パタン P: b c b b d b c b b d 常にパタンの最後の位置に対応するテキストの文字でとび幅を決定する

11 11 擬似コード Horspool (P, T) 1 m legth[p]. 2 legth[t]. 3 Preprocessig: 4 For ech c do delt1 [c] m. 5 For j 1 to m 1 do delt1 [ P[j] ] m j. 6 Serchig: 7 i 0. 8 while i m do 9 j m; 10 while j > 0 かつ T[i+j] = P[j] do j j 1; 11 if j = 0 the report occurrece t i+1; 12 i i + delt1 [ T[i+m] ].

12 12 Sudy アルゴリズム D. M. Sudy. A very fst substrig serch lgorithm. Commuictios of the ACM, 33(8): , 基本は BM 型アルゴリズムと同じ 異なる点 パタンが一致するか否かを パタン中の任意の文字順で比較する 例えば 統計的に出現頻度の低い文字から順次比較を行う delt1 を引く際 パタンの最後の位置の右隣に対応するテキスト上の文字を使う (BM における delt2 も計算し 長いほうを選択する ) Horspool よりもとび幅は長くなる傾向がある ただし メモリ消費量は Horspool より大きい また とび幅を計算する手間が Horspool よりかかる delt1 (d) = 9 delt1 (c) = 6 テキスト T: b c d c b d c b c c b c パタン P: b c b b b b c b b b 常にパタンの最後の位置の右隣に対応するテキストの文字で delt1 を計算する

13 Fctor 型アルゴリズム BDM アルゴリズム BOM アルゴリズム BNDM アルゴリズム

14 14 Bckwrd Dwg Mtchig (BDM) アルゴリズム M. Crochemore, A. Czumj, L. Gsieiec, S. Jromiek, T. Lecroq, W. Pldowski, d W. Rytter. Speedig up two strig mtchig lgorithms. Algorithmic, 12(4/5): , 基本は BM 型アルゴリズムと同じ 異なる点 パタンの Suffix と一致しているかではなく Fctor と一致しているかどうかでパタンの出現を判定する Fctor かどうかの判定は Suffix Automto を使う (suffix tree でも可 ) Suffix utomto (SA) の特徴 文字列 u がパタン P の Fctor であるかどうかが O( u ) 時間で分かる 文字列 u がパタン P の Suffix であるかどうかも判定できる P=p 0 p 2 p m に対して O(m) 時間のオンラインアルゴリズムがある テキスト T: Fctor serch Prefixかどうかは SAの σ u 2 番目の特徴からわかる b c d c b d c b c c b c パタン P: b c b b b b c b b b cc は Fctor ではないし また c は Prefix でもないので次の文字までパタンをずらせる b c b b b

15 15 Suffix Automto A. Blumer, J. Blumer, D. Hussler, A. Ehrefeucht, M. T. Che d J. Seifers. The smllest utomtio recogizig the subwords of text. Theoreticl Computer Sciece (40):31-55, e c u o c u o u o u o o e c u o c u o u o u o o Suffix tree Suffix trie Suffix utomto パタン P = ouce の反転 P R の fctor を受理する決定性オートマトン u o e c 9 u o c u

16 16 O-lie 構築アルゴリズム SuffixAutomto(P=p 1 p 2 p m ) 1 Crete the oe-ode grph G=DAWG(e). 2 root sik the ode of G. suf[root] θ. 3 for i 1 to m do 4 crete ew ode ewsik; 5 mke solid edge (sik, ewsik) lbeled by ; 6 w suf[sik]; 7 while w θ かつ so(w,)=θ do 8 mke o-solid -edge (w, ewsik); 9 w suf[w]; 10 v so(w,); 11 If w=θthe suf[ewsik] root 12 else if (w,v) is solid edge the suf[ewsik] v 13 else 14 crete ode ewode; とっても複雑なので 構築するのは結構たいへん! 15 ewode hs the sme outgoig edges s v except tht they re ll o-solid; 16 chge (w,v) ito solid edge (w, ewode); 17 suf[ewsik] ewode; 18 suf[ewode] suf[v]; suf[v] ewode; 19 w suf[w]; 20 while w θかつ (w,v) is o-solid -edge do 21 redirect this edge to ewode; w suf[w]. 22 sik ewsik.

17 17 BNDM アルゴリズム G. Nvrro d M. Rffiot. Fst d flexible strig mtchig by combiig bit-prllelism d suffix utomt. ACM Jourl of Experimetl Algorithmics (JEA), 5(4), 基本は BDM と同じ 異なる点 パタンの fctor かどうかを調べるため 非決定性 (odetermiistic) の Suffix utomt を用いる その NFA の状態遷移を Bit-prllel 手法でシミュレートする パタン P = ouce の反転 P R の suffix を受理する非決定性オートマトン I ε ε ε ε ε ε ε ε ε e c u o 初期状態 :R 0 = 1 m 状態遷移 :R = (R << 1) & M[ T[i] ] Shift-Adと同じ Msk tble この NFA をシミュレートする

18 18 擬似コード BNDM (P, T) 1 m legth[p]. 2 legth[t]. 3 Preprocessig: 4 for c do M[c] 0 m. 5 for j 1 to m do M[ P[j] ] M[ P[j] ] 0 m j 10 j 1. 6 Serchig: 7 s 0. 8 while s m do 9 j m, lst m, R 1 m ; 10 while R 0 m do 11 R (R << 1) & M[ T[s+j] ]; 12 j j 1; 13 If R & 10 m-1 0 m the 14 If j > 0 the lst j; 15 else report occurrece t s+1; 16 R R << 1; 17 s s + lst.

19 19 Bckwrd Orcle Mtchig (BOM) アルゴリズム C. Alluze, M. Crochemore, d M. Rffiot. Efficiet experimetl strig mtchig by wek fctor recogitio. I Proceedigs of the 12 th Aul Symposium o Combitoril Ptter Mtchig, LNCS2089:51-72, BDM とアイデアは同じ 異なる点 複雑な Suffix utomto ではなく Fctor orcle を使う BDM において必要なことは 文字列 u が Fctor であることではなく σu が Fctor ではないこと Fctor orcle の性質 パタン P の Fctor 以外の文字列も受理してしまう可能性がある 例 : 下の図で c は P R の Fctor ではない O(m) 時間で構築できるうえに 実装が容易で少メモリ 状態数 m+1 個 遷移関数の実現サイズ 2m-1 P=ouceの場合の P R に対するFctor orcle c e c u o u o

20 20 Fctor orcle の構築アルゴリズム Orcle-o-lie (P=p 1 p 2 p m ) 1 Crete Orcle(ε) with 2 Oe sigle iitil stte 0, S(0) θ. 3 for i 1 m do 4 Orcle(P=p 1 p 2 p j ) 5 Orcle_dd_letter (Orcle(P=p 1 p 2 p j-1 ), p j ). Orcle_dd_letter (Orcle(P=p 1 p 2 p m ),σ) 1 Crete ew stte m+1. 2 δ(m,σ) m+1. 3 k S(m) 4 while k θ かつ δ(k,σ)=θ do 5 δ(k,σ) m+1; 6 k S(k). 7 If k =θthe s 0; 8 else s δ(k,σ). 9 S(m+1) s. 10 retur Orcle(P=p 1 p 2 p m σ).

21 21 ちょっと ひといき ここまでのまとめ Suffix 型アルゴリズム パターンを右から左へ照合する! テキストの文字を飛び飛びで照合できる! Fctor 型アルゴリズム パターンのすべての Fctor と比較しつつ テキストの文字を飛び飛びで照合できる! ~ トリビア ~ 二つの整数 x と y の内容を余計な変数を用いずに交換できるか? (x,y) = (y,x) Perlだとリストを使える! いわとびペンギン ( 旭山動物園にて )

22 Suffix Fctor 型の 複数パターンへの拡張 Set Horspool アルゴリズム Wu-Mber アルゴリズム

23 23 Suffix Fctor 型複数パターン照合 Commetz-Wlter アルゴリズム B. Commetz-Wlter. A strig mtchig lgorithm fst o the verge. I Proceedigs of the 6th Itertiol Colloquium o Automt, Lguges d Progrmmig, LNCS71: , BM アルゴリズムの直接的な拡張 Set Horspool アルゴリズム Commetz-Wlter のアルゴリズムを Horspool のアイデアに基づいて簡略化したもの Urti-Tked アルゴリズム AC アルゴリズムのアイデアを BM 型に転用したもの CW より高速 Set Bckwrd Orcle Mtchig (SBOM) アルゴリズム C. Alluze d M. Rffiot. Fctor orcle of set of words. Techiicl report 99-11, Istitut Gsprd-Moge, Uiversite de Mre-l-Vllee, Fctor orcle を複数文字列に拡張したものを利用 Wu-Mber アルゴリズム S. Wu d U. Mber. A fst lgorithm for multi-ptter serchig. Report TR-94-17, Deprtmet of Computer Sciece, Uiversity of Arizo, Tucso, AZ, 実用的に高速なアルゴリズム Agrep にも用いられている

24 24 Set Horspool アルゴリズム パタン集合の各要素を反転 (reverse) した文字列の trie を作る あとは Horspool と同じ Suffix serch をしながら trie をたぐる どのパタンの Suffix でもないことが判ったら delt1 でパタンをシフトする α パタンのリバース trie Cf. Urti-Tked アルゴリズムでは trie のかわりに AC マシンを使い filure 関数によってとび幅を決定する テキスト T: σ suffix serch テキスト T: β どのパタンの中にも β が出現しない部分 delt1

25 25 パフォーマンスが悪くなる理由 delt ( lmi) テキスト T: パタン P: 可能なとび幅の最大値は lmi に制限される lmx lmi パターンの個数が多くなると 各文字の出現頻度が高くなり bd-chrcter heuristic がうまく働かない!

26 26 Wu-Mber アルゴリズム S. Wu d U. Mber. A fst lgorithm for multi-ptter serchig. Report TR-94-17, Deprtmet of Computer Sciece, Uiversity of Arizo, Tucso, AZ, テキストの照合位置から B 文字分 (T[i-B+1 i]) を用いて パタンが出現する可能性を調べる SHIFT[ T[i-B+1 i] ] : T[i-B+1 i] が あるパタンの接尾辞であるとき 0 そうでなければ 可能な最大シフト長を返す HASH[ T[i-B+1 i] ] : SHIFT が 0 ( すなわち T[i-B+1 i] があるパタンの接尾辞 ) だった場合 出現の可能性があるパタンのリストを返す パタン P: o u c e u l u l l y パタン出現の可能性あり! SFHIT[l]=0 HASH[l]=2, シフト1 テキストT: C P M u l c o f e r e c e o u c e SFHIT[]=4 SFHIT[l ]=5 SHIFT[Bl] = 文字列シフト量 ll 1 o ou 3 4 u c 1 u l 0 ly 0 u 2 ce 0 * 5 HASH[Bl] = 文字列パタン番号 ce ly 3, 1 u l 2 * φ

27 27 擬似コード Costruct_SHIFT (P={p 1,p 2,,p r }) 1 iitilize SHIFT tble by lmi B+1. 2 For ech Bl=p i [j B+1 j] do 3 If SHIFT[h1(Bl)] > m i j do SHIFT[h1(Bl)] = m i j. grep ver4.02 の実装 (mgrep.c) では SFHIT HASH B はそれぞれ となっている ( ようだ ) Wu-Mber (P={p 1,p 2,,p r }, T=T[1 ]) 1 Preprocessig: 2 Computtio of B. 3 Costructio of the hsh tbles SHIFT d HASH. 4 Serchig: 5 pos lmi. 6 while pos do 7 i h1( T[pos B+1 pos] ); 8 If SHIFT[i] = 0 the 9 list HASH[ h2( T[pos B+1 pos] ) ]; 10 Verify ll the ptters i list oe by oe gist the text; 11 pos pos + 1; 12 else pos pos + SHIFT[i].

28 28 第 3 回まとめ Suffix 型アルゴリズム パターンを右から左へ照合する 最悪 O(m) 時間だが 平均的には O(/m) 時間 Boyer-Moore Glil Horspool Sudy らのアルゴリズム Fctor 型アルゴリズム パターンの Fctor かどうかを判定して テキストを飛び飛びに照合する BDM BNDM BOM アルゴリズム Suffix 型 Fctor 型アルゴリズムの複数パターンへの拡張 パターンの個数が多くなると 各文字の出現頻度が高くなり bd-chrcter heuristic がうまく働かない Set Horspool Wu-Mber アルゴリズム 次回のテーマ 近似文字列照合アルゴリズム : 誤りを許したパターン照合

文字列照合アルゴリズム

文字列照合アルゴリズム 講義 情報知識ネットワーク特論 ~ 情報検索とパターン照合 第 3 回 Suffix Fctr 型アルゴリズム 情報理工学専攻情報知識ネットワーク研究室喜田拓也 講義資料 2018/11/22 今日の内容 Byer-Mre アルゴリズム Glil アルゴリズム Hrspl アルゴリズム Sudy アルゴリズム BDM アルゴリズム BOM アルゴリズム BNDM アルゴリズム 2 効率的照合アルゴリズムの一般形

More information

Microsoft PowerPoint - アルデIII 10回目12月09日

Microsoft PowerPoint - アルデIII 10回目12月09日 アルゴリズムとデータ構造 III 9 回目 : 月 9 日 全文検索アルゴリズム (Simple Serh, KMP) 授業資料 http://ir.s.ymnshi..jp/~ysuzuki/puli/lgorithm/index.html 授業の予定 ( 中間試験まで ) / スタック ( 後置記法で書かれた式の計算 ) / チューリング機械, 文脈自由文法 / 構文解析 CYK 法 / 構文解析

More information

6 文字列処理 ( 教科書 p.301p.332) 今回は 言語の文字列処理について復習し, 文字列の探索手法について学びます. 文字列とはプログラム上での文字の並びを表すのが文字列です. これは中身が空であっても同様に呼ばれます. 言語では "STRING" のように文字の並びを二重引用符 " で囲んだものを文字列リテラルと呼びます. SII コードの場合, 割り当てられる数値は図 1 のようになっています.

More information

DEIM Forum 2016 C n K S = {T 1,..., T K } T i S Suffix

DEIM Forum 2016 C n K S = {T 1,..., T K } T i S Suffix DEIM Forum 06 C6-060 084 4 9 89-0395 744 E-mil: {tkg,rim}@ist.hokudi..jp, ineng@inf.kyushu-u..jp n K S = {T,..., T K } T i S Suffix Tree DAWG. K S = {T,..., T K} S (online onstrution proelm for multiple

More information

次に示す数値の並びを昇順にソートするものとする このソートでは配列の末尾側から操作を行っていく まず 末尾の数値 9 と 8 に着目する 昇順にソートするので この値を交換すると以下の数値の並びになる 次に末尾側から 2 番目と 3 番目の 1

次に示す数値の並びを昇順にソートするものとする このソートでは配列の末尾側から操作を行っていく まず 末尾の数値 9 と 8 に着目する 昇順にソートするので この値を交換すると以下の数値の並びになる 次に末尾側から 2 番目と 3 番目の 1 4. ソート ( 教科書 p.205-p.273) 整列すなわちソートは アプリケーションを作成する際には良く使われる基本的な操作であり 今までに数多くのソートのアルゴリズムが考えられてきた 今回はこれらソートのアルゴリズムについて学習していく ソートとはソートとは与えられたデータの集合をキーとなる項目の値の大小関係に基づき 一定の順序で並べ替える操作である ソートには図 1 に示すように キーの値の小さいデータを先頭に並べる

More information

オートマトン 形式言語及び演習 1. 有限オートマトンとは 酒井正彦 形式言語 言語とは : 文字列の集合例 : 偶数個の 1 の後に 0 を持つ列からなる集合 {0, 110, 11110,

オートマトン 形式言語及び演習 1. 有限オートマトンとは 酒井正彦   形式言語 言語とは : 文字列の集合例 : 偶数個の 1 の後に 0 を持つ列からなる集合 {0, 110, 11110, オートマトン 形式言語及び演習 1 有限オートマトンとは 酒井正彦 wwwtrscssinagoya-uacjp/~sakai/lecture/automata/ 形式言語 言語とは : 文字列の集合例 : 偶数個の 1 の後に 0 を持つ列からなる集合 {0, 110, 11110, } 形式言語 : 数学モデルに基づいて定義された言語 認識機械 : 文字列が該当言語に属するか? 文字列 機械 受理

More information

オートマトン 形式言語及び演習 4. 正規言語の性質 酒井正彦 正規言語の性質 反復補題正規言語が満たす性質 ある与えられた言語が正規言語でないことを証明するために その言語が正規言語であると

オートマトン 形式言語及び演習 4. 正規言語の性質 酒井正彦   正規言語の性質 反復補題正規言語が満たす性質 ある与えられた言語が正規言語でないことを証明するために その言語が正規言語であると オートマトン 形式言語及び演習 4. 正規言語の性質 酒井正彦 www.trs.css.i.nagoya-u.ac.jp/~sakai/lecture/automata/ 正規言語の性質 正規言語が満たす性質 ある与えられた言語が正規言語でないことを証明するために その言語が正規言語であると仮定してを使い 矛盾を導く 閉包性正規言語を演算により組み合わせて得られる言語が正規言語となる演算について調べる

More information

データ構造

データ構造 アルゴリズム及び実習 9 馬青 1 文字列の探索 文字列探索 (string searching) は文字列照合 (string pattern matching) ともいう テキストと呼ばれる文字列の中に パターンと呼ばれる文字列に一致する部分があるかどうかを調べる問題である そのような部分が見つかった場合には その場所を答えとする テキストエディターにおける探索コマンドやテキストデータベースにおける検索などに使われる

More information

Microsoft PowerPoint - ad11-09.pptx

Microsoft PowerPoint - ad11-09.pptx 無向グラフと有向グラフ 無向グラフ G=(V, E) 頂点集合 V 頂点の対を表す枝の集合 E e=(u,v) 頂点 u, v は枝 e の端点 f c 0 a 1 e b d 有向グラフ G=(V, E) 頂点集合 V 頂点の順序対を表す枝の集合 E e=(u,v) 頂点 uは枝 eの始点頂点 vは枝 eの終点 f c 0 a 1 e b d グラフのデータ構造 グラフ G=(V, E) を表現するデータ構造

More information

オートマトン 形式言語及び演習 3. 正規表現 酒井正彦 正規表現とは 正規表現 ( 正則表現, Regular Expression) オートマトン : 言語を定義する機械正規表現 : 言語

オートマトン 形式言語及び演習 3. 正規表現 酒井正彦   正規表現とは 正規表現 ( 正則表現, Regular Expression) オートマトン : 言語を定義する機械正規表現 : 言語 オートマトン 形式言語及び演習 3. 酒井正彦 www.trs.css.i.nagoya-u.ac.jp/~sakai/lecture/automata/ とは ( 正則表現, Regular Expression) オートマトン : 言語を定義する機械 : 言語を記号列で定義 - 記述しやすい ( ユーザフレンドリ ) 例 :01 + 10 - UNIX の grep コマンド - UNIX の

More information

29

29 9 .,,, 3 () C k k C k C + C + C + + C 8 + C 9 + C k C + C + C + C 3 + C 4 + C 5 + + 45 + + + 5 + + 9 + 4 + 4 + 5 4 C k k k ( + ) 4 C k k ( k) 3 n( ) n n n ( ) n ( ) n 3 ( ) 3 3 3 n 4 ( ) 4 4 4 ( ) n n

More information

情報数理学

情報数理学 2007 年度 情報数理学 履修にあたって 2007 年度大学院奇数セメスター ( 前期 ) 開講 教室 : K336 大学院棟 D46( 次回から ) 時限 : 火曜日 3 時限 (2:50-4:20) 担当 草苅良至 2 講義予定 計算機のいろいろな理論モデル 言語理論 計算の限界 問題の難しさ 現実問題と計算 計算量理論 アルゴリズム論 3 参考書 M. Sipser 著 計算理論の基礎 共立出版

More information

文字列探索

文字列探索 文字列探索 平成 23 年 12 月 2 日 アルゴリズム論 9 回目 文字列探索 データベース ( 構造化データ ) キーを指定 そのキーを持つレコード検索 テキスト ( 非構造データ ) 検索したい文字の並び (string): パターン探査される文字列を含む情報 : テキスト 腕ずくの方法 KMP(Knuth-Morris-Pratt) 法 BM(Boyer-Moore) 法 腕ずくの方法 Patten

More information

PowerPoint Presentation

PowerPoint Presentation パターン認識入門 パターン認識 音や画像に中に隠れたパターンを認識する 音素 音節 単語 文 基本図形 文字 指紋 物体 人物 顔 パターン は唯一のデータではなく 似通ったデータの集まりを表している 多様性 ノイズ 等しい から 似ている へ ~ だ から ~ らしい へ 等しい から 似ている へ 完全に等しいかどうかではなく 似ているか どうかを判定する パターンを代表する模範的データとどのくらい似ているか

More information

C プログラミング演習 1( 再 ) 2 講義では C プログラミングの基本を学び 演習では やや実践的なプログラミングを通して学ぶ

C プログラミング演習 1( 再 ) 2 講義では C プログラミングの基本を学び 演習では やや実践的なプログラミングを通して学ぶ C プログラミング演習 1( 再 ) 2 講義では C プログラミングの基本を学び 演習では やや実践的なプログラミングを通して学ぶ 今回のプログラミングの課題 次のステップによって 徐々に難易度の高いプログラムを作成する ( 参照用の番号は よくわかる C 言語 のページ番号 ) 1. キーボード入力された整数 10 個の中から最大のものを答える 2. 整数を要素とする配列 (p.57-59) に初期値を与えておき

More information

Microsoft PowerPoint - 09re.ppt [互換モード]

Microsoft PowerPoint - 09re.ppt [互換モード] 3.1. 正則表現 3. 正則表現 : 正則表現 ( または正規表現 ) とは 文字列の集合 (= 言語 ) を有限個の記号列で表現する方法の 1 つ 例 : (01)* 01 を繰り返す文字列 つまり 0(0+1)* 0 の後に 0 か 1 が繰り返す文字列 (01)* = {,01,0101,010101,01010101, } 0(0+1)*={0,00,01,000,001,010,011,0000,

More information

ソフトウェア基礎 Ⅰ Report#2 提出日 : 2009 年 8 月 11 日 所属 : 工学部情報工学科 学籍番号 : K 氏名 : 當銘孔太

ソフトウェア基礎 Ⅰ Report#2 提出日 : 2009 年 8 月 11 日 所属 : 工学部情報工学科 学籍番号 : K 氏名 : 當銘孔太 ソフトウェア基礎 Ⅰ Report#2 提出日 : 2009 年 8 月 11 日 所属 : 工学部情報工学科 学籍番号 : 095739 K 氏名 : 當銘孔太 1. UNIX における正規表現とは何か, 使い方の例を挙げて説明しなさい. 1.1 正規表現とは? 正規表現 ( 正則表現ともいう ) とは ある規則に基づいて文字列 ( 記号列 ) の集合を表す方法の 1 つです ファイル名表示で使うワイルドカードも正規表現の兄弟みたいなもの

More information

Microsoft PowerPoint - 1.ppt [互換モード]

Microsoft PowerPoint - 1.ppt [互換モード] 第 回オートマトンと正規表現 8//5( 火 ) 履修にあたって 8 年度情報数理学 8 年度大学院奇数セメスター ( 前期 ) 開講教室 : K6 大学院棟 D6( 次回から ) 担当 時限 : 火曜日 時限 (:5-:) 草苅良至 講義予定 計算機のいろいろな理論モデル言語理論 計算の限界計算量理論 問題の難しさ 現実問題と計算アルゴリズム論 参考書. Sipser 著 計算理論の基礎 共立出版

More information

Microsoft PowerPoint - 05.pptx

Microsoft PowerPoint - 05.pptx アルゴリズムとデータ構造第 5 回 : データ構造 (1) 探索問題に対応するデータ構造 担当 : 上原隆平 (uehara) 2015/04/17 アルゴリズムとデータ構造 アルゴリズム : 問題を解く手順を記述 データ構造 : データや計算の途中結果を蓄える形式 計算の効率に大きく影響を与える 例 : 配列 連結リスト スタック キュー 優先順位付きキュー 木構造 今回と次回で探索問題を例に説明

More information

* ライブラリ関数 islower(),toupper() を使ったプログラム 1 /* 2 Program : trupper.c 3 Student-ID : K 4 Author : TOUME, Kouta 5 Comments : Used Library function i

* ライブラリ関数 islower(),toupper() を使ったプログラム 1 /* 2 Program : trupper.c 3 Student-ID : K 4 Author : TOUME, Kouta 5 Comments : Used Library function i 1. ライブラリ関数 islower(), toupper() を使い 下記の trlowup プログラムを書き換えて 新規に trupper プログラムを作成せよ * サンプルプログラム 1 /* 2 Program : trlowup.c 3 Comments : translate lower case characters into upper case ones. 4 */ 5 6 #include

More information

<4D F736F F F696E74202D208FEE95F1926D8EAF836C F815B834E93C1985F817595B68E9A97F18FC68D B A E

<4D F736F F F696E74202D208FEE95F1926D8EAF836C F815B834E93C1985F817595B68E9A97F18FC68D B A E 北海道大学 Hokkido University 情報知識ネットワーク特論 情報検索とパターン照合 情報科学研究科コンピュータサイエンス専攻情報知識ネットワーク研究室 喜田拓也 25// 第 2 回 Prefix 型アルゴリズム Nïve アルゴリズム KMP アルゴリズム Aho-Corsick アルゴリズム Shift-And/Or アルゴリズム 参考文献 :Felxile Pttern Mtching

More information

Microsoft PowerPoint - 3.ppt [互換モード]

Microsoft PowerPoint - 3.ppt [互換モード] 3. プッシュダウンオートマトンと文脈自由文法 1 3-1. プッシュダウンオートマトン オートマトンはメモリがほとんど無かった この制限を除いた機械を考える 理想的なスタックを利用できるようなオートマトンをプッシュダウンオートマトン (Push Down Automaton,PDA) という 0 1 入力テープ 1 a 1 1 0 1 スタッb 入力テープを一度走査したあと ク2 入力テプを度走査したあと

More information

Microsoft PowerPoint - Compiler03note.pptx

Microsoft PowerPoint - Compiler03note.pptx コンパイラ 第 3 回字句解析 決定性有限オートマトンの導出 http://www.no.knd.c.jp/compler 38 号館 4 階 N4 内線 5459 tks@no.knd.c.jp コンパイラの構造 字句解析系 構文解析系 制約検査系 中間コード生成系 最適化系 目的コード生成系 処理の流れ情報システムプロジェクト I の場合 output (); 字句解析系 output ( 変数名

More information

Microsoft PowerPoint - Compiler03.pptx

Microsoft PowerPoint - Compiler03.pptx コンパイラ 第 3 回字句解析 決定性有限オートマトンの導出 http://www.info.kindi.c.jp/compiler 38 号館 4 階 N-411 内線 5459 tksi-i@info.kindi.c.jp コンパイラの構造 字句解析系 構文解析系 制約検査系 中間コード生成系 最適化系 目的コード生成系 処理の流れ 情報システムプロジェクト I の場合 write (); 字句解析系

More information

Microsoft PowerPoint - prog03.ppt

Microsoft PowerPoint - prog03.ppt プログラミング言語 2 第 03 回 (2007 年 05 月 07 日 ) 今日の配布物 片面の用紙 1 枚 今日の課題が書かれています 本日の出欠を兼ねています 1 今日やること hp://www.nlab.ice.uec.ac.jp/~s-okubo/class/language/ にアクセスすると 教材があります 2007 年 05 月 07 日分と書いてある部分が 本日の教材です 本日の内容

More information

5_motif 公開版.ppt

5_motif 公開版.ppt 配列モチーフ 機能ドメイン 機能部位 機能的 構造的に重要な部位 は進化の過程で保存 される傾向がある 進化的に保存された ドメイン 配列モチーフ 機能ドメイン中の特徴的な 保存配列パターン マルチプルアライメント から抽出 配列モチーフの表現方法 パターン プロファイル 2 n n n n n n n n ENCODE n PROSITE パターンの例 n C-x(2,4)-C-x(3)-[LIVMFYWC]-x(8)-H-x(3,5)-H.

More information

オートマトンと言語

オートマトンと言語 オートマトンと言語 回目 4 月 8 日 ( 水 ) 章 ( 数式の記法, スタック,BNF 記法 ) 授業資料 http://ir.cs.yamanashi.ac.jp/~ysuzuki/public/automaton/ 授業の予定 ( 中間試験まで ) 回数月日 内容 4 月 日オートマトンとは, オリエンテーション 4 月 8 日 章 ( 数式の記法, スタック,BNF) 3 4 月 5 日

More information

PowerPoint Template

PowerPoint Template プログラミング演習 Ⅲ Linked List P. Ravindra S. De Silva e-mail: ravi@cs.tut.ac.jp, Room F-413 URL: www.icd.cs.tut.ac.jp/~ravi/prog3/index_j.html 連結リストとは? 一つひとつの要素がその前後の要素との参照関係をもつデータ構造 A B C D 連結リストを使用する利点 - 通常の配列はサイズが固定されている

More information

始めに, 最下位共通先祖を求めるための関数 LcaDFS( int v ) の処理を記述する. この関数は値を返さない再帰的な void 関数で, 点 v を根とする木 T の部分木を深さ優先探索する. 整数の引数 v は, 木 T の点を示す点番号で, 配列 NodeSpace[ ] へのカーソル

始めに, 最下位共通先祖を求めるための関数 LcaDFS( int v ) の処理を記述する. この関数は値を返さない再帰的な void 関数で, 点 v を根とする木 T の部分木を深さ優先探索する. 整数の引数 v は, 木 T の点を示す点番号で, 配列 NodeSpace[ ] へのカーソル 概略設計書 作成者築山修治作成日 2012 年 10 月 1 日 概要 ( どのような入力に対して, どのような出力をするかの概要説明 ) * 木 T および質問点対の集合 P が与えられたとき, 各質問点対 p = (v,w) P の最下位共通先祖 ( すなわち木 T において点 v と w の共通の先祖 a で,a の真の子孫には v と w の共通の先祖が無いような点 ) を見出す関数である.

More information

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション プログラミング応用演習 第 5 回演習 前回までのお話 ポインタ ポインタを用いた文字列処理 構造体 ファイル 再帰的構造体 リスト構造 動的メモリ管理 今日のお題 ポインタやファイルなど これまでの内容の練習 教材 以前 以下に単語を収録したファイルがあることを紹介した : /usr/share/dict/words この中からランダムに単語を取り出したファイルを用意した http://sun.ac.jp/prof/yamagu/2019app/

More information

Microsoft PowerPoint - 5Chap15.ppt

Microsoft PowerPoint - 5Chap15.ppt 第 15 章文字列処理 今日のポイント 15.1 文字列処理の基本 strcpy strcat strlen strchr などの使い方をマスターする strcpy はなんて読むの? 普通はストリングコピー C のキーワードの読み方に悩んだら下記サイトを参考 ( 前回紹介とは別サイト ) http://www.okakogi.go.jp/people/miwa/program/c_lang/c_furoku.html

More information

Microsoft Word - no103.docx

Microsoft Word - no103.docx 次は 数える例です ex19.c /* Zeller の公式によって 1 日の曜日の分布を求めるプログラム */ int year, month, c, y, m, wnumber, count[7] = {0, i; for(year = 2001; year

More information

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション 天下一プログラマーコンテスト 2014 決勝解説 AtCoder 株式会社代表取締役 高橋直大 2014/9/8 1 A 問題塙さん 1. 問題概要 2. アルゴリズム 2014/9/8 AtCoder Inc. All rights reserved. 2 A 問題問題概要 正の整数 X の h 進数での表現が以下の条件を満たすとき X は塙さんであるという 同じ文字の出現回数は n 回以下である

More information

スライド 1

スライド 1 知識情報演習 Ⅲ( 後半第 3 回 ) 辻慶太 http://slis.sakura.ne.jp/cje3 1 索引付けの手順概要 ( 復習 ) (1) 索引語の候補の抽出 文字バイグラム, 単語, フレーズなど (2) 不要語の削除 (3) 接辞処理 (4) 索引語の重み付け 検索手法 ( 検索モデル ) によっては不要例えば, 論理式によるブーリアンモデルでは不要 (5) 索引ファイルの編成 stopword.prl

More information

zz + 3i(z z) + 5 = 0 + i z + i = z 2i z z z y zz + 3i (z z) + 5 = 0 (z 3i) (z + 3i) = 9 5 = 4 z 3i = 2 (3i) zz i (z z) + 1 = a 2 {

zz + 3i(z z) + 5 = 0 + i z + i = z 2i z z z y zz + 3i (z z) + 5 = 0 (z 3i) (z + 3i) = 9 5 = 4 z 3i = 2 (3i) zz i (z z) + 1 = a 2 { 04 zz + iz z) + 5 = 0 + i z + i = z i z z z 970 0 y zz + i z z) + 5 = 0 z i) z + i) = 9 5 = 4 z i = i) zz i z z) + = a {zz + i z z) + 4} a ) zz + a + ) z z) + 4a = 0 4a a = 5 a = x i) i) : c Darumafactory

More information

I II

I II I II I I 8 I I 5 I 5 9 I 6 6 I 7 7 I 8 87 I 9 96 I 7 I 8 I 9 I 7 I 95 I 5 I 6 II 7 6 II 8 II 9 59 II 67 II 76 II II 9 II 8 II 5 8 II 6 58 II 7 6 II 8 8 I.., < b, b, c, k, m. k + m + c + c b + k + m log

More information

PowerPoint Presentation

PowerPoint Presentation パターン認識入門 今回の話題 : パターン認識 長大な列 ( 例えば文章 ) から興味深い部分 ( 例えばある文字列を含む部分 ) を取り出したい ある文字列を含む web ページを抽出 プログラム中の特定の関数の呼び出しを DNA から面白そうな塩基配列を 例えば特定の塩基をたくさん含む場所を スパムメールの識別 B-CAS だけでなく B-C@S なども検出したい 2 簡単なパターン認識 : 文字列検索

More information

ボルツマンマシンの高速化

ボルツマンマシンの高速化 1. はじめに ボルツマン学習と平均場近似 山梨大学工学部宗久研究室 G04MK016 鳥居圭太 ボルツマンマシンは学習可能な相互結合型ネットワー クの代表的なものである. ボルツマンマシンには, 学習のための統計平均を取る必要があり, 結果を求めるまでに長い時間がかかってしまうという欠点がある. そこで, 学習の高速化のために, 統計を取る2つのステップについて, 以下のことを行う. まず1つ目のステップでは,

More information

Microsoft PowerPoint - 5.ppt [互換モード]

Microsoft PowerPoint - 5.ppt [互換モード] 5. チューリングマシンと計算 1 5-1. チューリングマシンとその計算 これまでのモデルでは テープに直接書き込むことができなかった また 入力テープヘッドの操作は右方向だけしか移動できなかった これらの制限を取り除いた機械を考える このような機械をチューリングマシン (Turing Machine,TM) と呼ぶ ( 実は TMは 現実のコンピュータの能力を持つ ) TM の特徴 (DFA との比較

More information

Microsoft PowerPoint - DA2_2019.pptx

Microsoft PowerPoint - DA2_2019.pptx Johnon のアルゴリズム データ構造とアルゴリズム IⅠ 第 回最大フロー 疎なグラフ, 例えば E O( V lg V ) が仮定できる場合に向いている 隣接リスト表現を仮定する. 実行時間は O( V lg V + V E ). 上記の仮定の下で,Floyd-Warhall アルゴリズムよりも漸近的に高速 Johnon のアルゴリズム : アイデア (I) 辺重みが全部非負なら,Dikra

More information

memo

memo 計数工学プログラミング演習 ( 第 4 回 ) 2016/05/10 DEPARTMENT OF MATHEMATICA INFORMATICS 1 内容 リスト 疎行列 2 連結リスト (inked ists) オブジェクトをある線形順序に並べて格納するデータ構造 単方向連結リスト (signly linked list) の要素 x キーフィールド key ポインタフィールド next x->next:

More information

今回のプログラミングの課題 ( 前回の課題で取り上げた )data.txt の要素をソートして sorted.txt というファイルに書出す ソート (sort) とは : 数の場合 小さいものから大きなもの ( 昇順 ) もしくは 大きなものから小さなもの ( 降順 ) になるよう 並び替えること

今回のプログラミングの課題 ( 前回の課題で取り上げた )data.txt の要素をソートして sorted.txt というファイルに書出す ソート (sort) とは : 数の場合 小さいものから大きなもの ( 昇順 ) もしくは 大きなものから小さなもの ( 降順 ) になるよう 並び替えること C プログラミング演習 1( 再 ) 4 講義では C プログラミングの基本を学び 演習では やや実践的なプログラミングを通して学ぶ 今回のプログラミングの課題 ( 前回の課題で取り上げた )data.txt の要素をソートして sorted.txt というファイルに書出す ソート (sort) とは : 数の場合 小さいものから大きなもの ( 昇順 ) もしくは 大きなものから小さなもの ( 降順

More information

Taro-ビット処理(公開版).jtd

Taro-ビット処理(公開版).jtd 0. 目次 1. ビット演算 1. 1 論理積 論理和 排他的論理和 1. 2 左シフト 右シフト 2. ビット列操作 2. 1 char 型変数の表示 2. 2 int 型変数の表示 2. 3 int 型変数のビット数 2. 4 ビット単位の設定 3. 課題 3. 1 文字の詰め込みと取り出し 3. 2 ビット反転 3. 3 巡回シフト - 1 - 1. ビット演算 つぎのビット演算を使って ビット単位の処理ができる

More information

< F2D837C E95CF CF68A4A94C5816A2E6A>

< F2D837C E95CF CF68A4A94C5816A2E6A> 0. 目次 6. ポインタ変数と文字処理 6. 1 文字 6. 2 文字列定数 6. 3 文字列 6. 4 文字列配列 7. ポインタ変数と関数 8. 問題 7. 1 引数とポインタ変数 7. 1. 1 変数が引数の場合 7. 1. 2 ポインタ変数が引数の場合 7. 2 引数と配列 7. 3 戻り値とポインタ変数 問題 1 問題 2-1 - 6. ポインタ変数と文字処理 6. 1 文字 文字の宣言

More information

スライド 1

スライド 1 知識情報演習 Ⅲ( 後半第 3 回 ) 辻慶太 http://slis.sakura.ne.jp/cje3 1 索引付けの手順概要 ( 復習 ) (1) 索引語の抽出 文字バイグラム, 単語, フレーズなど (2) 不要語の削除 (3) 接辞処理 (4) 索引語の重み付け 検索手法 ( 検索モデル ) によっては不要例えば, 論理式によるブーリアンモデルでは不要 (5) 索引ファイルの編成 extract.prl

More information

Microsoft PowerPoint - ca ppt [互換モード]

Microsoft PowerPoint - ca ppt [互換モード] 大阪電気通信大学情報通信工学部光システム工学科 2 年次配当科目 コンピュータアルゴリズム 良いアルゴリズムとは 第 2 講 : 平成 20 年 10 月 10 日 ( 金 ) 4 限 E252 教室 中村嘉隆 ( なかむらよしたか ) 奈良先端科学技術大学院大学助教 y-nakamr@is.naist.jp http://narayama.naist.jp/~y-nakamr/ 第 1 講の復習

More information

構造化プログラミングと データ抽象

構造化プログラミングと データ抽象 計算の理論 後半第 3 回 λ 計算と型システム 本日の内容 λ 計算の表現力 ( 前回の復習 ) データの表現 不動点演算子と再帰 λ 計算の重要な性質 チャーチ ロッサー性 簡約戦略 型付き λ 計算 ブール値 組 ブール値と組の表現 true, false を受け取り 対応する要素を返す関数 として表現 T = λt.λf.t F = λt.λf.f if e 1 then e 2 else

More information

文字列照合アルゴリズム

文字列照合アルゴリズム 講義 情報知識ネットワーク特論 ~ 情報検索とパターン照合 第 2 回 Prefix 型アルゴリズム 情報理工学専攻情報知識ネットワーク研究室喜田拓也 講義資料 27//22 今日の内容 Nïve アルゴリズム KMP アルゴリズム Aho-Corsick アルゴリズム Shift-And/Or アルゴリズム 参考文献 :Felxile Pttern Mtching in Strings, Gonzlo

More information

プログラミング基礎

プログラミング基礎 C プログラミング Ⅱ 演習 2-1(a) BMI による判定 文字列, 身長 height(double 型 ), 体重 weight (double 型 ) をメンバとする構造体 Data を定義し, それぞれのメンバの値をキーボードから入力した後, BMI を計算するプログラムを作成しなさい BMI の計算は関数化すること ( ) [ ] [ ] [ ] BMI = 体重 kg 身長 m 身長

More information

all.dvi

all.dvi 38 5 Cauchy.,,,,., σ.,, 3,,. 5.1 Cauchy (a) (b) (a) (b) 5.1: 5.1. Cauchy 39 F Q Newton F F F Q F Q 5.2: n n ds df n ( 5.1). df n n df(n) df n, t n. t n = df n (5.1) ds 40 5 Cauchy t l n mds df n 5.3: t

More information

アルゴリズムとデータ構造

アルゴリズムとデータ構造 講義 アルゴリズムとデータ構造 第 2 回アルゴリズムと計算量 大学院情報科学研究科情報理工学専攻情報知識ネットワーク研究室喜田拓也 講義資料 2018/5/23 今日の内容 アルゴリズムの計算量とは? 漸近的計算量オーダーの計算の方法最悪計算量と平均計算量 ポイント オーダー記法 ビッグオー (O), ビッグオメガ (Ω), ビッグシータ (Θ) 2 お風呂スケジューリング問題 お風呂に入る順番を決めよう!

More information

さくらの個別指導 ( さくら教育研究所 ) 1 φ = φ 1 : φ [ ] a [ ] 1 a : b a b b(a + b) b a 2 a 2 = b(a + b). b 2 ( a b ) 2 = a b a/b X 2 X 1 = 0 a/b > 0 2 a

さくらの個別指導 ( さくら教育研究所 ) 1 φ = φ 1 : φ [ ] a [ ] 1 a : b a b b(a + b) b a 2 a 2 = b(a + b). b 2 ( a b ) 2 = a b a/b X 2 X 1 = 0 a/b > 0 2 a φ + 5 2 φ : φ [ ] a [ ] a : b a b b(a + b) b a 2 a 2 b(a + b). b 2 ( a b ) 2 a b + a/b X 2 X 0 a/b > 0 2 a b + 5 2 φ φ : 2 5 5 [ ] [ ] x x x : x : x x : x x : x x 2 x 2 x 0 x ± 5 2 x x φ : φ 2 : φ ( )

More information

Microsoft PowerPoint - 13approx.pptx

Microsoft PowerPoint - 13approx.pptx I482F 実践的アルゴリズム特論 13,14 回目 : 近似アルゴリズム 上原隆平 (uehara@jaist.ac.jp) ソートの下界の話 比較に基づく任意のソートアルゴリズムはΩ(n log n) 時間の計算時間が必要である 証明 ( 概略 ) k 回の比較で区別できる場合の数は高々 2 k 種類しかない n 個の要素の異なる並べ方は n! 通りある したがって少なくとも k n 2 n!

More information

Microsoft Word - 3new.doc

Microsoft Word - 3new.doc プログラミング演習 II 講義資料 3 ポインタ I - ポインタの基礎 1 ポインタとは ポインタとはポインタは, アドレス ( データが格納されている場所 ) を扱うデータ型です つまり, アドレスを通してデータを間接的に処理します ポインタを使用する場合の, 処理の手順は以下のようになります 1 ポインタ変数を宣言する 2 ポインタ変数へアドレスを割り当てる 3 ポインタ変数を用いて処理 (

More information

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション プログラミング応用演習 第 2 回文字列とポインタ 先週のパズルの解説 答え : 全部 p a 1 図の書き方 : p+1 は式であって その値を格納する記憶場所を考えないので 四角で囲まない 2 p+1 同じものを表すいろいろな書き方をしてみましたが パズル以上の意味はありません プログラム中に書くときは p+1 が短くていいんじゃないかな p+1 は 2 の記憶場所 p[1] は 2 に格納されている値

More information

A Constructive Approach to Gene Expression Dynamics

A Constructive Approach to Gene Expression Dynamics 配列アラインメント (I): 大域アラインメント http://www.lab.tohou.ac.jp/sci/is/nacher/eaching/bioinformatics/ week.pdf 08/4/0 08/4/0 基本的な考え方 バイオインフォマティクスにはさまざまなアルゴリズムがありますが その多くにおいて基本的な考え方は 配列が類似していれば 機能も類似している というものである 例えば

More information

情報処理Ⅰ

情報処理Ⅰ Java フローチャート -1- フローチャート ( 流れ図 ) プログラムの処理手順 ( アルゴリズム ) を図示したもの 記号の種類は下記のとおり 端子記号 ( 開始 終了 ) 処理記号計算, 代入等 条件の判定 条件 No ループ処理 LOOP start Yes データの入力 出力 print など 定義済み処理処理名 end サンプルグログラム ( 大文字 小文字変換 ) 大文字を入力して下さい

More information

基礎プログラミング2015

基礎プログラミング2015 応用プログラミング 第 5 回 テキスト入力処理 2017 年 10 月 18 日 ( 水 ) 第 7 章 テキスト入力処理 1 文字ずつの処理 (P.58) char 型などに入力する cin >> x や fin >> x はホワイトスペースが読み飛ばされる仕様 ホワイトスペース : スペース ( 空白 ), Tab( タブ ), 改行 // sample.cpp char ch; while(cin

More information

Microsoft PowerPoint - mp11-06.pptx

Microsoft PowerPoint - mp11-06.pptx 数理計画法第 6 回 塩浦昭義情報科学研究科准教授 shioura@dais.is.tohoku.ac.jp http://www.dais.is.tohoku.ac.jp/~shioura/teaching 第 5 章組合せ計画 5.2 分枝限定法 組合せ計画問題 組合せ計画問題とは : 有限個の もの の組合せの中から, 目的関数を最小または最大にする組合せを見つける問題 例 1: 整数計画問題全般

More information

<4D F736F F D20438CBE8CEA8D758DC F0939A82C282AB2E646F63>

<4D F736F F D20438CBE8CEA8D758DC F0939A82C282AB2E646F63> C 言語講座第 2 回 作成 : ハルト 前回の復習基本的に main () の中カッコの中にプログラムを書く また 変数 ( int, float ) はC 言語では main() の中カッコの先頭で宣言する 1 画面へ出力 printf() 2 キーボードから入力 scanf() printf / scanf で整数を表示 / 入力 %d 小数を表示 / 入力 %f 3 整数を扱う int 型を使う

More information

プレポスト【解説】

プレポスト【解説】 コース名 : シェルの機能とプログラミング ~UNIX/Linux の効率的使用を目指して ~ 1 UNIX および Linux の主な構成要素は シェル コマンド カーネルです プロセスとは コマンドやプログラムを実行する単位のことなので プロセスに関する記述は誤りです UNIX および Linux のユーザーインターフェースは シェル です コマンドを解釈するという機能から コマンドインタープリタであるともいえます

More information

生命情報学

生命情報学 生命情報学 5 隠れマルコフモデル 阿久津達也 京都大学化学研究所 バイオインフォマティクスセンター 内容 配列モチーフ 最尤推定 ベイズ推定 M 推定 隠れマルコフモデル HMM Verアルゴリズム EMアルゴリズム Baum-Welchアルゴリズム 前向きアルゴリズム 後向きアルゴリズム プロファイル HMM 配列モチーフ モチーフ発見 配列モチーフ : 同じ機能を持つ遺伝子配列などに見られる共通の文字列パターン

More information

<4D F736F F F696E74202D2088C38D86979D985F82D682CC8FB591D22E >

<4D F736F F F696E74202D2088C38D86979D985F82D682CC8FB591D22E > 08/05/17 IISEC オープンキャンパス模擬授業 (08/06/18 改訂 ) 暗号理論への招待 擬似乱数の話 情報セキュリティ大学院大学有田正剛 0 はじめに 暗号理論の対象 擬似乱数 擬似ランダム関数 一方向性関数 共通鍵暗号 公開鍵暗号 MAC デジタル署名 暗号プロトコル ( 鍵共有 コミットメント ) セキュアシステム / サービス ( 電子投票 オークション ) 暗号理論の目標

More information

コンピュータリテラシ 第 6 回表計算 2 このスライド 例題 /reidai6.xlsx /reidai6a.xlsx 課題 12 /reidai6b.xlsx /table12_13.xlsx

コンピュータリテラシ 第 6 回表計算 2 このスライド 例題   /reidai6.xlsx /reidai6a.xlsx 課題 12 /reidai6b.xlsx /table12_13.xlsx コンピュータリテラシ 第 6 回表計算 2 このスライド 例題 http://cobayasi.com/jm/6th/6th.pdf /reidai6.xlsx /reidai6a.xlsx 課題 12 /reidai6b.xlsx /table12_13.xlsx 今日の学習要点 ( テキスト P152-167) IF 関数の使い方 IF 関数による条件判定 複合条件による判定 順位付け (RANK.EQ)

More information

2-1 / 語問題 項書換え系 4.0. 準備 (3.1. 項 代入 等価性 ) 定義 3.1.1: - シグネチャ (signature): 関数記号の集合 (Σ と書く ) - それぞれの関数記号は アリティ (arity) と呼ばれる自然数が定められている - Σ (n) : アリ

2-1 / 語問題 項書換え系 4.0. 準備 (3.1. 項 代入 等価性 ) 定義 3.1.1: - シグネチャ (signature): 関数記号の集合 (Σ と書く ) - それぞれの関数記号は アリティ (arity) と呼ばれる自然数が定められている - Σ (n) : アリ 2-1 / 32 4. 語問題 項書換え系 4.0. 準備 (3.1. 項 代入 等価性 ) 定義 3.1.1: - シグネチャ (signature): 関数記号の集合 (Σ と書く ) - それぞれの関数記号は アリティ (arity) と呼ばれる自然数が定められている - Σ (n) : アリティ n を持つ関数記号からなる Σ の部分集合 例 : 群 Σ G = {e, i, } (e Σ

More information

プログラミング方法論 II 第 14,15 回 ( 担当 : 鈴木伸夫 ) 問題 17. x 座標と y 座標をメンバに持つ構造体 Point を作成せよ 但し座標 は double 型とする typedef struct{ (a) x; (b) y; } Point; 問題 18. 問題 17 の

プログラミング方法論 II 第 14,15 回 ( 担当 : 鈴木伸夫 ) 問題 17. x 座標と y 座標をメンバに持つ構造体 Point を作成せよ 但し座標 は double 型とする typedef struct{ (a) x; (b) y; } Point; 問題 18. 問題 17 の プログラミング方法論 II 第 14,15 回 ( 担当 : 鈴木伸夫 ) 問題 17. x 座標と y 座標をメンバに持つ構造体 Point を作成せよ 但し座標 は double 型とする typedef struct{ (a) x; (b) y; Point; 問題 18. 問題 17 の Point を用いて 2 点の座標を入力するとその 2 点間の距 離を表示するプログラムを作成せよ 平方根は

More information

構造化プログラミングと データ抽象

構造化プログラミングと データ抽象 計算の理論 後半第 3 回 λ 計算と型システム 本日の内容 λ 計算の表現力 ( 前回のつづき ) 前回の復習 不動点演算子と再帰 λ 計算の重要な性質 チャーチ ロッサー性 簡約戦略 型付き λ 計算 ブール値 組 ブール値と組の表現 ( 復習 ) true, false を受け取り 対応する要素を返す関数 として表現 T = λt.λf.t F = λt.λf.f if e 1 then e

More information

Microsoft PowerPoint - mp13-07.pptx

Microsoft PowerPoint - mp13-07.pptx 数理計画法 ( 数理最適化 ) 第 7 回 ネットワーク最適化 最大流問題と増加路アルゴリズム 担当 : 塩浦昭義 ( 情報科学研究科准教授 ) hiour@di.i.ohoku.c.jp ネットワーク最適化問題 ( 無向, 有向 ) グラフ 頂点 (verex, 接点, 点 ) が枝 (edge, 辺, 線 ) で結ばれたもの ネットワーク 頂点や枝に数値データ ( 距離, コストなど ) が付加されたもの

More information

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション コンパイラとプログラミング言語 第 3 4 週 プログラミング言語の形式的な記述 2014 年 4 月 23 日 金岡晃 授業計画 第 1 週 (4/9) コンパイラの概要 第 8 週 (5/28) 下向き構文解析 / 構文解析プログラム 第 2 週 (4/16) コンパイラの構成 第 9 週 (6/4) 中間表現と意味解析 第 3 週 (4/23) プログラミング言語の形式的な記述 第 10 週

More information

48 * *2

48 * *2 374-1- 17 2 1 1 B A C A C 48 *2 49-2- 2 176 176 *2 -3- B A A B B C A B A C 1 B C B C 2 B C 94 2 B C 3 1 6 2 8 1 177 C B C C C A D A A B A 7 B C C A 3 C A 187 187 C B 10 AC 187-4- 10 C C B B B B A B 2 BC

More information

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション プログラミング応用演習 第 4 回再帰的構造体 前回の出席確認演習 #include int main() { FILE *fp; int c, linecount, length, maxlength; fp=fopen("/usr/share/dict/words","r"); if (fp == NULL) return 1; linecount=0; length=0;

More information

データ構造

データ構造 アルゴリズム及び実習 3 馬青 1 バブルソート 考え方 : 隣接する二つのデータを比較し データの大小関係が逆のとき 二つのデータの入れ替えを行って整列を行う方法である 2 バブルソートの手順 配列 a[0],a[1],,a[n-1] をソートする場合 ステップ 1: 配列 a[0] と a[1],a[1] と a[2],,a[n-2] と a[n-1] と となり同士を比較 ( 大小が逆であれば

More information

4 月 東京都立蔵前工業高等学校平成 30 年度教科 ( 工業 ) 科目 ( プログラミング技術 ) 年間授業計画 教科 :( 工業 ) 科目 :( プログラミング技術 ) 単位数 : 2 単位 対象学年組 :( 第 3 学年電気科 ) 教科担当者 :( 高橋寛 三枝明夫 ) 使用教科書 :( プロ

4 月 東京都立蔵前工業高等学校平成 30 年度教科 ( 工業 ) 科目 ( プログラミング技術 ) 年間授業計画 教科 :( 工業 ) 科目 :( プログラミング技術 ) 単位数 : 2 単位 対象学年組 :( 第 3 学年電気科 ) 教科担当者 :( 高橋寛 三枝明夫 ) 使用教科書 :( プロ 4 東京都立蔵前工業高等学校平成 30 年度教科 ( 工業 ) 科目 ( プログラミング技術 ) 年間授業計画 教科 :( 工業 ) 科目 :( プログラミング技術 ) 単位数 : 2 単位 対象学年組 :( 第 3 学年電気科 ) 教科担当者 :( 高橋寛 三枝明夫 ) 使用教科書 :( プログラミング技術 工業 333 実教出版 ) 共通 : 科目 プログラミング技術 のオリエンテーション プログラミング技術は

More information

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション プログラミング初級 第 7 回 2017 年 5 月 29 日 配列 ( 復習 )~ 文字列 1 配列とは 2 配列 : 複数の変数をグループとしてまとめて扱うもの 配列 変数 int data[10]; 整数型の配列 同種のデータ型を連続して確保したものを配列とよぶ = 整数がそれぞれにひとつずつ入る箱を 10 個用意したようなもの int data; 整数型の変数 = 整数がひとつ入る dataという名前の箱を用意したようなもの

More information

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション 多分岐選択 条件式 If Then Else IIF Select Switch 今日の目的 Dim n As Long n = 10 If n = 10 Then 条件式 Debug.Print ゆっくりしていってね! End If 比較演算子 その他 よく使用する演算子 文字列型にたいする条件式 条件式 オブジェクト型 バリアント型に対する条件式 比較演算子 = 等しい 等しくない >=

More information

Microsoft Word ã‡»ã…«ã‡ªã…¼ã…‹ã…žã…‹ã…³ã†¨åłºæœ›å•¤(佒芤喋çfl�)

Microsoft Word ã‡»ã…«ã‡ªã…¼ã…‹ã…žã…‹ã…³ã†¨åłºæœ›å•¤(佒芤喋çfl�) Cellulr uo nd heir eigenlues 東洋大学総合情報学部 佐藤忠一 Tdzu So Depren o Inorion Siene nd rs Toyo Uniersiy. まえがき 一次元セルオ-トマトンは数学的には記号列上の行列の固有値問題である 固有値問題の行列はふつう複素数体上の行列である 量子力学における固有値問題も無限次元ではあるが関数環上の行列でその成分は可換環である

More information

[Problem D] ぐらぐら 一般に n 個の物体があり i 番目の物体の重心の x 座標を x i, 重さを w i とすると 全体の n 重心の x 座標と重さ w は x = ( x w ) / w, w = w となる i= 1 i i n i= 1 i 良さそうな方法は思いつかなかった

[Problem D] ぐらぐら 一般に n 個の物体があり i 番目の物体の重心の x 座標を x i, 重さを w i とすると 全体の n 重心の x 座標と重さ w は x = ( x w ) / w, w = w となる i= 1 i i n i= 1 i 良さそうな方法は思いつかなかった [Problem D] ぐらぐら 一般に n 個の物体があり 番目の物体の重心の x 座標を x, 重さを w とすると 全体の n 重心の x 座標と重さ w は x = ( x w ) / w, w = w となる = n = 良さそうな方法は思いつかなかった アイデア募集中!!! ので 少し強引に解いている 入力データの読み込みは w と h を scanf で読み込み getchar でその行の行末コードを読み込み

More information

スライド 1

スライド 1 Keal H. Sahn A R. Crc: A dual teperature sulated annealng approach for solvng blevel prograng probles Coputers and Checal Engneerng Vol. 23 pp. 11-251998. 第 12 回論文ゼミ 2013/07/12( 金 ) #4 M1 今泉孝章 2 段階計画問題とは

More information

Microsoft PowerPoint - DA2_2017.pptx

Microsoft PowerPoint - DA2_2017.pptx // データ構造とアルゴリズム IⅠ 第 回単一始点最短路 (II)/ 全点対最短路 トポロジカル ソート順による緩和 トポロジカル ソート順に緩和 閉路のない有向グラフ限定 閉路がないならトポロジカル ソート順に緩和するのがベルマン フォードより速い Θ(V + E) 方針 グラフをトポロジカル ソートして頂点に線形順序を与える ソート順に頂点を選び, その頂点の出辺を緩和する 各頂点は一回だけ選択される

More information

Java講座

Java講座 ~ 第 1 回 ~ 情報科学部コンピュータ科学科 2 年竹中優 プログラムを書く上で Hello world 基礎事項 演算子 構文 2 コメントアウト (//, /* */, /** */) をしよう! インデントをしよう! 変数などにはわかりやすい名前をつけよう! 要するに 他人が見て理解しやすいコードを書こうということです 3 1. Eclipse を起動 2. ファイル 新規 javaプロジェクト

More information

プログラミング入門1

プログラミング入門1 プログラミング入門 1 第 5 回 繰り返し (while ループ ) 授業開始前に ログオン後 不要なファイルを削除し て待機してください Java 1 第 5 回 2 参考書について 参考書は自分にあったものをぜひ手元において自習してください 授業の WEB 教材は勉強の入り口へみなさんを案内するのが目的でつくられている これで十分という訳ではない 第 1 回に紹介した本以外にも良書がたくさんある

More information

データ構造

データ構造 アルゴリズム及び実習 7 馬青 1 表探索 定義表探索とは 表の形で格納されているデータの中から条件に合ったデータを取り出してくる操作である 但し 表は配列 ( 連結 ) リストなどで実現できるので 以降 表 の代わりに直接 配列 や リスト などの表現を用いる場合が多い 表探索をただ 探索 と呼ぶ場合が多い 用語レコード : 表の中にある個々のデータをレコード (record) と呼ぶ フィールド

More information

4-4 while 文 for 文と同様 ある処理を繰り返し実行するためのものだが for 文と違うのは while 文で指定するのは 継続条件のみであるということ for 文で書かれた左のプログラムを while 文で書き換えると右のようになる /* 読込んだ正の整数値までカウントアップ (for

4-4 while 文 for 文と同様 ある処理を繰り返し実行するためのものだが for 文と違うのは while 文で指定するのは 継続条件のみであるということ for 文で書かれた左のプログラムを while 文で書き換えると右のようになる /* 読込んだ正の整数値までカウントアップ (for 4-4 while 文 for 文と同様 ある処理を繰り返し実行するためのものだが for 文と違うのは while 文で指定するのは 継続条件のみであるということ for 文で書かれた左のプログラムを while 文で書き換えると右のようになる /* 読込んだ正の整数値までカウントアップ (for 文 ) */ int i, no; for (i = 0; i

More information

Microsoft PowerPoint - exp2-02_intro.ppt [互換モード]

Microsoft PowerPoint - exp2-02_intro.ppt [互換モード] 情報工学実験 II 実験 2 アルゴリズム ( リスト構造とハッシュ ) 実験を始める前に... C 言語を復習しよう 0. プログラム書ける? 1. アドレスとポインタ 2. 構造体 3. 構造体とポインタ 0. プログラム書ける? 講義を聴いているだけで OK? 言語の要素技術を覚えれば OK? 目的のプログラム? 要素技術 データ型 配列 文字列 関数 オブジェクト クラス ポインタ 2 0.

More information

(37564) Python@HACHINONE Simple 3 1 VPython 2014 2 VPython 22017 91 Python 3.5 2 x x ans01 ans**3x ans**3x ans +1 3 # -*- coding: utf-8 -*- # 完全立方に対する立方根を求める x = int(raw_input(' 整数を入力してください :')) ans =

More information

このルールをそのまま正規表現として書くと 下記のようになります ^A[0-9]{2}00[0-9]{3}([0-9]{2})?$ ちょっと難しく見えるかもしれませんが 下記のような対応になっています 最初 固定 年度 固定 通番 ( 枝番 ) 最後 ルール "A" 数字 2 桁 0 を 2 桁 数字

このルールをそのまま正規表現として書くと 下記のようになります ^A[0-9]{2}00[0-9]{3}([0-9]{2})?$ ちょっと難しく見えるかもしれませんが 下記のような対応になっています 最初 固定 年度 固定 通番 ( 枝番 ) 最後 ルール A 数字 2 桁 0 を 2 桁 数字 正規表現について 作成日 : 2016/01/21 作成者 : 西村 正規表現? 正規表現 (Regular Expression Regex) というと難しいもののように感じますが 正規表現 というのは 文字のパターンを表したもの です ( 例 ) これはソエルで使用している見積書の番号です A1500033 この番号は 下記のルールで付けられています 固定 年度 固定 通番 ( 枝番 ) ルール

More information

NLMIXED プロシジャを用いた生存時間解析 伊藤要二アストラゼネカ株式会社臨床統計 プログラミング グループグルプ Survival analysis using PROC NLMIXED Yohji Itoh Clinical Statistics & Programming Group, A

NLMIXED プロシジャを用いた生存時間解析 伊藤要二アストラゼネカ株式会社臨床統計 プログラミング グループグルプ Survival analysis using PROC NLMIXED Yohji Itoh Clinical Statistics & Programming Group, A NLMIXED プロシジャを用いた生存時間解析 伊藤要二アストラゼネカ株式会社臨床統計 プログラミング グループグルプ Survival analysis using PROC NLMIXED Yohji Itoh Clinical Statistics & Programming Group, AstraZeneca KK 要旨 : NLMIXEDプロシジャの最尤推定の機能を用いて 指数分布 Weibull

More information

C#の基本2 ~プログラムの制御構造~

C#の基本2 ~プログラムの制御構造~ C# の基本 2 ~ プログラムの制御構造 ~ 今回学ぶ事 プログラムの制御構造としての単岐選択処理 (If 文 ) 前判定繰り返し処理(for 文 ) について説明を行う また 整数型 (int 型 ) 等の組み込み型や配列型についても解説を行う 今回作るプログラム 入れた文字の平均 分散 標準偏差を表示するプログラム このプログラムでは calc ボタンを押すと計算を行う (value は整数に限る

More information

Microsoft Word - 13

Microsoft Word - 13 担当 : 富井尚志 (tommy@ynu.ac.jp) アルゴリズムとデータ構造 講義日程 1. 基本的データ型 2. 基本的制御構造 3. 変数のスコープルール. 関数 4. 配列を扱うアルゴリズムの基礎 (1). 最大値, 最小値 5. 配列を扱うアルゴリズムの基礎 (2). 重複除去, 集合演算, ポインタ 6. ファイルの扱い 7. 整列 (1). 単純挿入整列 単純選択整列 単純交換整列

More information

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション プログラミング応用演習 第 2 回文字列とポインタ 先週のパズルの解説 答え : 全部 p a 1 図の書き方 : p+1 は式であって その値を格納する記憶場所を考えないので 四角で囲まない 2 p+1 同じものを表すいろいろな書き方をしてみましたが パズル以上の意味はありません プログラム中に書くときは p+1 が短くていいんじゃないかな p+1 は 2 の記憶場所 p[1] は 2 に格納されている値

More information

LCM,GCD LCM GCD..,.. 1 LCM GCD a b a b. a divides b. a b. a, b :, CD(a, b) = {d a, b }, CM(a, b) = {m a, b }... CM(a, b). q > 0, m 1, m 2 CM

LCM,GCD LCM GCD..,.. 1 LCM GCD a b a b. a divides b. a b. a, b :, CD(a, b) = {d a, b }, CM(a, b) = {m a, b }... CM(a, b). q > 0, m 1, m 2 CM LCM,GCD 2017 4 21 LCM GCD..,.. 1 LCM GCD a b a b. a divides b. a b. a, b :, CD(a, b) = {d a, b }, CM(a, b) = {m a, b }... CM(a, b). q > 0, m 1, m 2 CM(a, b) = m 1 + m 2 CM(a, b), qm 1 CM(a, b) m 1, m 2

More information

Microsoft Word - VBA基礎(3).docx

Microsoft Word - VBA基礎(3).docx 上に中和滴定のフローチャートを示しました この中で溶液の色を判断する部分があります このような判断はプログラムではどのように行うのでしょうか 判断に使う命令は IF 文を使います IF は英語で もし何々なら という意味になります 条件判断条件判断には次の命令を使います If 条件式 1 Then ElseIf 条件式 2 Then ElseIf 条件式 3 Then 実行文群 1 実行文群 2 実行文群

More information

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション 003.10.3 003.10.8 Y 1 0031016 B4(4 3 B4,1 M 0 C,Q 0. M,Q 1.- MQ 003/10/16 10/8 Girder BeamColumn Foundation SlabWall Girder BeamColumn Foundation SlabWall 1.-1 5mm 0 kn/m 3 0.05m=0.5 kn/m 60mm 18 kn/m

More information

Information Theory

Information Theory 前回の復習 講義の概要 chapter 1: 情報を測る... エントロピーの定義 確率変数 X の ( 一次 ) エントロピー M H 1 (X) = p i log 2 p i (bit) i=1 M は実現値の個数,p i は i 番目の実現値が取られる確率 実現値 確率 表 裏 0.5 0.5 H 1 X = 0.5 log 2 0.5 0.5log 2 0.5 = 1bit 1 練習問題の解答

More information

関数の呼び出し ( 選択ソート ) 選択ソートのプログラム (findminvalue, findandreplace ができているとする ) #include <stdiu.h> #define InFile "data.txt" #define OutFile "surted.txt" #def

関数の呼び出し ( 選択ソート ) 選択ソートのプログラム (findminvalue, findandreplace ができているとする ) #include <stdiu.h> #define InFile data.txt #define OutFile surted.txt #def C プログラミング演習 1( 再 ) 6 講義では C プログラミングの基本を学び 演習では やや実践的なプログラミングを通して学ぶ 関数の呼び出し ( 選択ソート ) 選択ソートのプログラム (findminvalue, findandreplace ができているとする ) #include #define InFile "data.txt" #define OutFile "surted.txt"

More information

Microsoft PowerPoint - w5.pptx

Microsoft PowerPoint - w5.pptx CS 第 1 レポート課題 3 コンピュータ サイエンス第 1 クラスCS4a 担当 : 真野 2017.10.25 課題 暗号解読に挑戦 本日の講義内容 教科書 5.3 1. 暗号通信とは 2. 関数, サブルーチン暗号 3. レポート課題 3( 予告 ) - 課題の説明 - 解読法のヒント 4. 現代の暗号通信方法 宿題 教科書 5.3 1. 暗号通信 暗号通信の基本的な流れ 送信者 通信文を見られても,

More information

Microsoft PowerPoint - 4.pptx

Microsoft PowerPoint - 4.pptx while 文 (1) 繰り返しの必要性 while の形式と動作 繰り返しにより平 根を求める ( 演習 ) 繰り返しにより 程式の解を求める ( 課題 ) Hello. をたくさん表示しよう Hello. を画面に 3 回表示するには, 以下で OK. #include int main() { printf("hello. n"); printf("hello. n");

More information

アルゴリズム入門

アルゴリズム入門 アルゴリズム入門 第 11 回 ~ パターン認識 (1)~ 情報理工学系研究科 創造情報学専攻 中山英樹 1 今日の内容 パターン認識問題の 1 つ : アラインメント アルゴリズム 再帰 動的計画法 2 パターン認識 音や画像の中に隠れたパターンを認識する 音素 音節 単語 文 基本図形 文字 指紋 物体 人物 顔 パターン は唯一のデータではなく 似通ったデータの集まりを表している 多様性 ノイズ

More information