組合せ爆発の対処



Similar documents
5after探索( )

PowerPoint Presentation

2016 年 度 情 報 リテラシー 三 科 目 合 計 の 算 出 関 数 を 用 いて 各 教 科 の 平 均 点 と 最 高 点 を 求 めることにする この2つの 計 算 は [ホーム]タブのコマ ンドにも 用 意 されているが 今 回 は 関 数 として 作 成 する まず 表 に 三 科

Microsoft Word - 第3章.doc

Microsoft PowerPoint - OS10.pptx

縦 計 横 計 をSUM 関 数 で 一 度 に 計 算 する 縦 横 の 合 計 を 表 示 するセルが 計 算 対 象 となる セルと 隣 接 している 場 合 は 一 度 に 合 計 を 求 め ることができます 1 計 算 対 象 となるセル 範 囲 と 合 計 を 表 示 する セル 範

2016 年 度 情 報 リテラシー 変 更 された 状 態 同 様 に 価 格 のセルを 書 式 設 定 する 場 合 は 金 額 のセルをすべて 選 択 し [ 書 式 ]のプルダウンメニューか ら[ 会 計 ]を 選 択 する すると が 追 加 され 金 額 としての 書 式 が 設 定 さ

KINGSOFT Office 2016 動 作 環 境 対 応 日 本 語 版 版 共 通 利 用 上 記 動 作 以 上 以 上 空 容 量 以 上 他 接 続 環 境 推 奨 必 要 2

<4D F736F F D B68F918DEC90AC89898F4B899E977095D2816A2E646F63>

1級 ワンポイント

SXF 仕 様 実 装 規 約 版 ( 幾 何 検 定 編 ) 新 旧 対 照 表 2013/3/26 文 言 変 更 p.12(1. 基 本 事 項 ) (5)SXF 入 出 力 バージョン Ver.2 形 式 と Ver.3.0 形 式 および Ver.3.1 形 式 の 入 出 力 機 能 を

10 期 末 現 在 の 資 本 金 等 の 額 次 に 掲 げる 法 人 の 区 分 ごとに それぞれに 定 める 金 額 を 記 載 します 連 結 申 告 法 人 以 外 の 法 人 ( に 掲 げる 法 人 を 除 きます ) 法 第 292 条 第 1 項 第 4 号 の5イに 定 める

Box-Jenkinsの方法

情報処理技能検定試験 表計算2級 手順書

ワープロソフトウェア

<4D F736F F D C97F195CF8AB DEC90E096BE8F912091E6312E313294C52E646F63>

続 に 基 づく 一 般 競 争 ( 指 名 競 争 ) 参 加 資 格 の 再 認 定 を 受 けていること ) c) 会 社 更 生 法 に 基 づき 更 生 手 続 開 始 の 申 立 てがなされている 者 又 は 民 事 再 生 法 に 基 づき 再 生 手 続 開 始 の 申 立 てがなさ

練 習 をはじめる 前 に... 3 試 験 前 にすること... 4 受 験 番 号 名 前 の 入 力... 4 試 験 本 番... 4 注 意 すること... 4 試 験 後 にすること... 5 解 答 の 印 刷... 5 数 式 印 刷 または 結 果 データの 保 存... 5 処

(Microsoft Word - Excel\211\236\227p2\217\315.docx)

練 習 をはじめる 前 に... 3 試 験 前 にすること... 4 受 験 番 号 名 前 の 入 力... 4 試 験 本 番... 4 注 意 すること... 4 試 験 後 にすること... 4 解 答 の 印 刷... 4 練 習 問 題... 5 処 理 手 順... 6 日 付 時

Ⅰ 調 査 の 概 要 1 目 的 義 務 教 育 の 機 会 均 等 その 水 準 の 維 持 向 上 の 観 点 から 的 な 児 童 生 徒 の 学 力 や 学 習 状 況 を 把 握 分 析 し 教 育 施 策 の 成 果 課 題 を 検 証 し その 改 善 を 図 るもに 学 校 におけ

Microsoft PowerPoint - 医用工学概論実習3.ppt [互換モード]

Microsoft Word - Jimdo基礎編(8版)

