タグ

*cとalgorithmに関するurza358のブックマーク (2)

  • ハッシュテーブルのスロット数が素数がよい理由と誕生日のパラドックス

    最近、プログラマーがハッシュテーブルを実装する機会は少ない。 現代のプログラミング言語では、ハッシュテーブルはライブラリーに完備されているためだ。 C言語でも、オープンソースを探せば、良いライブラリーが見つかる。 C言語をよく使う自分は、趣味でハッシュテーブルを自作して来た。 最近またハッシュテーブルを自作して、質を深く理解できたので、メモしておく。 C言語を学び、ハッシュテーブル、リストなどのデータ格納アルゴリズムを一度は実装して確認することで、コンピューターで大量のデータを取り扱う基を学ぶことができる。 ハッシュテーブルは、データをキーと値の組で保管するものだ。 キーは、数字ではなく、名前のような文字列や、複数の数値の組み合わせである。 値も複雑なデータの組み合わせとなる。 キーはデータを一意に区別できるものである。 複雑なキー情報に一致する値を素早く探し出すために、ハッシュという

  • 浮動小数点数型と誤差

    有限桁 C言語で扱える実数値は,2進数の有限小数で表された数値である.例えば次のようなものである. 1.5(10) = 1.1(2) 3.25(10) = 11.01(2) 理論的には小数が無限に続く値でも,そのうちの有限個の桁数でその値を表すしかない. 例えば,0.1 を2進数の小数で表すと 0.1(10) = 0.000110011001100110011...(2) と無限に続くが,コンピュータの内部では有限桁で丸められている. このような場合には,当の値ではなく,近似値でしか表すことができない. 指数表記(浮動小数点表記) 科学計算では非常に大きな実数値や非常に小さな実数値も扱うことがある. そのようなときには,通常の10進数の表記ではなくて,次のような指数表記で表すれば 無駄な 000...000 という桁を表記しなくてもよくなる. 1234567890000000000000

    浮動小数点数型と誤差
  • 1