SlideShare a Scribd company logo
1 of 46
Download to read offline
情報科学への誘い

高校数学を学んできた諸君に
2005-06-15
国島丈生
自己紹介
• 知能メディア工学研究室(横田研究室)
助教授
• 情報通信工学演習I(1年次)・情報通信
工学実験B(2年次)
• 計算機言語I(2年次)
• コンパイラ・計算機言語II(3年次)
• 形式言語理論(修士1年次)
自己紹介
• 京都大学工学部情報工学科(今の情報学
部) (1989, M1991, D1994)
• 奈良先端科学技術大学院大学情報科学
研究科助手(1994~1997)
• 岡山県立大学助教授(1997~)
興味のある分野
• ソフトウェア技術
• 構造化文書(XML)処理技術
• データベース
• プログラミング言語
• WWW技術
今日の内容
• 高校数学から情報科学への橋渡し
• 自分の(大学時代の)経験をもとに
• 注意
• 私の経験が皆に役立つとは限らない
• 私≠皆さん、皆さんも全員違う人間
• 大学は(他の誰とも違う)自分を見
つけていく場
学科を選んだ理由
• 高校までコンピュータとは無縁
• 友達のコンピュータでゲームをした程
度
• 数学が好きだった
• 理学部数学科だと就職に困りそう
• {数理,情報}工学科の偏差値の高い方を
選択
友達のコンピュータ
メモリ2~16KB
どんな時代?
• 国産パソコン NEC PC-9801
• PC-9801VX01(1987年):CPU 8MHz,
HDDなし(FDのみ), 353,000円
• Windows なんぞ当然なし
• Sun3/60(4回生配属時に導入されたWS)
• CPU 20MHz, メモリ24MB
• 数百万円
実際のところは?
• 物理が結構必要だった…
• 電気回路・電子回路など
• 一般教養の数学は難しかった
• 専門でも高校数学の延長(微分とか積
分とか)は出てこなかった
• どちらかというとパズルみたい
• 成績は…Dは少なかったが、B/Cは結構
あったような?
後悔した?
• そうでもない
• もともとパズルっぽいものは好き
• 高校数学とは別物と考えれば、結構
おもしろい
• プログラムを書くのがおもしろい
• ただし本当におもしろいと思い出し
たのは4回生でUNIXに触れてから
結局
• 理論寄りの研究室に配属
• 講義で教授が気に入った
• ブール代数、アルゴリズム、論理設計
• でも研究室内ではアウトサイダー(ソ
フトウェア)
• その後ソフトウェア寄りの研究室に鞍
替え
未来は神のみぞ知る
• 研究者としては割と回り道をしている
• 有限オートマトン(B4~M2)
• データ工学、論理(D)
• HTML,WWW(助手)
• 関数型言語, Java, 形式言語(県立大)
• しかし
• すべてが今の興味の対象(XML)に関連
今にして思えば
• 情報工学の二面性
• 計算機科学
• コンピュータの構成に関する学問
• 物理現象が関わってくる
• 情報科学
• コンピュータ上で問題を解く学問
• 計算手順、アルゴリズム
車の両輪
• 情報技術者には両方の素養が必要
• プログラムが書ければええやん→否
• 問題の難しさを見極めなければいい
プログラムは書けない
• 計算手順(アルゴリズム)
• ハードウェアの制約
今、そして昔
• 昔…情報技術者はオールマイティ
• ハードウェアからソフトウェアまで
• 学べる程度の範囲だった
• 今は?
• カバーする範囲がとてつもなく広く
深くなった
• 学ぶ範囲はどんどん狭く(タコツボ化)
• 常識程度の知識はオールマイティであっ
てほしい
情報科学への橋渡し
• 結城浩「プログ
ラマの数学」
• ソフトバンク
社、2200円
本を読もう
• 時間のあるうちに
• インターネットに頼
るだけでは知識の底
が浅くなる
• 情報科学関係のお勧
め例
• コンピュータの名
著・古典100冊
(インプレス)
何が必要だった?
• 離散の世界の数学
• 0/1の代数(ブール代数)
• 集合、剰余系、場合の数、数学的帰
納法、数列、etc.
• 苦手だったんですけど→情報科学の
視点から、これから理解していけば
OK
問題
• 今日は日曜日です。100日後は何曜日?
• 1日後は月、2日後は火、…100日後は
火
• 今日は日曜日。1億日後は何曜日?
• とても数えられません
• 7の倍数日後はいつも日曜日。1億÷7
= 14285714 あまり 2。∴火曜日
問題
• 今日は日曜日。10100日後は何曜日?
• 10100なんてとても計算できません。7
で割った余りも計算できません
• 10nを7で割った余りを、n=1, 2, …で計
算してみよう
すると
• 100%7=1, 101%7=3, 102%7=2, 103%7=6,
104%7=4, 105%7=5, 106%7=1, 107%7=3, …
• %:余りを求める演算子
• nが1増えると、周期6で同じ数が出てく
る(1, 3, 2, 6, 4, 5) 周期7ではない!!
• 100 % 6 = 4 ∴木曜日
プログラムにすると
void nannyoubi(int n)
{
if (n%6 == 0) {
printf(“月曜日¥n”);
} else if (n%6 == 1) {
printf(“水曜日¥n”);
} else if (n%6 ==2) {
/* 以下省略 */
}
問題
生まれて2日経つと子を1匹産めるように
なり、それ以降は毎日子を1匹産むとい
う生き物がいる。
1日目に、生まれたての生き物を1匹も
らったとすると、11日目には全部で何匹
になっているか。
考え方
• n日目に生きている生き物は
• n-1日目までに生まれていた生き物
• n-2日目までに生まれていた生き物が
産んだ子供
• n日目の生き物の数をF(n)とすると
• F(n) = F(n-1) + F(n-2), F(1) = 1, F(2) = 1
• これに従って計算すると F(11) = 89
実は
• 有名な数列(フィ
ボナッチ数列)
• 一般項は複雑
• しかしプログラム
は漸化式そのもの
(再帰関数)
F(n) =
1
√
5
(
1 +
√
5
2
)n
+ (
1 −
√
5
2
)n
int F(int n)
{
if (n == 1 || n == 2) {
return 1;
} else {
return F(n-1)+F(n-2);
}
}
問題
川岸に、狼、山羊、キャベツをつれた人
がいる。川には船が一艘あるが、一度に
たかだか一つの荷物しか運べない。また、
狼と山羊(山羊とキャベツ)だけを川岸
に置いたまま人が離れると、狼(山羊)
が山羊(キャベツ)を食べてしまう。こ
のとき、すべての荷物を反対側の岸に運
ぶ最短手順を求めよ。
どうやって解こう?
• 最初は山羊を連れていくしかない
• ほかのものだと食べられてしまう
• 山羊を対岸に残し、人だけで戻ってく
るしかない
• 山羊を連れて帰ったら元に戻ってしま
う
• …
書き方を決める
• 人(P)、狼(W)、山羊(G)、キャベツ(C)
• 左岸にいるもの-右岸にいるもの
• 例:最初は PWGC-Φ
• Φ:何もいないことを表す
• 目標:PWGC-Φ から Φ-PWGC に至る
最短経路を示すこと
図にしてみると
PWGC-Φ WC-PG PWC-G
W-PGCC-PWG
WGP-CPGC-W
G-PWCPG-WCΦ-PWGC
G Φ
G Φ
G Φ
Φ
G
C
C
WW
G
GGG
W
WC
C
枝のラベル:
Pが対岸に運んだもの
結局
• 最短手順は2通り
• 最短手順以外の解が無数にある
• 実は
• 手順を示した図=有限オートマトン
• 情報科学の基本概念の一つ
• 文字列検索、論理設計など
• 関連科目:離散数学、コンパイラ、
形式言語理論(大学院)
どう考えたのか
• 最初にできることは
• 狼を連れて行く→山羊とキャベツ…×
• 山羊を連れて行く
• キャベツだけ連れて行く→狼と山
羊…×
• 人だけ渡る→狼と山羊、山羊とキャ
ベツ…×
• 場合分けを繰り返す
局面の表現
• 各局面を「左岸にいるものの集合」「右
岸にいるものの集合」の2つで表現
• 船で荷物や人が移動=2つの集合の要素
が変化すること
• 移動中の状況は無視
変数
• 高校数学と情報科学で最も変わるもの
• 高校数学での変数とは
• 未知数:方程式や不等式
• 数の抽象化:関数
• プログラム(特にCなど)の変数とは
• 値を保持する「器」
• プログラムの実行に伴い値が書き換
えられる
例:自動販売機
• 飲み物1, 飲み物2, …の価格 p1, p2, …
• 飲み物1,飲み物2,…が買えるか b1,b2,…(ランプのon/off)
• 投入金額 n
• 硬貨を投入するたび
• n が増える
• n ≧ pk なら bk を on に
• 飲み物kを購入したら
• n - pk > 0 なら n - pk を釣り銭に
難しく言うと
• 変数p1, p2, …, b1, b2, …, n:ある瞬間の自
動販売機の状態を表している
• 硬貨の投入/飲み物の購入によって、
自動販売機の状態が変化
• つまり
• 変数の値の変化=プログラムの実行
なぜこんな使い方を?
• 演習Iのレポートの復習
• CPUはメモリ(HDD)上のデータを
読み出し、計算し、結果をメモリ
(HDD)に書き込む
• メモリ(HDD):0/1を保持する領域
の集まり
• 変数/アルゴリズム≒メモリ(HDD)/
CPU(フォン・ノイマン型計算機)
それでもなお
学生:「先生、分からないんですけど」
私:「アルゴリズムは分かるの?」
学生:「それは何となく分かります」
私:「そんなら、そのままプログラムに
すればええやん」
学生:「どうやってプログラムにしたら
いいかが分からないんです」
Algorithm = Program?
• 否
• Algorithm + Data Structure = Program

(by N.Wirth)
• プログラムには両方重要
• アルゴリズム(計算手順)
• それに適したデータ構造(変数、配
列、構造体etc.)…高校数学やパズル
にはまったくなかった部分
鍵はデータ構造
• 局面をどう表すか
• アルゴリズムの世界では…比較的自由
• 線形リスト、スタック、待ち行列、木、
二分木、配列、集合、…
• プログラムの世界では…単純、限定
• Cだと:変数、配列、構造体、…
• データ構造をいかに翻訳するかが鍵
• アルゴリズム⇔プログラムの翻訳はデー
タ構造の翻訳についてくる
諸君の健闘を祈る
レポート課題
• 以下の問題のうち1問以上を解いてレ
ポートにまとめよ。
• 6/21(火) 17:00までに2610に提出
• 用紙はA4が望ましい
• なるべく自分が知らなかった問題をやっ
てみること
問題1:ハノイの塔
台の上に3本の棒(左から順にA, B, C)が固
定されており、Aにn枚の円盤がはまって
いる。円盤は下に行くほど半径が大きく
なっている。次のルールを満たしながら、
円盤をすべてBに移すのに必要な手数をn
で表せ。
• 一度に一枚の円盤しか移動できない
• 移動の途中で円盤の大小を逆にして
はいけない
問題2
天国と地獄の分かれ道に2人の人がい
る。彼らはチャーチルとヒットラーであ
るが、どちらがどちらかは分からない。
チャーチルは、質問には必ず本当のこと
を答える。ヒットラーは必ず本当と反対
のことを答える。1回だけ質問をして、天
国への道を見分ける方法を考えよ。
問題3
問題2の変形として次の状況を考える。
このとき2回の質問で天国への道を見分
ける方法を考えよ。
• 分かれ道にいるのはチャーチル、ヒッ
トラー、スターリン。
• スターリンは本当と嘘(本当と反対のこ
と)をランダムに言う。
問題4
図のようにかかっている7本の橋を、次の条件
を満たしながらすべて渡りたい。渡れるなら手
順を示し、渡れないなら証明を述べよ。
• それぞれの橋は一度しか渡れない。
• それぞれの土地は何度通ってもよく、どこか
ら開始しても、どこで終わってもよい。開始
点と終了点が違っていてもかまわない。
将来に向けて
• どの問題も関連する講義がある
• 問題1:計算機言語I、情報通信工学
実験B(再帰)
• 問題2・3:人工知能(論理)
• 問題4:離散数学(グラフ理論)

More Related Content

Viewers also liked

Viewers also liked (11)

Presentation portfolio
Presentation portfolioPresentation portfolio
Presentation portfolio
 
คำสั่ง R2R เขตสุขภาพที่ 6
คำสั่ง  R2R เขตสุขภาพที่ 6คำสั่ง  R2R เขตสุขภาพที่ 6
คำสั่ง R2R เขตสุขภาพที่ 6
 
Presentation
PresentationPresentation
Presentation
 
Tics diapositivas
Tics diapositivasTics diapositivas
Tics diapositivas
 
Yatirim Proje Degerleme (2012)
Yatirim Proje Degerleme (2012)Yatirim Proje Degerleme (2012)
Yatirim Proje Degerleme (2012)
 
Cfc clp talk 7
Cfc clp talk 7Cfc clp talk 7
Cfc clp talk 7
 
The sangguniang barangay
The sangguniang barangayThe sangguniang barangay
The sangguniang barangay
 
Nagios core vs. nagios xi presentation power point.pptx [diperbaiki]
Nagios core vs. nagios xi presentation power point.pptx [diperbaiki]Nagios core vs. nagios xi presentation power point.pptx [diperbaiki]
Nagios core vs. nagios xi presentation power point.pptx [diperbaiki]
 
Flight Plan - The Real Secret of Success
Flight Plan - The Real Secret of SuccessFlight Plan - The Real Secret of Success
Flight Plan - The Real Secret of Success
 
Brian Tracy’s Top 11 Rules For Success
Brian Tracy’s Top 11 Rules For SuccessBrian Tracy’s Top 11 Rules For Success
Brian Tracy’s Top 11 Rules For Success
 
Kelas abad 21
Kelas abad 21Kelas abad 21
Kelas abad 21
 

More from Takeo Kunishima

20101004 研究室紹介(横田研)
20101004 研究室紹介(横田研)20101004 研究室紹介(横田研)
20101004 研究室紹介(横田研)
Takeo Kunishima
 
平成22年度情報通信工学実験IB実施資料
平成22年度情報通信工学実験IB実施資料平成22年度情報通信工学実験IB実施資料
平成22年度情報通信工学実験IB実施資料
Takeo Kunishima
 

More from Takeo Kunishima (20)

20080702フレッシュマンセミナー
20080702フレッシュマンセミナー20080702フレッシュマンセミナー
20080702フレッシュマンセミナー
 
20100615 フレッシュマンセミナー
20100615 フレッシュマンセミナー20100615 フレッシュマンセミナー
20100615 フレッシュマンセミナー
 
20070627フレッシュマンセミナー
20070627フレッシュマンセミナー20070627フレッシュマンセミナー
20070627フレッシュマンセミナー
 
フレッシュマンセミナー20060614
フレッシュマンセミナー20060614フレッシュマンセミナー20060614
フレッシュマンセミナー20060614
 
フレッシュマンセミナー (2004)
フレッシュマンセミナー (2004)フレッシュマンセミナー (2004)
フレッシュマンセミナー (2004)
 
20160723 オープンキャンパス資料
20160723 オープンキャンパス資料20160723 オープンキャンパス資料
20160723 オープンキャンパス資料
 
20160511 全学講義講演資料
20160511 全学講義講演資料20160511 全学講義講演資料
20160511 全学講義講演資料
 
20151224 吉備創生カレッジ第3回資料
20151224 吉備創生カレッジ第3回資料20151224 吉備創生カレッジ第3回資料
20151224 吉備創生カレッジ第3回資料
 
20151210 吉備創生カレッジ第2回資料
20151210 吉備創生カレッジ第2回資料20151210 吉備創生カレッジ第2回資料
20151210 吉備創生カレッジ第2回資料
 
20151126 吉備創生カレッジ第1回資料
20151126 吉備創生カレッジ第1回資料20151126 吉備創生カレッジ第1回資料
20151126 吉備創生カレッジ第1回資料
 
20150725 オープンキャンパス資料
20150725 オープンキャンパス資料20150725 オープンキャンパス資料
20150725 オープンキャンパス資料
 
20150603 全学講義講演資料
20150603 全学講義講演資料20150603 全学講義講演資料
20150603 全学講義講演資料
 
PCD作成手順
PCD作成手順PCD作成手順
PCD作成手順
 
PasQポスター
PasQポスターPasQポスター
PasQポスター
 
岡山県立大学オープンキャンパス資料
岡山県立大学オープンキャンパス資料岡山県立大学オープンキャンパス資料
岡山県立大学オープンキャンパス資料
 
20111102 研究室紹介(横田研)
20111102 研究室紹介(横田研)20111102 研究室紹介(横田研)
20111102 研究室紹介(横田研)
 
20101004 研究室紹介(横田研)
20101004 研究室紹介(横田研)20101004 研究室紹介(横田研)
20101004 研究室紹介(横田研)
 
平成22年度情報通信工学実験IB実施資料
平成22年度情報通信工学実験IB実施資料平成22年度情報通信工学実験IB実施資料
平成22年度情報通信工学実験IB実施資料
 
20091029 研究室紹介(横田研)
20091029 研究室紹介(横田研)20091029 研究室紹介(横田研)
20091029 研究室紹介(横田研)
 
20090925 HTML5の過去、現在、未来
20090925 HTML5の過去、現在、未来20090925 HTML5の過去、現在、未来
20090925 HTML5の過去、現在、未来
 

Recently uploaded

TokyoTechGraduateExaminationPresentation
TokyoTechGraduateExaminationPresentationTokyoTechGraduateExaminationPresentation
TokyoTechGraduateExaminationPresentation
YukiTerazawa
 
The_Five_Books_Overview_Presentation_2024
The_Five_Books_Overview_Presentation_2024The_Five_Books_Overview_Presentation_2024
The_Five_Books_Overview_Presentation_2024
koheioishi1
 

Recently uploaded (8)

生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料
生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料
生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料
 
2024年度 東京工業大学 工学院 機械系 大学院 修士課程 入試 説明会 資料
2024年度 東京工業大学 工学院 機械系 大学院 修士課程 入試 説明会 資料2024年度 東京工業大学 工学院 機械系 大学院 修士課程 入試 説明会 資料
2024年度 東京工業大学 工学院 機械系 大学院 修士課程 入試 説明会 資料
 
世界を変えるクレーンを生み出そう! 高知エンジニアリングキャンプ2024プログラム
世界を変えるクレーンを生み出そう! 高知エンジニアリングキャンプ2024プログラム世界を変えるクレーンを生み出そう! 高知エンジニアリングキャンプ2024プログラム
世界を変えるクレーンを生み出そう! 高知エンジニアリングキャンプ2024プログラム
 
次世代機の製品コンセプトを描く ~未来の機械を創造してみよう~
次世代機の製品コンセプトを描く ~未来の機械を創造してみよう~次世代機の製品コンセプトを描く ~未来の機械を創造してみよう~
次世代機の製品コンセプトを描く ~未来の機械を創造してみよう~
 
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
 
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学
 
TokyoTechGraduateExaminationPresentation
TokyoTechGraduateExaminationPresentationTokyoTechGraduateExaminationPresentation
TokyoTechGraduateExaminationPresentation
 
The_Five_Books_Overview_Presentation_2024
The_Five_Books_Overview_Presentation_2024The_Five_Books_Overview_Presentation_2024
The_Five_Books_Overview_Presentation_2024
 

フレッシュマンセミナー2005