タグ

algorithmとglossaryに関するpipeheadのブックマーク (25)

  • バックトラック法とは - IT用語辞典

    概要 バックトラック法(backtracking method)とは、コンピュータで数学的な問題の解を探索するアルゴリズム(計算手順)の一種で、解の候補を虱潰しに試していくが、途中で解になり得ないと分かった候補群は間引く手法。 条件を満たす要素の組み合わせを求めるような問題に適用することができ、厳密に解を求めることができるが、すべての組み合わせを調べる総当り方式(全探索)よりは効率が良い手法として知られる。 複数の要素の組み合わせが条件を満たすか調べる問題で、いくつかの要素を決定してみて、それ以上何を組み合わせても条件を満たすことがないと判明したら、その組み合わせについては探索を終了し、一手前に戻って(backtrack:引き返す)別の組み合わせを試していく。 例えば、サイコロA、B、Cの3つを振って和が10以上のものをすべて列挙するという問題を全探索で解くと、(A,B,C)=(1,1,1

    バックトラック法とは - IT用語辞典
  • 線形合同法 - Wikipedia

    線形合同法(せんけいごうどうほう、英: Linear congruential generators, LCGs)とは、擬似乱数列の生成式の一つ。 漸化式 によって与えられる。A、B、Mは定数で、M>A、M>B、A>0、B≥0である。 上の式で、が、乱数の種であり、これに数を代入すると、が得られる。さらにを生成する場合には、を使う。以後、同様に行う。 例えば、定数をそれぞれ、A=3、B=5、M=13、乱数の種=8とすると、(上の式においてはXn+1を左辺に置いたが、今回は便宜上、右辺に置く) 次に乱数を生成する際は前回生成された乱数(今回は3)を使って、 以下、同じように、 となる。 生成される乱数列は周期性を持ち、上の例では8→3→1→8→3→……、を繰り返す。この周期は最大でMであり、以下の条件が満たされたときに最大周期Mをもつ。 BとMが互いに素である。 A-1が、Mの持つ全ての素因

    pipehead
    pipehead 2003/02/28
    Linear congruential generators, LCGs
  • ソート - Wikipedia

    ソート (英: sort) は、データの集合を一定の規則に従って並べること[1]。日語では整列(せいれつ)、並べ替え(ならべかえ)、分類(ぶんるい)などと訳される[1]。 主に配列や連結リストのような、リストデータ構造に分類されるコレクション(コンテナ)に格納されている要素データを、全順序関係によって並べ替えることを指す。また、単に「ソート」といった場合、値の小さい方から大きい方へ順に並べる昇順(しょうじゅん、英: ascending order)を指すことが多い。その反対に値を大きい方から小さい方へ順に並べることを降順(こうじゅん、英: descending order)という。 対象となるコレクションのデータ構造や必要とされる出力、また時間的コストと空間的コストの兼ね合いによって、ソートに使われるアルゴリズムは異なる。 効率的なソートは、ソート済みのデータを必要とする他のアルゴリズム

    pipehead
    pipehead 2003/02/20
    ソートアルゴリズムの一覧あり〼
  • 番兵

  • ハッシュ法

    ハッシュ法(hashing)は、メモリ上でデータを高速に検索するための手法である。各種のツリー構造とは異なり、静的な配列だけで簡単に実装でき、効率も極めて高い。このため、非常に実用的な手法として重宝である。 配列上でデータを検索する手法には、ハッシュの他いくつかある。以下、単純な手法から順に説明していき、ハッシュ法の説明に至ることにしよう。 ある小さな会社の社員情報をメモリ上で処理する場合を考えてみよう。社員情報のキーとして社員番号(整数)を用いることだけを決めておき、その他については考えないことにする。 (1)単純配列 データの出現順に配列につめていく。もっとも単純かつ基的な方法。 データの挿入は高速だが、検索は端から順に見ていく(リニアサーチという)しかないため、平均するとデータ件数(社員数)の半分について処理が必要となる。 この手法は遅いので、データ件数が多い場合には使われない・・