• ベストアンサー

問題の解き方

基本情報技術者の、この問題がよくわかりません。 この問題はどうやって解くのでしょうか?解く前に問題の意味もあまり理解できなく、解説をお願いいたします。 ●0000~4999のアドレスを持つハッシュ表があり、レコードのキー値からアドレスに変換するアルゴリズムとして基数変換法を用いる。キー値が55550のときのアドレスはどれか。ここで、基数変換法ではキー値を11進数と見なし、10進数に変換した後、下4けたに対して0.5を乗じた結果(小数点以下は切捨て)をレコードのアドレスとする。

質問者が選んだベストアンサー

  • ベストアンサー
  • jjon-com
  • ベストアンサー率61% (1599/2592)
回答No.1

例として,キー値の範囲として00000~99999が考えられるデータを配列に格納したいとします。配列の大きさがTABLE[0]~TABLE[99999]の10万要素あれば確実に格納できますね。 では「キー値は00000~99999の10万パターンだけれどデータ総数は数千件しかない(キー値の歯抜けが多い)」場合はどうでしょう。データが数千しかないのに10万の配列を確保するのはムダですから次のような方法をとります。 例)格納配列の大きさを5000要素と決めた場合(TABLE[0]~TABLE[4999]) データのキー値 00000~99999   ↓ 何らかの計算(ハッシュ関数と呼ぶ)   ↓ 格納位置の添字 0~4999(ハッシュ値と呼ぶ) のように,入力値(00000~99999)→出力値(0000~4999)を求める何らかの計算をおこない,それを格納位置の添字とすればよいわけです。このときの格納配列をハッシュ表と呼びます。 何らかの計算(ハッシュ関数)はどんな計算式でもかまわないのですが,この問題では次のアルゴリズムを採用したとのこと。 レコードのキー値 55550   ↓ キー値を11進数と見なし,10進数に変換後,下4けたに対して×0.5という基数変換法   ↓ レコードの格納アドレス あとの計算は,過去問の解説サイトがありますので,それを見てください。 (基本情報,17秋,問2)

参考URL:
http://computer.trident.ac.jp/examin/h171016_kihon_amkai.html
benchie8
質問者