の 購 入 費 又 は 賃 借 料 (2) 専 用 ポール 等 機 器 の 設 置 工 事 費 (3) ケーブル 設 置 工 事 費 (4) 防 犯 カメラの 設 置 を 示 す 看 板 等 の 設 置 費 (5) その 他 設 置 に 必 要 な 経 費 ( 補 助 金 の 額 ) 第 6 条 補

(3) 小 単 元 の 指 導 と 評 価 の 計 画 小 単 元 第 11 章 税 のあらまし の 指 導 と 評 価 の 計 画 ( 四 次 確 定 申 告 制 度 抜 粋 ) 関 心 意 欲 態 度 思 考 判 断 技 能 表 現 知 識 理 解 小 単 元 の 評 価 規 準 税 に 関 す

の 基 礎 の 欄 にも 記 載 します ア 法 人 税 の 中 間 申 告 書 に 係 る 申 告 の 場 合 は 中 間 イ 法 人 税 の 確 定 申 告 書 ( 退 職 年 金 等 積 立 金 に 係 るものを 除 きます ) 又 は 連 結 確 定 申 告 書 に 係 る 申 告 の 場

計算式の取り扱い

. 負 担 調 整 措 置 8 (1) 宅 地 等 調 整 固 定 資 産 税 額 宅 地 に 係 る 固 定 資 産 税 額 は 当 該 年 度 分 の 固 定 資 産 税 額 が 前 年 度 課 税 標 準 額 又 は 比 準 課 税 標 準 額 に 当 該 年 度 分 の 価 格 ( 住 宅

PowerPoint プレゼンテーション

6. 共 有 等 に 係 る 固 定 資 産 の 判 定 3 共 有 に 係 る 固 定 資 産 については それぞれの 共 有 者 が 他 に 固 定 資 産 を 所 有 している 場 合 であっても その 資 産 とは 別 個 に 共 有 されている 固 定 資 産 を 別 の 人 格 が 所

平成21年9月29日

3 3 定 期 考 査 の 達 成 率 (F 列 )を 計 算 します 達 成 率 は 中 間 考 査 (D 列 )と 期 末 考 査 (E 列 ) の 点 数 の 合 計 を 中 間 考 査 と 期 末 考 査 の 最 高 点 の 合 計 で 割 っても とめます F11 のセルをクリッ クし =

1. 前 払 式 支 払 手 段 サーバ 型 の 前 払 式 支 払 手 段 に 関 する 利 用 者 保 護 等 発 行 者 があらかじめ 利 用 者 から 資 金 を 受 け 取 り 財 サービスを 受 ける 際 の 支 払 手 段 として 前 払 式 支 払 手 段 が 発 行 される 場 合


ていることから それに 先 行 する 形 で 下 請 業 者 についても 対 策 を 講 じることとしまし た 本 県 としましては それまでの 間 に 未 加 入 の 建 設 業 者 に 加 入 していただきますよう 28 年 4 月 から 実 施 することとしました 問 6 公 共 工 事 の

<4D F736F F D203193FA8AD45F95CA8E86325F89898F4B315F94F093EF8AA98D AD97DF914F82CC8FEE95F182CC8EFB8F C28E8B89BB2E646F63>

( 別 紙 ) 以 下 法 とあるのは 改 正 法 第 5 条 の 規 定 による 改 正 後 の 健 康 保 険 法 を 指 す ( 施 行 期 日 は 平 成 28 年 4 月 1 日 ) 1. 標 準 報 酬 月 額 の 等 級 区 分 の 追 加 について 問 1 法 改 正 により 追 加

TIPS - 棚 割 りを 開 始 するまで Liteを 起 動 し 企 業 情 報 の 追 加 を 行 い 棚 割 を 行 う 企 業 の 追 加 をして 下 さい 企 業 情 報 の 追 加 時 に エラーメッセージが 表 示 された 場 合 別 途 TIPS トラブルが 発 生 した 場 合

<4D F736F F D AC90D1955D92E CC82CC895E DD8C D2816A2E646F63>

第 4 部 数 値 表 現 による 思 考 表 1 関 数 関 数 名 称 表 記 意 味 合 計 =SUM(A2:A10) A2 から A10 までの 合 計 平 均 =AVERAGE(A2:A10) A2 から A10 までの 平 均 最 大 値 =MAX(A2:A10) A2 から A10 ま

2 県 公 立 高 校 の 合 格 者 は このように 決 まる (1) 選 抜 の 仕 組 み 選 抜 の 資 料 選 抜 の 資 料 は 主 に 下 記 の3つがあり 全 高 校 で 使 用 する 共 通 の ものと 高 校 ごとに 決 めるものとがあります 1 学 力 検 査 ( 国 語 数

1 変更の許可等(都市計画法第35条の2)

    平成11年度余市町私立幼稚園就園奨励費補助金交付要綱

Microsoft Word doc

Microsoft Word - Stattext05.doc

k_setumeikai_siryo

第4回税制調査会 総4-1

<4D F736F F D C82CC8AEE91625F87542D F9182AB8AB782A68CE32E646F63>

(5) 人 権 侵 害, 差 別 又 は 名 誉 毀 損 となるもの, 又 はおそれがあるもの (6) 他 人 を 誹 謗 し, 中 傷 し, 又 は 排 斥 するもの (7) 投 機 心, 射 幸 心 をあおるもの, 又 はそのおそれがあるもの (8) 内 容 が 虚 偽 誇 大 であるなど 過

(Microsoft Word - \215u\213`\203m\201[\203g doc)

Microsoft Word 役員選挙規程.doc

Microsoft Word - 03accessデータベース演習レジメ.doc

寄 附 申 込 書 平 成 年 月 日 一 般 社 団 法 人 滋 賀 県 発 明 協 会 会 長 清 水 貴 之 様 ご 住 所 ご 芳 名 ( 会 社 名 ) 印 下 記 により 貴 協 会 に 寄 附 を 申 し 込 みます 記 1. 寄 附 金 額 金 円 也 1. 寄 付 金 の 種 類

事 業 税 の 外 形 標 準 課 税 事 業 税 は 都 道 府 県 が 所 得 ( 利 益 )に 対 して 課 税 します 1. 個 人 事 業 税 業 種 区 分 税 率 ( 標 準 税 率 ) 第 1 種 事 業 ( 物 品 販 売 業 製 造 業 金 銭 貸 付 業 飲 食 店 業 不 動

Microsoft Word - 05_roumuhisaisoku

H25要綱本文

<4D F736F F D2091E F18CB48D C481698E7B90DD8F9590AC89DB816A2E646F63>

Microsoft Word - word_05.docx


数学

ひらがなを 入 力 する 濁 点 などを 入 力 する 漢 字 を 入 力 する 漢 字 に 変 換 する 一 度 入 力 した 文 字 の 再 変 換 は 全 角 半 角 文 字 を 切 り 替 える 文 章 を 入 力 し 漢 字 変 換 する 数 字 を 入 力 する 英 文 字 を 入 力

スライド 1

Microsoft Word 第1章 定款.doc

Taro-1-14A記載例.jtd

企業結合ステップ2に関連するJICPA実務指針等の改正について③・資本連結実務指針(その2)

untitled

年齢別人数計算ツールマニュアル

スライド 1

PowerPoint プレゼンテーション

(Microsoft Word - \215u\213`\203m\201[\203g doc)

Microsoft PowerPoint - QuickSender_2_0_JP.ppt

Word 003 スキルブック 06 - オブジェクトの 利 用 0.Word で 作 る 表 : 行 幅 を 最 小 値 より 小 さく 設 定 する 3 表 の 左 右 のサイズを 適 宜 調 整 します Word で 表 を 作 成 するとき, 列 幅, 行 幅 ともに 基 本 的 に 自 由

PowerPoint プレゼンテーション

( 別 途 調 査 様 式 1) 減 損 損 失 を 認 識 するに 至 った 経 緯 等 1 列 2 列 3 列 4 列 5 列 6 列 7 列 8 列 9 列 10 列 11 列 12 列 13 列 14 列 15 列 16 列 17 列 18 列 19 列 20 列 21 列 22 列 固 定

(1)1オールゼロ 記 録 ケース 厚 生 年 金 期 間 A B 及 びCに 係 る 旧 厚 生 年 金 保 険 法 の 老 齢 年 金 ( 以 下 旧 厚 老 という )の 受 給 者 に 時 効 特 例 法 施 行 後 厚 生 年 金 期 間 Dが 判 明 した Bは 事 業 所 記 号 が

加 算 税 制 度 の 見 直 し 等 1. 現 行 制 度 の 概 要 関 税 においては 国 税 ( 輸 入 貨 物 に 対 する 内 国 消 費 税 を 含 む 以 下 同 じ ) の 制 度 と 同 様 の 過 少 申 告 加 算 税 無 申 告 加 算 税 及 び 重 加 算 税 の 制

議会における政党のパワーを ゲーム理論から見ると?

賃 金 報 酬 給 与 とは ( 労 働 基 準 法 の 賃 金 ) ( 労 働 基 準 法 この 法 律 ) で 賃 金 とは 賃 金 給 料 手 当 賞 与 その 他 名 称 の 如 何 を 問 わず 労 働 の 対 償 として 使 用 者 が 労 働 者 に 支 払 うすべてのものをいう (

第 2 章 費 用 の 分 担 ( 収 入 金 ) 第 6 条 この 組 合 の 事 業 に 要 する 費 用 は 次 の 各 号 に 掲 げる 収 入 金 をもってこれに 充 てる 一 補 助 金 及 び 助 成 金 二 賦 課 金 三 保 留 地 の 処 分 金 四 法 120 条 第 1 項

は 共 有 名 義 )で 所 有 権 保 存 登 記 又 は 所 有 権 移 転 登 記 を された も の で あ る こと (3) 居 室 便 所 台 所 及 び 風 呂 を 備 え 居 住 の ために 使 用 す る 部 分 の 延 べ 床 面 積 が 5 0 平 方 メ ー ト ル 以 上

全設健発第     号

(2) 単 身 者 向 け 以 外 の 賃 貸 共 同 住 宅 等 当 該 建 物 に 対 して 新 たに 固 定 資 産 税 等 が 課 税 される 年 から 起 算 して5 年 間 とする ( 交 付 申 請 及 び 決 定 ) 第 5 条 補 助 金 の 交 付 を 受 けようとする 者 は

している 5. これに 対 して 親 会 社 の 持 分 変 動 による 差 額 を 資 本 剰 余 金 として 処 理 した 結 果 資 本 剰 余 金 残 高 が 負 の 値 となるような 場 合 の 取 扱 いの 明 確 化 を 求 めるコメントが 複 数 寄 せられた 6. コメントでは 親

1. 表 から 値 を 抽 出 する 説 明 1.1. 表 から 値 を 抽 出 するための 関 数 について 説 明 します LOOKUP VLOOKUP HLOOKUP 関 数 は 検 索 値 に 対 応 する 値 を 検 索 値 を 含 む 一 覧 表 から 抽 出 し てくれる 関 数 です

01_07_01 データのインポート_エクスポート_1

Microsoft Word - A04◆/P doc

面 を 保 佐 人 又 は 補 助 人 の 同 意 を 要 する 場 合 は 同 意 を 証 する 書 面 を 提 出 する ものとする 前 項 の 場 合 代 理 人 は 代 理 人 自 身 の 本 人 であることを 証 する 書 面 を 保 佐 人 及 び 補 助 人 は 株 主 本 人 の 保

注 雇 促 進 税 制 と 本 制 度 のどちらかを 利 する 可 能 性 があるが あらかじめどちらの 制 度 を 利 するか 判 断 できない という 場 合 雇 促 進 税 制 の 事 前 届 出 ( 雇 促 進 計 画 の 提 出 )をした 上 で 申 告 の 際 にどちらを 利 するかご

入札公告 機動装備センター

<4D F736F F D20819C486F70658F6F93588ED297708AC7979D89E696CA837D836A B E A2E646F63>


(Microsoft Word - Excel\223\374\226\3452\217\ docx)

(3) (1) 又 は(2)に 係 る 修 正 申 告 の 場 合 は 修 正 中 間 又 は 修 正 確 定 10 法 人 税 法 の 規 定 によ 次 に 掲 げる 法 人 税 の 申 告 書 を 提 出 する 法 人 の 区 分 ごとに それ (1) 連 結 法 人 又 は 連 結 法 って

研究者情報データベース

<4D F736F F D208ED089EF95DB8CAF89C193FC8FF38BB CC8EC091D492B28DB88C8B89CA82C982C282A282C42E646F63>


容 積 率 制 限 の 概 要 1 容 積 率 制 限 の 目 的 地 域 で 行 われる 各 種 の 社 会 経 済 活 動 の 総 量 を 誘 導 することにより 建 築 物 と 道 路 等 の 公 共 施 設 とのバランスを 確 保 することを 目 的 として 行 われており 市 街 地 環

大津市私立幼稚園就園奨励費補助金交付要綱

った 場 合 など 監 事 の 任 務 懈 怠 の 場 合 は その 程 度 に 応 じて 業 績 勘 案 率 を 減 算 する (8) 役 員 の 法 人 に 対 する 特 段 の 貢 献 が 認 められる 場 合 は その 程 度 に 応 じて 業 績 勘 案 率 を 加 算 することができる

平成21年4月1日作成

Transcription:

探 索 アルゴリズム

探 索 とは? キー 一 致 するものを 探 す レコード : : : フィールド

START n=10, i =0, target=54 i : n a[i] : target i++ < = 線 形 探 索 アルゴリズム(1) 前 提 : 配 列 aにn 個 のデータが 保 存 処 理 :target と 同 じデータが 蓄 えら れている 配 列 要 素 の 添 え 字 を 返 し, ない 場 合 は-1を 返 すフローチャー トを 記 せ return i return -1 END

番 人 による 少 し 早 い 線 形 探 索 key data table[0] table[1] tabel[2] table[3] : : table[n-1] table[n] : : table[199] 75 福 崎 慎 也 101 渡 邊 滋 之 17 大 野 綾 子 28 川 島 祐 毅 : : : : 64 仲 野 弘 幸 87 番 人 (sentinel)

番 人 を 利 用 した 線 形 探 索 アルゴリズム START target = 54, i =0, a[n] = target a[i] : target i=i+1 = ループ 毎 に iとn-1の 比 較 が 不 要 i : N < return i return -1 END

2つの 線 形 探 索 アルゴリズムの 比 較 START 番 人 なし START 番 人 あり n=10, target = 54, i =0 i : N < a[i] : target i=i+1 前 処 理 = return i return -1 n=10, target = 54, i =0, a[n] = target a[i] : target i=i+1 i : N < = 前 処 理 return i return -1 END END

二 分 探 索 法 (バイナリサーチ) 探 すキーの 値 は 14 とする low middle high a[0]=1 a[1]=3 a[2]=4 a[3]=8 a[4]=13 a[5]=14 a[6]=18 a[7]=20 a[8]=21 a[9]=25 <14 low =middle+1 middle high a[0]=1 a[1]=3 a[2]=4 a[3]=8 a[4]=13 a[5]=14 a[6]=18 a[7]=20 a[8]=21 a[9]=25 >14 a[0]=1 a[1]=3 a[2]=4 a[3]=8 a[4]=13 low, middle a[5]=14 =14 high a[6]=18 =middle-1 a[7]=20 a[8]=21 a[9]=25 探 索 範 囲

二 分 探 索 アルゴリズム ( 半 分 ずつ 捨 てるのがポイント) サイズnの 配 列 key(0~n-1) においてsを 探 す 1 first=0, last=n-1 2 mid = (first+last)/2 3 key(mid)=s -> Found key(mid)<s -> first=mid+1 Goto 2 key(mid)>s -> last=mid-1 Goto 2 上 記 アルゴリズムの 問 題 点 は? 完 成 させよ

線 形 探 索 の 計 算 量 ( 比 較 の 回 数 )は 最 良 1 最 悪 n 平 均 n/2 データ 数 nに 対 して O(n) 二 分 探 索 の 計 算 量 ( 比 較 の 回 数 )は 2 k-1 n<2 k のとき k 回 つまり データ 数 nに 対 して 約 O(log 2 n)

線 形 探 索 の 計 算 量 は O(n) 二 分 探 索 の 計 算 量 は O(log2 n) n=1,000だったら? n=1,000 log 2 n= 約 10 (なぜなら2 10 =1,024) 100 倍 違 う! 定 数 係 数 が 少 しくらい 違 ったって 勝 負 は 明 らか!

ビッグO のグラフ 化 N 5 10 15 20 25 O(2 n ) 32 1024 32768 1048576 33554432 O(N 2 ) 25 100 225 400 625 O(NlogN) 3.49 10 17.64 26.02 34.94 O(N) 5 10 15 20 25 O(logN) 0.69 1 1.17 1.30 1.39 O(1) 1 1 1 1 1

O(2 n ) O(N 2 ) O(NlogN) ビッグオーの グラフ 化 O(N) O(logN) O(1)

データの 登 録 も 考 えると 登 録 (n 要 素 当 り) 探 索 (1 回 当 り) 線 形 探 索 O(n) O(n) 二 分 探 索 O(n 2 ) O(log n) クイックソートで O(n log n)

登 録 1 回 あたりの 探 索 回 数 をSとすると 線 形 探 索 O(n)+S O(n) 二 分 探 索 O(n log n)+s O(log n) n<<sでないと 二 分 探 索 は 有 利 に ならない! 頻 繁 にデータ 集 合 が 変 わるような 応 用 には 二 分 探 索 は 適 さない

ハッシュ 法

ハッシュ 法 ハッシング(hashing)ともいう hash: 切 りきざむ 挿 入 探 索 削 除 がO(1)でできる つまり データの 個 数 nに 依 存 しない 理 想 の 探 索 技 法!?

学 生 番 号 から 氏 名 などを 求 めたい 2003 年 度 に 入 学 した 学 生 だけを 考 えると 70310001~70310101 配 列 の0 番 目 から100 番 目 に 氏 名 を 格 納 ( 学 生 番 号 下 3 桁 -1) 番 目 の 配 列 要 素 を 見 ればよい direct access という でも 一 般 にキーはこのように 順 序 よく 並 んでいない

英 和 辞 書 5 万 語 の 英 和 辞 書 の 全 体 をメモリにのせて 使 いたい 各 単 語 のインデクス 番 号 が 分 かれば,O(1)で ある 単 語 の 意 味 を 知 ることができる インデクス 番 号 1 2 3. 50,000 内 容 hash: 切 り 刻 む どうすれば 各 単 語 の インデクス 番 号 が 分 かるか?

語 を 数 に 変 換 する ASCII(アスキー)コード 大 文 字, 小 文 字, 数 字, 記 号 などを0から255まで の 数 で 表 現 a:97, b:98,, z:122 大 文 字, 数 字, 記 号 などを 使 わないとしたら スペースを0として,a:1, b:2, c:3,, z:26の27 文 字 で 表 現 できる

語 を 数 に 変 換 する 方 法 1: 単 語 の 各 文 字 に 対 応 する 数 の 総 和 を インデクス 番 号 とする cats = 3 + 1 + 20 + 19 = 43 Dic[43] = cat:ネコ, 猫 科 の 動 物 ここで, 単 語 の 最 大 文 字 数 を10とすると, 辞 書 の 一 番 最 後 の 文 字 は, ( 理 論 的 には) zzzzzzzzzz(zが10 個 ) = 26 X 10 = 260 50,000( 単 語 あるとすれば) 260 = 192 サイズ260の 配 列 を 準 備 すれば 1つの 配 列 要 素 に192 語 が 該 当 する 例 えば 単 語 の 各 文 字 に 対 応 する 数 の 総 和 がcatと 同 じ43になる 単 語 was(23+1+19), give(7+9+22+5), tend(20+5+14+4),.

語 を 数 に 変 換 する 方 法 2: 桁 位 置 を 利 用 する(べき 乗 化 ) 数 値 の 場 合 は0から9の10 種 類 (10 進 数 ) 各 桁 は10のべき 乗 配 今 回 列 の 1 前 要 提 素 では,スペース,aからzの27 あたり1バイトとすると, 種 類 (27 進 数 ) 約 190TBのメモリが 必 要!! 各 桁 は27のべき 乗 1TB = 1024 * 1024 * 1024 * 1024 = cats = 3x27 3 +1x27 2 +20x27 1 +19x27 0 = 60,337 zzzzzzzzzz = 26x27 9 +26x27 8 + +26x27 0 = 205,891,132,094,648 1,099,511,627,776 ( 約 1 兆 バイト) 200 兆 以 上!!

語 を 数 に 変 換 する 方 法 2: 桁 位 置 を 利 用 する(べき 乗 化 ) 単 語 ではない fira firb firc fird fire firf firg 125146 125147 125148 125149 125150 125151 125152 実 在 する 単 語

ハッシュ 法 巨 大 な 範 囲 の 数 を 実 用 的 なサイズの 配 列 の 添 え 字 (インデクス)に 変 換 簡 単 な 方 法 としては,モジュロ 演 算 子 (%)を 使 う %nは0からn-1までの 数 を 作 りだす ( 値 域 :0~3) 23 % 4 = 3 13052 % 4 = 0 38 % 4 = 2 配 列 のインデクス = 巨 大 な 数 % 配 列 サイズ

ハッシュ 関 数 (hash function) キーの 値 xの 集 合 添 字 (ハッシュ 値 ) h(x)の 集 合 h(x) 0,1,2,,99 26 5 100 大 きな 値 域 の 数 を 小 さな 値 域 の 数 へと ハッシュ( 切 り 刻 む)する 文 字 列 を 一 定 範 囲 の 整 数 に 変 換 すること

ハッシュ 関 数 の 例 int hash(char *s) { int i = 0; while (*s) i += *s++; return i % 100} a:97 z:122 アスキーコードの 総 和 を 100で 割 った 余 りを 配 列 添 字 とする a 97 b 98 c 99 d 100 e 101 f 102 g 103 h 104 i 105 j 106 k 107 l 108 m 109 n 110 o 111 p 112 q 113 r 114 s 115 t 116 u 117 v 118 w 119 x 120 y 121 z 122 この 関 数 で 求 まるハッシュ 値 の 例 文 字 列 ハッシュ 値 one 22 two 46 three four five six seven eight nine ten

ハッシュ 値 の 例 文 字 列 ハッシュ 値 one 22 two 46 three four five six seven eight nine ten ハッシュ 表 (テーブル) ハッシュ 関 数 を 使 って データを 挿 入 した 配 列 0 1.. 26 five 27 ten 28 29 eight..

ハッシュ(1) 問 題 1: 以 下 のハッシュ 関 数 を 用 いて 表 の 各 文 字 列 に 対 応 する ハッシュ 値 を 求 めよ ハッシュ 関 数 int hash(char *s) { int i = 0; while (*s) i += *s++; return i % 11} アルファベットに 対 応 する 数 値 a:1, b:2, c:3, d:4, e:5, f:6, g:7, h:8, i:9, j:10, k:11, l:12, m:13, n:14,o:15, p:16, q:17, r:18, s:19, t:20, u:21, v:22, w:23, x:24, y:25, z:26 例 :yamaguti = (25+1+13+1+21+20+9) % 11 = 2 文 字 列 fukuzaki watanabe oono kawashima nakano miura ハッシュ 値

異 なるキーが 同 じハッシュ 値 に 写 像 されたら どうするか? 衝 突 の 処 理 大 きく 分 けて チェイン 法 オープンアドレス 法

チェイン 法 ハッシュ 表 の 同 じ 場 所 に 写 像 された データを 連 結 リストにつなぐ ハッシュ 表 は 連 結 リストの 先 頭 を 指 す ポインタの 配 列

0 1 2 3 ハッシュ 表 A C B 4 D E F 5 6 7 8 9 G H J I

チェイン 法 のデモ

オープンアドレス 法 ある 一 定 の 方 法 で, 空 セルを 探 して, そこに 新 たな 項 目 を 挿 入 する 方 法 1 線 形 探 査 (linear probing) 2 平 方 探 査 (quadratic probing) 3ダブルハッシュ(double hashing)

ハッシュ 表 h(x)=h 0 (x) h 1 (x) h 2 (x) h 3 (x) : : オープンアドレス 法 は ハッシュ 表 の 中 で 仮 想 的 な 連 結 リストを 作 るようなもの ただし 次 の 要 素 は ポインタでなく 再 ハッシュ 関 数 に よって 決 まる

オープンアドレス 法 : 線 形 探 査 配 列 を 単 純 にシーケンシャルに 辿 って 空 きセルを 探 すやり 方 0 1 nine = 110+105+110+101 = 426 ハッシュ 値 = 426%100 =26 衝 突 衝 突 OK.. 26 five 27 ten 28 nine 29 eight..

オープンアドレス 法 : 線 形 探 査 (2) 再 ハッシュ(rehash) k 回 目 にアクセスする 場 所 : h k (x) xはキー k=0,1,2,,b-1 最 も 簡 単 な 再 ハッシュ 関 数 は h k (x)=(h(x)+k) % B h(x): 最 初 のハッシュ 関 数 B:ハッシュ 表 ( 配 列 )の 大 きさ

オープンアドレス 法 : 線 形 探 査 の 問 題 点 この 状 態 でさらにハッシュ 値 が 26のキーを 挿 入 する 場 合 データが 連 続 してしまい, 効 率 が 落 ちる クラスター 化 0.. 25 26 five 27 ten 28 nine 29 eight 30

オープンアドレス 法 : 平 方 探 査 線 形 探 査 のように, 隣 接 するセルに 挿 入 してい くとクラスターができやすいので,もっと 離 れた 場 所 に 挿 入 しようというやり 方 h k (x)=(h(x)+k 2 ) % B h(x): 最 初 のハッシュ 関 数 B:ハッシュ 表 ( 配 列 )の 大 きさ 注 意 点 : 配 列 のサイズを 素 数 にしなければ 同 じ 場 所 を 探 し 続 けることがある

オープンアドレス 法 : 平 方 探 査 の 問 題 点 サイズ59の 配 列 (すべてセルが 空 いているとする)に, 184,302,420,538というキーを 順 番 に 挿 入 することを 考 えると 184 % 59 = 7 1ステップで 配 列 の 要 素 8へ 302 % 59 = 7 2ステップで 配 列 の 要 素 11へ 420 % 59 = 7 3ステップで 配 列 の 要 素 16へ 538 % 59 = 7 4ステップで 配 列 の 要 素 23へ 第 2 種 クラスター 化

オープンアドレス 法 :ダブルハッシュ キーの 値 によって 探 査 の 歩 幅 が 異 なるように する 方 法 キーに 対 して2 度 目 のハッシュを 行 い, 得 られ た 結 果 をステップ 幅 として 使 う h s (x)=(c (k % C)) % B B:ハッシュ 表 ( 配 列 )の 大 きさ C: 定 数 ( 配 列 サイズより 小 さい 素 数 )

オープンアドレス 法 :ダブルハッシュの 注 意 点 最 初 のハッシュ 関 数 と 同 じであってはならない 0が 作 られることのある 関 数 であってはならない ハッシュ 表 のサイズは 素 数 でなければならない ハッシュ 表 のサイズが59で,ステップ 幅 は? h s (x)=(11 (k % 11)) % 59とすると 184 % 59 = 7 配 列 の 要 素 8へ 302 % 59 = 7 (11-(302%11))%59 = 6, 要 素 14へ 420 % 59 = 7 (11-(420%11))%59= 9, 要 素 17へ 538 % 59 = 7 (11-(538%11))%59=10, 要 素 18へ

良 いハッシュ 関 数 とは 手 早 い 計 算 ハッシュ 法 の 利 点 はスピードなので,ハッシュ 関 数 は 高 速 であるべき ランダムキー Index = key % arraysizeで 得 られるインデクスもランダム ( 均 等 )に 分 布 ノンランダムキー テーブルサイズには 素 数 を 使 う 多 くのキーと 配 列 サイズに 共 通 の 公 約 数 がある 場 合,そ れらが 同 じ 位 置 へハッシュされるため

問 題 1: ハッシュ(2) (2) (1)の 表 に 示 した 文 字 列 を 上 から 順 番 に 要 素 数 11のハッ シュ 表 に 格 納 せよ (3) 衝 突 が 発 生 した 場 合 には チェイン 法 とオープンアドレス 法 でそれぞれどのように 衝 突 が 回 避 されるかを 図 で 示 せ (4) オープンアドレス 法 は 線 形 探 査 とダブルハッシュの 両 方 を 示 すこと 線 形 探 査 とダブルハッシュのハッシュ 関 数 は 以 下 のとおり 線 形 探 査 のハッシュ 関 数 h k (x)=(h(x)+k) % 11 k 回 目 にアクセスする 場 所 (K=0, 1, 2,, 10) ダブルハッシュのハッシュ 関 数 h s (x)=(7 (k % 7)) % 11 kはハッシュ 関 数 hash() 内 の11で 割 った 余 りを 求 める 直 前 の 変 数 iの 値