<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>ハッシュ法 アーカイブ - nyanblog ~にゃんぶろぐ~</title>
	<atom:link href="https://nyanblog2222.com/tag/%E3%83%8F%E3%83%83%E3%82%B7%E3%83%A5%E6%B3%95/feed/" rel="self" type="application/rss+xml" />
	<link>https://nyanblog2222.com/tag/ハッシュ法/</link>
	<description>ちょっとしたことを調べているよ</description>
	<lastBuildDate>Fri, 03 Sep 2021 13:17:20 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.7</generator>

<image>
	<url>https://nyanblog2222.com/wp-content/uploads/2021/09/cropped-favicon-32x32.png</url>
	<title>ハッシュ法 アーカイブ - nyanblog ~にゃんぶろぐ~</title>
	<link>https://nyanblog2222.com/tag/ハッシュ法/</link>
	<width>32</width>
	<height>32</height>
</image> 
<atom:link rel="hub" href="https://pubsubhubbub.appspot.com"/><atom:link rel="hub" href="https://pubsubhubbub.superfeedr.com"/><atom:link rel="hub" href="https://websubhub.com/hub"/>	<item>
		<title>ハッシュ法とは【過去問解答解説付き】</title>
		<link>https://nyanblog2222.com/certification/ap/2165/</link>
					<comments>https://nyanblog2222.com/certification/ap/2165/#respond</comments>
		
		<dc:creator><![CDATA[nyan2222]]></dc:creator>
		<pubDate>Tue, 25 Aug 2020 09:00:00 +0000</pubDate>
				<category><![CDATA[応用情報技術者試験]]></category>
		<category><![CDATA[資格]]></category>
		<category><![CDATA[AP]]></category>
		<category><![CDATA[ハッシュ法]]></category>
		<category><![CDATA[応用情報技術者]]></category>
		<category><![CDATA[解答解説]]></category>
		<guid isPermaLink="false">https://nyanblog2222.com/?p=2165</guid>

					<description><![CDATA[<p><img src="https://nyanblog2222.com/wp-content/uploads/2022/11/118.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" decoding="async" fetchpriority="high" srcset="https://nyanblog2222.com/wp-content/uploads/2022/11/118.png 1280w, https://nyanblog2222.com/wp-content/uploads/2022/11/118-300x157.png 300w, https://nyanblog2222.com/wp-content/uploads/2022/11/118-1024x536.png 1024w, https://nyanblog2222.com/wp-content/uploads/2022/11/118-768x402.png 768w" sizes="(max-width: 1280px) 100vw, 1280px" />応用情報技術者試験に頻出するハッシュ法についてまとめました。 目次 ハッシュ法ハッシュ法とは衝突・シノニムの発生演習問題応用情報技術者試験　令和元年秋期　午前問7　問題応用情報技術者試験　令和元年秋期　午前問7　解答 ハ [&#8230;]</p>
<p>投稿 <a href="https://nyanblog2222.com/certification/ap/2165/">ハッシュ法とは【過去問解答解説付き】</a> は <a href="https://nyanblog2222.com">nyanblog ~にゃんぶろぐ~</a> に最初に表示されました。</p>
]]></description>
										<content:encoded><![CDATA[<img src="https://nyanblog2222.com/wp-content/uploads/2022/11/118.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" decoding="async" loading="lazy" srcset="https://nyanblog2222.com/wp-content/uploads/2022/11/118.png 1280w, https://nyanblog2222.com/wp-content/uploads/2022/11/118-300x157.png 300w, https://nyanblog2222.com/wp-content/uploads/2022/11/118-1024x536.png 1024w, https://nyanblog2222.com/wp-content/uploads/2022/11/118-768x402.png 768w" sizes="auto, (max-width: 1280px) 100vw, 1280px" />
<p>応用情報技術者試験に頻出する<span class="bold-red">ハッシュ法</span>についてまとめました。</p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-2" checked><label class="toc-title" for="toc-checkbox-2">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">ハッシュ法</a><ol><li><a href="#toc2" tabindex="0">ハッシュ法とは</a></li><li><a href="#toc3" tabindex="0">衝突・シノニムの発生</a></li></ol></li><li><a href="#toc4" tabindex="0">演習問題</a><ol><li><a href="#toc5" tabindex="0">応用情報技術者試験　令和元年秋期　午前問7　問題</a></li><li><a href="#toc6" tabindex="0">応用情報技術者試験　令和元年秋期　午前問7　解答</a></li></ol></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">ハッシュ法</span></h2>



<h3 class="wp-block-heading"><span id="toc2">ハッシュ法とは</span></h3>



<p><span class="bold-red">ハッシュ法</span>とは、データ探索アルゴリズムの一種で、<span class="marker-under">ハッシュ関数</span>と呼ばれる計算式を使用して、データのアドレス（記憶場所の位置）を探索する方法です。</p>



<figure class="wp-block-image size-large"><img decoding="async" width="800" height="372" src="https://nyanblog2222.com/wp-content/uploads/2020/08/AP7-1-min.png" alt="ハッシュ法" class="wp-image-2166" srcset="https://nyanblog2222.com/wp-content/uploads/2020/08/AP7-1-min.png 800w, https://nyanblog2222.com/wp-content/uploads/2020/08/AP7-1-min-300x139.png 300w, https://nyanblog2222.com/wp-content/uploads/2020/08/AP7-1-min-768x357.png 768w" sizes="(max-width: 800px) 100vw, 800px" /></figure>



<p>有名なハッシュ関数として<span class="marker-under">MD5やSHA256</span>といったものがありますが、特にこれを使わなければならないという決まりはありません。</p>



<h3 class="wp-block-heading"><span id="toc3">衝突・シノニムの発生</span></h3>



<p>異なる検索キーで、ハッシュ関数を通した際に同じハッシュ値となる場合があり、このことを<span class="bold-red">衝突（コリュジョン）</span>、もしくはハッシュ値が同じ値になるので<span class="bold-red">シノニムの発生</span>といいます。</p>



<figure class="wp-block-image size-large"><img decoding="async" width="1024" height="565" src="https://nyanblog2222.com/wp-content/uploads/2020/08/AP7-2-min-1024x565.png" alt="衝突" class="wp-image-2168" srcset="https://nyanblog2222.com/wp-content/uploads/2020/08/AP7-2-min-1024x565.png 1024w, https://nyanblog2222.com/wp-content/uploads/2020/08/AP7-2-min-300x165.png 300w, https://nyanblog2222.com/wp-content/uploads/2020/08/AP7-2-min-768x423.png 768w, https://nyanblog2222.com/wp-content/uploads/2020/08/AP7-2-min.png 800w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p>衝突への対処は、チェイン法やオープンアドレス法にて対応します。<br>・<span class="bold-red">チェイン法</span><br>ハッシュ表にデータと一緒にポインタを持たせ、衝突の際は<span class="marker-under">連結リスト</span>を用い格納していきます。<br>・<span class="bold-red">オープンアドレス法</span><br>衝突の際は<span class="marker-under">別のハッシュ関数を使用</span>し再度ハッシュ値を求め、格納していきます。</p>



<h2 class="wp-block-heading"><span id="toc4">演習問題</span></h2>



<p>実際の試験の過去問を解いてみましょう。</p>



<h3 class="wp-block-heading"><span id="toc5">応用情報技術者試験　令和元年秋期　午前問7　問題</span></h3>



<figure class="wp-block-table"><table><tbody><tr><td><a class="link broken_link" href="https://www.jitec.ipa.go.jp/1_04hanni_sukiru/mondai_kaitou_2019h31.html">IPA　応用情報技術者試験（AP）　問題より</a><br><br>問7　自然数をキーとするデータを、ハッシュ表を用いて管理する。キーxのハッシュ関数h(x)を<br>　　h(x) = x mod n<br>とすると、任意のキーaとbが衝突する条件はどれか。ここで、nはハッシュ表の大きさであり、x mod nはxをnで割った余りを表す。<br><br>選択肢<br>ア　a＋bがnの倍数<br>イ　a－bがnの倍数<br>ウ　nがa＋bの倍数<br>エ　nがa－bの倍数</td></tr></tbody></table></figure>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="449" src="https://nyanblog2222.com/wp-content/uploads/2020/08/AP7-3-min-1024x449.png" alt="問題" class="wp-image-2169" srcset="https://nyanblog2222.com/wp-content/uploads/2020/08/AP7-3-min-1024x449.png 1024w, https://nyanblog2222.com/wp-content/uploads/2020/08/AP7-3-min-300x132.png 300w, https://nyanblog2222.com/wp-content/uploads/2020/08/AP7-3-min-768x337.png 768w, https://nyanblog2222.com/wp-content/uploads/2020/08/AP7-3-min.png 800w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<h3 class="wp-block-heading"><span id="toc6">応用情報技術者試験　令和元年秋期　午前問7　解答</span></h3>



<p>衝突する適当な値で、選択肢と合致するか試していきます。</p>



<figure class="wp-block-table"><table><tbody><tr><td>①　n = 8<br>　　aの場合、27 mod 8 = 3<br>　　bの場合、19 mod 8 = 3<br><br>ア　a＋bがnの倍数<br>(27+19)/8=5.75のため倍数ではない<br><br><strong><span style="color: #b78d4a;" class="has-inline-color">イ</span></strong>　a－bがnの倍数<br>(27-19)/8=1のため倍数　⇒　合致！<br><br>ウ　nがa＋bの倍数<br>8/(27+19)=0.17&#8230;のため倍数ではない<br><br><strong><span style="color: #b78d4a;" class="has-inline-color">エ</span></strong>　nがa－bの倍数<br>8/(27-19)=1のため倍数　⇒　合致！</td></tr></tbody></table></figure>



<p>ここで、<strong><span style="color: #b78d4a;" class="has-inline-color">「イ」</span></strong>と<strong><span style="color: #b78d4a;" class="has-inline-color">「エ」</span></strong>が残りますので、別パターンでも試してみます。</p>



<figure class="wp-block-table"><table><tbody><tr><td>②　n = 8<br>　　aの場合、 25 mod 5 = 0<br>　　bの場合、10 mod 5 = 0<br><br><strong><span style="color: #b78d4a;" class="has-inline-color">イ</span></strong>　a－bがnの倍数<br>(25-10)/5=3のため倍数　⇒　合致！<br><br>エ　nがa－bの倍数<br>5/(25-10)=0.33&#8230;のため倍数ではない</td></tr></tbody></table></figure>



<p>以上から、答えは<strong><span style="color: #b78d4a;" class="has-inline-color">「イ」</span></strong>となります。</p>



<p>ハッシュ法の解説は以上です。</p>



<p>こちらに応用情報技術者試験の問題について、<br>解説を掲載していますので、良かったらご覧ください。<br><a class="link" href="https://nyanblog2222.com/?page_id=66">当ブログ「応用情報技術者解答解説」まとめページはこちら</a></p>
<p>投稿 <a href="https://nyanblog2222.com/certification/ap/2165/">ハッシュ法とは【過去問解答解説付き】</a> は <a href="https://nyanblog2222.com">nyanblog ~にゃんぶろぐ~</a> に最初に表示されました。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://nyanblog2222.com/certification/ap/2165/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
