1. STEAM.fm
  2. 本はばらばらに収納する方が効..

皆さんは本をどのように収納していますか?探しやすいように五十音順?コンピューターは本のリストを格納するときに,五十音順ではなくあえてばらばらにします.その方が圧倒的に速く検索できるからなんです.今週はそんな「ハッシュ法」をご紹介します.

ニュースレターはこちらから👉 https://steam.theletter.jp/

 

00:00
[音楽]
市ですおはようございますこのポッドキャストは僕が毎週お送りしているニュースレター
スティームニュースの音声版ですスティームニュースでは科学技術工学アート数学に関する話題をお届けしています
スティームニュースはスティームボート乗組員のご協力でお送りしています
[音楽]
[音楽]
[音楽]
[音楽]
[音楽]
改めまして市ですこのエピソードは2022年10月13日に収録しています
このエピソードではスティームニュース第99号から本はバラバラに収納する方が効率的という話題でお届けします
皆さんの手元にもし100冊の本があったとしたら どのように本棚に並べていかれるでしょうか
本の色や大きさで並べ替えたり 内容が関連する順番にしてみたり
タイトルや筆者の50音順で並べたりいろんな並べ方が考えられますよね
本の並びを考えるのは目的の本を素早く見つけるためです
中にはインテリアとしてねこの色の順番に並べた方がとかこの背の高さを揃えた方がっていうこともあるのかもしれないのですが
今は実用性だけを考えていきたいと思います
ここで問題を簡単にするために本のタイトルから本の位置を見つけることだけを考えます
もし本がランダムに並んでいたとすると目的の本は端から順番に探していくことになります
例えばハリーポッターと賢者の石を探すとすると左端からハリーと呪文を唱えながら本のタイトルを確認していく必要があります
もし本が50音順に並べられているとするとある程度は当たりをつけることができますよね
人間ならハリーだからこの辺りかなというふうに見当をつけてその前後を探すことになります
03:06
これを計算機科学ではエイヤって言うんですよ
いやこれ僕の周辺だけかもしれないんですけれどもそれはエイヤで探そうかとかねそんな風な言い方をします
コンピューターなら順番に並んでいる本のタイトルから棚の位置を見つけるには二分探索というアルゴリズムを使います
二分探索というアルゴリズムではまず本棚の50番目の本のタイトルを調べます
50番目というのは100冊の本の中の真ん中ということですね
で調べてみるとそうですね「な」から始まる本、絵本の「なんだなんだ」があったとしましょう
これあの冗談で言ってるわけじゃなくて本当にね「なんだなんだ」っていう絵本があるんです
コンピューターは次に今ハリーポッター探してますから「は」と「な」を比べて
「は」は「な」よりも先にあるので探す場所を先へ進めるわけですね
どのぐらい先へ進めるのか今50冊目を調べて「なんだなんだ」だったので
次は50冊目と100冊目の中間、つまり75冊目を調べます
25冊ジャンプしたわけですね
こうして移動距離を半分ずつに狭めていって目的の本を探します
最初は50冊ジャンプして真ん中の本を調べました
次は25冊ジャンプして半分の半分の距離を探しに行ったわけですね
さらにその次は半分の半分の半分、12冊か13冊かジャンプして探すということになります
そこそこめんどくさいように感じられるのですが
これ非常に高速なアルゴリズムなんです
もし1000冊の本が本棚に並んでいても
10回以内の探索でお目当ての本が見つかります
これ面白いことに冊数を1万冊にしても
14回以内の探索で必ず見つかります
これすごいですよね
人間は本の並びをある程度は同時に見ることができますし
多少エイヤーもできるんですが
冊数が1000冊1万冊にもなるともはやこれは誤差の範囲ということですので
06:02
この二分探索というアルゴリズム、大変入りにかなったものになってきます
ただし、本棚に本を収納する時に実はもっといい方法があるんです
これ意外にも本を並べるんじゃなくて
本をばらまくという方法なんです
タイトルから本を探索するということを
うんと抽象化して考えると
タイトルから本の位置を求めるということになります
つまりタイトルが与えられると
本の位置がわかるような関係を求めることになります
これあの文字で書くとタイトル矢印本の位置
矢印は右矢印ですね
タイトル右矢印本の位置という風な数式で書くことができるわけです
計算機科学者はこの矢印の上に小さくHという風にアルファベットを書いて
この関係に名前をつけることを好みます
この場合はHという関係があるよという風に表すんですね
ここらへんはですね
メールでお送りしているニュースレターの方に文字で説明していますので
こちらまた無料でね読んでいただけるので
メールアドレスを登録してみていただければなと思うのですが
タイトル右矢印H本の位置という関係を数式で書くことができます
これ全く同じことを高校数学で関数F(X)みたいに習いませんでしたかね
その高校数学と全く同じ書き方で本の位置=関数H(タイトル)というような書き方もすることがあります
このHのことを数学者は関数という風に呼ぶわけですね
でここから少し大胆な想像をします
もしも関係Hがあらかじめ決められていたなら
本を探す必要がなくなるんです
ハリーポッターと賢者の石が本棚のどこにあるかを知りたければ
関数H(X)のXのところにハリーポッターと賢者の石って入れたらいいんです
09:02
H(ハリーポッターと賢者の石)
もちろんこれ高校数学でこんな書き方習わないですけれども
計算機科学コンピューターサイエンスではこういう書き方許されています
H(ハリーポッターと賢者の石)
じゃあそんな都合のいい関数Hってあるんでしょうかという話なんですけれども
もちろんあります
そのような関数を一般的にハッシュ関数という風に呼びます
ハッシュというのはアメリカ料理ハッシュブラウンのハッシュです
マクドナルドの朝マックとかにありますよね
ハッシュブラウン、ハッシュドポテトという風に呼んだりもしますよね
同じものです
じゃがいもを細切りにして混ぜて油で揚げたお料理いいですよね
ハッシュ関数を使ってハリーポッターと賢者の石を本棚に収納するとしてみましょう
ハリーポッターと賢者の石というタイトルの一文字一文字をまず文字コードに置き換えます
文字コードというのは文字をコンピューターに覚えさせるための番号です
ハ、ハリーポッターのハですねこれ文字コード
まあ近代的なコンピューターでは12495という数字を割り当てています
ハリーポッターのリーは12522です
これタイトルの文字すべて並べるとちょっと多いので途中省略しますが12495、12522、12540、12539、ほにゃららほにゃららという風になっていきます
そしてこの数字を全部足し合わせると224,443になります
もし本棚の幅が無限にあればハリーポッターと賢者の石を224,443番目のスロットに収めれば良いのですが
今考えている本棚は100冊収納ですから下二桁を使って43番目のスロットに収納することとします
つまりH(ハリーポッターと賢者の石)=43なんです
この関数Hがハッシュ関数の一種ということになります
ハッシュ関数を使って本を収納することをハッシュ法という風に呼びます
ハッシュ法で本を収納するときは本棚に隙間ができるからといって詰め込んだりはしません
きっちり43番目の位置にハリーポッターと賢者の石を置きます
12:07
計算機は人間よりもはるかに計算が得意ですから
ハリーポッターと賢者の石と聞いた瞬間に224,443と計算できます
そして下二桁を使って本棚の43番スロットを見に行きます
こうすればただの一度も探し回ることなくいきなり目的の本にたどり着けるんです
こんな方法を使っていたらいつかスロットの取り合いが起こるのではないかと思われるかもしれません
しかし我々は経験上スロットの取り合いが起こりにくいことを知っています
例えばハリーポッターと秘密の部屋は6番のスロットに入ります
ハリーポッターとあずか番の囚人は95番スロットに入ります
そして絵本なんだなんだは66番のスロットに入ります
ハッシュ関数を使って本を本棚に入れていくには少し広めの本棚が必要になります
その代わり本が何万冊になろうと何億冊になろうと一瞬で探し当てることができるんです
それでも万が一棚の取り合いが起こったらどうするんだと気になる方
計算機科学の才能があります
ぜひ衝突あるいはコリジョンという単語をネットで調べてみてください
ハッシュ関数はこのようにタイトルの文字を切り刻んで混ぜこぜにして数値化するので
ハッシュブラウンのハッシュなんですね
コンピューターにとっては順番に並んだ本よりも
ハッシュ法を使ってばら撒かれた本の方が見つけやすいというお話でした
中にはね部屋をわざと散らかしているという方もリスナーの中にいらっしゃるかもしれません
きっとね頭の中にハッシュ関数が入っているんで
そこは誇りに思っていただいてもいいんじゃないかなと思います
というわけでこのエピソードでは計算機科学コンピューターサイエンスの中でも
必ずね大学1年生とかで使うハッシュ法についてご紹介をさせていただきました
この番組の後半であの少しね雑談めいたことを喋っていこうと思っているんですが
あのスティームニュースの第66号これメールでお送りしている方の第66号で
15:04
音声版だとこれエピソード52にあたるのですが
アメン神殿の塩が変えるかもしれないエネルギーの未来っていうね
エピソードがあったんですけれどもそのエピソードの中で
シルフィウムというね植物についてお話をさせていただいています
シルフィウムというのは古代ローマのね幻の植物で
調味料であったりとか薬草であったりとか結構ね謎に包まれた植物なんですね
非常にあの重宝された植物なんですがこれがなんとですね再発見されたかもしれないというニュースが
いくつか出回ってでナショナルジオグラフィック日本語版にも記事が出ました
スティームニュース第99号では冒頭でねこのニュースへのリンクを貼っていますので
そこらへんもあの関心のある方は是非ねリンクを踏んでナショナルジオグラフィック見に行っていただけると
あの大変興味深かったですあの実際にね料理されている方とかがインタビューで答えられていて
こんな味みたいなこともね言われていたのですごい面白かったですぜひね読んでいただければなと思います
スティームニュースではですね毎週特命の質問も募集をしていますあの特命質問箱へのねリンクを貼らせていただいているんですが
そちらから質問をね受け付けていますで今週いただいた質問の中でエジプトでは何を食べましたかというねご質問いただきました
あの先週先々週と海外に出ていましてちょうど先々週お送りした時が
エジプトだったんですねエジプトのアレクサンドリアにいましたで先週はですねイギリスのロンドンにいたんですが
両方ともなんかこうめちゃくちゃ忙しくてまともにご飯を食べてなかったんですよ
その現地のローカルレストランにはもちろん行く時間がなくてファーストフードにも行く時間がほぼなくてですね一番ひどかった時は水と
アリナミンAでなんとか持ちこたえていたというか持たせていた日々がありました
ただまあラッキーなことにアレクサンドリアから日本に帰る途中にすぐ時間空き時間ができまして
18:00
古い仲間とカイロでエジプト料理をね食べることができました美味しかったです
僕の大好きなタヒーナというこれはゴマペーストなんですけれどもこれをあのアエシというエジプトのパンにつけてね食べる
ゴマパンなんでしょうかねそれからモロヘイヤスープ
ナスのトマト煮込みなんかねあのまあ僕も大概年なのであんまりねあの肉、肉しいものが胃が受け付けなくなってきて
今回の旅ではねお野菜中心に食べてきましたとってもね美味しかったです
ロンドンではもっと悲惨でですねあのどこかのタイミングでパブとかによってビールとフィッシュ&チップスをつまみたいななんて野望を抱いてはいたのですが
もう全くですねそのタイミングがなくて
唯一ですね美味しいものに当たったなぁと思ったのが紅茶でした
ただ紅茶もねそのまあ著名ブランドの紅茶ではなくてもう安宿に置いてあるような
ティーバッグの家庭用の紅茶だったんですがやはりねお水が硬いからなんでしょうかね
あの香水で紅茶を入れるとこれ結構ね美味しく出るんですよね
香水ってなんか例えば緑茶とか入れるともすごくまずくなってしまうんですけれども紅茶とはね相性が抜群にいいんでしょうね
まああんまり飲みすぎるとねあのひょっとしたら日本人だと腎臓
まあ日本人に限らないですかね東アジア人にとっては腎臓に負担がかかりすぎるかもしれないかなと思うので
そのたくさんは飲んでないですが紅茶はねものすごく美味しく飲むことができましたあとまあビスケットも美味しいですよね
あとですね日本でビールというとラガービールという種類これあのキリンラガーという商品名ではなくて
ビールのジャンルとしてのラガーという種類が一般的によく飲まれているのですが
僕はあのエールビールっていうもう一種類のビールですねこれ表面発酵させて作るビールなんですが
まあイギリスではエールっていう風にね呼びますよねこのエールが大好きで
これだけは飲んで帰ろうと思っていたので最後空港で結構いい感じにあのエールを飲んで帰りました
僕ねあのインディアンペールエールっていうIPAっていう種類が好きなのですが
他にも何種類かちょっとずつ飲んで帰りました
21:04
日本国内でもあのエールいくつかね市販されていますし
僕の好きなヨナヨナとかもそうですよね
それからですね長崎の離島に域という島があるんですがこの域で
自ビール今ね作られているんですねこれめちゃくちゃね美味しいんですよ
アイランドブルワリーって言うんですけれども通販もねされています
こちらもねエールビールペールエールそれからあのインディアンペールエールも作られているので
こちらねあのよかったらネットで探して試しに注文してみてください
これ本当美味しいですあの僕も行きに行って飲むこともありますし
通販でね島から取り寄せたりもしています
なんか最後ねビールの話ばっかりになってしまいました
メールでお送りしているニュースデータの方では今週の書籍のコーナー
そして今週のテッドトークのコーナーもお送りしているのですが
今週の書籍ではなんとですねこんまりさん近藤麻里江さんの
人生がときめく片付けの魔法という本をご紹介しています
もう結構ね今更感があるんですが実はのこのニュースレター書くにあたって
改めてね僕も読み始めたんですあの読むの初めてなんです
英語で片付けるをね意味する近藤の語源になったこんまりさんですからね
ちゃんと読んでおかないといけないなと思って改めてね読み始めました
今週のテッドトークこれね3分ぐらいのとても短いテッドトークなんですが
ゴミ捨ての喜びというねタイトルのトークです
ただねあの聞いてみるとゴミ捨ての喜びというよりはむしろね
リユースの喜びという風なねタイトルの方が正しいのかなというようなね内容で
これ3分ぐらい日本語字幕もついているのでこちらもねよかったら見てください
とてもね印象的なトークでした
そしてですねこのメールでお送りしているsteamニュースそしてpodcaststeam.fmの方も
なんと今回が第99号ということで100回目にねリーチがかかりました
全然ね心の準備ができていないので何か特別なことはしないと思うのですが
これまで聞いてくださって本当にありがとうございました
また次のエピソードでお会いしましょう
24:03
♪~
♪~
♪~
♪~
♪~
♪~
♪~
♪~
♪~
♪~
♪~
(字幕視聴ありがとうございました)
24:58

コメント

スクロール