お礼

ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • H17秋 問2

    この問題を解く前に何を言っているのかが分かりません。教えてください。その次に解き方を教えてください。 0000 ~ 4999 のアドレスをもつハッシュ表があり,レコードのキー値からアド レスに変換するアルゴリズムとして基数変換法を用いる。キー値が 55550 のとき, アドレスはどれか。ここで,基数変換法ではキー値を 11 進数と見なし,10 進法 に変換した後,下 4 けたに対して 0.5 を乗じた結果(小数点以下は切捨て)を レコードのアドレスとする。  ア 0260  イ 2525  ウ 2775  エ 4405

  • ハッシュ法について

    今、アルゴリズムの教科書を読んでるんですが、ハッシュ法の意味が分かりません。 教科書にはハッシュ法はキーの検索をレコードの数によらずほとんど一定時間で行えるキー検索であると書いてあるんですが、レコードって何ですか? キー検索って何ですか? 回答よろしくお願いします。

  • 対数の問題 常用対数

    対数の問題で log[10]2=0.3010 log[10]3=0.4771 とするとき、次の値を求めよ log[3]5 こういう問題で割り算しますよね 小数点以下4桁出しましたが、小数点以下5桁目は切り捨てるんですか?四捨五入するんですか? 小数点以下5桁目の切り捨てか四捨五入ってどっちでもよくはないんですか? 今までは全部5桁目がたまたま0~4になったから四捨五入なんか気にしませんでしたが、先生には特に何も言われなかったですし けど教科書は 対数の値は一般には無理数で無限小数で表される。対数表には小数第5位を四捨五入した値が記載されている と書いてあります。

  • 化学での有効数字について(途中計算)

     以下についてアドバイスいただけると助かります。  有効数字について  和・差について・・・小数点以下の桁数が少ない方に合わせる  積・商について・・・桁数が少ない方に合わせる  については、分かったのですが、有効数字3桁での指定があるときに  19.1、24.5889、0.12553、3.2952の4つの数にたいして  ○和を筆算で求める場合    小数第1位に合わせるために、    19.1→19.10(小数第2位表示)    24.5889→24.58(小数第3位切り捨て)    0.12553→0.12(小数第3位切り捨て)    3.2952→3.29(小数第3位切り捨て)  として和を求め、小数第1位(小数第2位四捨五入)にする  ○積を筆算で求める場合    有効数字3桁に合わせるために、    19.1→19.10(有効数字4桁表示)    24.5889→24.58(5桁目切り捨て)    0.12553→0.1255(5桁目切り捨て)    3.2952→3.295(5桁目切り捨て)  として積を求め、有効数字を3桁(4桁目は四捨五入)にする  と思っています。  1.このやり方で大学受験では問題ないのでしょうか。    特に気になっているのは、計算をする前の丸め方(すべて切り捨てにしているところ)です。  2.計算ステップがいくつもあり、一度に計算ができない場合、そのステップ毎に得られる数の    丸め方は切り捨て・四捨五入のどちらがよいのでしょうか。  よろしくお願いします。    

  • この問題がわかりません

    基本情報試験の過去問をやっているのですが、よく理解できなかったので、解説をお願いします。 ●負数を2の補数で表す 16 ビットの符号付き固定小数点数の最小値を表すビット列を, 16 進数として表したものはどれか。 ア 7FFF    イ 8000    ウ 8001    エ FFFF これの答えはイだそうで、説明では「ア~エの16進数をそれぞれ、2進数、10進数、10進数の絶対値に変換して評価する。」とあり表が載っています。 ア・0111111111111111・・・+32767・・・絶対値が32767 イ・1000000000000000・・・ー32768・・・絶対値が32768 ウ・1000000000000001・・・ー32767・・・絶対値が32767 エ・1111111111111111・・・-1・・・・・・・絶対値が1 これでは、イとウ、エがーの符合になっていますが、なぜそうなるのか、基数変換した時の値はどうやって出しているんでしょうか? 回答よろしくお願いします。

  • 32bitの浮動小数点数表現について悩んでいます

    情報処理の初心者です。 今、14070366(10)を数値データとしてとらえ、 32bitの浮動小数点数で表現するという問題について考えています。 14070366(10) =100111000001010000101110(2) 10進数を2進数に基数変換した部分、25桁が仮数部になるんですよね? 符号部は+なので0。 では指数部の7桁には何が入るのでしょうか? 以上が私の分かっていることですが、 最終的な解答を16進数で表記すると、 14070366はどうなるのでしょうか? お願いします。

  • 情報科学について!進数変換の問題です。

    (0.01)10を全体が2バイトで基数は8、仮数部は12bits、指数部は3bitsでかさあげ表現の浮動小数点表示を用いて2進数表示すると( )2となる。 という問題で答えが0010101000111101なのですがどうしてそうなるのかわかりませ。 詳しく解説してもらえないでしょうか? よろしくお願いします! 

  • 浮動小数点形式の問題

    数値を32ビット浮動小数点形式で表す。指数部は2を基数とし、負数は2の補数で表現する。10進数0.375をこの2を基数とした浮動小数点形式で正規化したものはどれか。ただし結果は16進数で表現する。 答え:7FC00000 という問題です。 まず0.375を2進数に 0.011 正規化 0.11 * 2^-1 指数部-1を2進数で求める -0000 0001 ->1111 1111 仮数部符号は正の数なので0 0111 1111 ???? ???? ???? ???? ???? ???? と・・・ ここの部分からわかりません・・・ (なぜか手持ちの参考書には省略してあり・・・) 7Fの部分はこれで間違いないでしょうか? またそのあとのC00000 はどうやって導くのか教えてください。 お願いいたします

  • 2進数の重み対応表について

    度々すみません。ご協力お願いします。 2進数から8進数への変換ですが以下の2進数重み対応表の意味がいまいち分かりません。 問題: 2進数 1100.01の8進数への変換を次の手順で行う。 (1)3桁づつ区切る: (2)2進数の重み: (3)掛けて足す: (4)8進数: 001 100 . 010 ※3桁無い場合は0を補う 421 421 . 421 ←2進数重み対応表 001 400 . 020 ※掛けて足す 回答:14.1 質問: a.少数以下の重み対応表.421の意味が不明です。  (10進法だと、.10^-1, 10^-2・・・は分かりましたが・・) b.同様に2進数から16進数の場合の小数以下.8421も不明です。 簡単な質問かもしれませんが何卒宜しくご教授お願いします。

  • 基本情報 過去問16年 問4について

    基本情報資格の勉強をしているのですが、平成16年度の問4の問題でわからない点があるので教えてください。 問題は下記を参考にしていただきたいのですが、 http://情報処理試験.jp/FE16b-pm/t04.html 自分が持っている解説によると、 ”関数MToIntは後述するように、Frdx(関数MToIntではRdx)を基数とする数字列Fnum(関数MToIntではNum)を十進数に変換する。” つまり M進数→10進数→N進数 となり、これを前提に問題を解いていくようなのです。 しかし、私には”後述”の部分がどこかわかりません。 おそらくどこか問題の記述から10進数であることが、把握できるはずだと思うのですが、 どの個所から考えればよいのでしょうか?? あと他のサイトなどの解説を読んで見ると、変換する基数が10進数であることの説明が特に書いていない気がするのですが、変換する基数を10進数だとしなくても解ける問題なのでしょうか?? よろしくおねがいします。

コビッド19の治療法と今後
このQ&Aのポイント
  • コビッド19について様々な情報が相変わらず飛び交っています。
  • コビッド19の変異により世の中は落ち着きを取り戻しています。
  • ワクチンには利権が絡んでいたことがわかってきました。
回答を見る

専門家に質問してみよう