タグ

関連タグで絞り込む (0)

  • 関連タグはありません

タグの絞り込みを解除

AlgorithmとALgorithmとProgrammingに関するagwのブックマーク (1,893)

  • Trie Structures

    トライは抽象的なデータ構造であり,実際に構築する場合, 具体的なデータ構造を考える必要があります. 以降の説明では,具体的なデータ構造のことを, 単純にデータ構造と記述するものとします. トライの単純なデータ構造として,配列構造とリスト構造があります. 文字通り,配列構造はトライを配列により実現し, リスト構造はトライを連結リストにより実現します. また,配列構造の利点は高速なことで,リスト構造の利点はコンパクトなことです. 配列構造とリスト構造の説明では,以下に示すトライを例として使います.

    agw
    agw 2010/11/28
    Array Trieの可視が面白い。
  • トライ (データ構造) - Wikipedia

    "A", "to", "tea", "ted", "ten", "i", "in", "inn" というキー群によるトライ木 トライ木(英: trie)やプレフィックス木(英: prefix tree)とは、順序付き木の一種。あるノードの配下の全ノードは、自身に対応する文字列に共通するプレフィックス(接頭部)があり、ルート(根)には空の文字列が対応している。値は一般に全ノードに対応して存在するわけではなく、末端ノードや一部の中間ノードだけがキーに対応した値を格納している。2分探索木と異なり、各ノードに個々のキーが格納されるのではなく、木構造上のノードの位置とキーが対応している。 キーが文字列である連想配列の実装構造としても使われる。右図の例では、ノードを表す丸の中にキーが書かれ、連想される値がその下に書かれている。値が書かれていないノードはキー文字列の途中までにしか対応していない。各英単語

    トライ (データ構造) - Wikipedia
  • 基数木(パトリシア) - Wikipedia

    基数木(英: Radix tree)またはパトリシア木(英: Patricia tree)とは、文字列集合を格納するトライ木に基づく特殊化された集合データ構造である。パトリシアトライ(英: Patricia trie)とも。通常のトライ木に比較すると、基数木の辺は単一の文字ではなく文字の並びでラベル付けされる。それは、文字列でもよいし、整数やIPアドレスなどを表すビット列でもよい。辞書式順序を適用できるオブジェクトの並びなら何でもラベルとして使用できる。基数木と言った場合、整数を格納する木構造のみを指すことが多く、パトリシア木といった場合は特に格納するデータを限定しないが、基的に構造や動作原理は同じである。 基数木は簡単に言えばメモリ使用量を最適化したトライ木であり、トライ木で子ノードが1つしかないノードを子ノードとマージしたものである。その結果、内部ノードは必ず2つ以上の子ノードを持つ

    基数木(パトリシア) - Wikipedia
  • 『100分の1を100回やってみる』

    ゲーム作家・ゲーム研究者遠藤雅伸のブログです。 ゲームに関する話題を、ビジネス、アカデミック両面からも取り上げます。 ゲームデザインにおいて初心者の陥りやすい問題の1つとして、確率に対する誤った考え方があります。 -------------------------------------------------- 課題:RPGで、ある敵を倒したら稀にアイテムが手に入る。このアイテム、敵を100匹ほど倒したら少なくとも1回くらいは出て欲しいのだが、さてどのような設定にすればいいか? -------------------------------------------------- 最も安易な考え方が、「100回に1回起きればいいことなんだから、1/100の確率でアイテム出せばいいんじゃね?」というもの。これと同じ考え方をした人に向けて、このエントリーは書かれていますので「簡単な余事象の問題

    『100分の1を100回やってみる』
  • Amazon.co.jp: 計算機シミュレ-ションのための確率分布乱数生成法: 四辻哲章: 本

    Amazon.co.jp: 計算機シミュレ-ションのための確率分布乱数生成法: 四辻哲章: 本
  • 隠れた良書「計算機シミュレーションのための確率分布乱数生成法」を大プッシュしたい - EchizenBlog-Zwei

    偶然見つけたのだが「計算機シミュレーションのための確率分布乱数生成法」が大変な良書であったので、とりいそぎメモしておく。ちゃんと読んだら後でレビューする。 書は簡単にいうと「様々な分布から乱数生成(サンプリング)するプログラム」の実装法をまとめた。確率統計のを読んだりして「○○分布からサンプリング」すれば良いことはわかったのだが、どうやって実装していいかわからず途方に暮れた経験を持った人は多いのでは。 そういった方にとって書は福音となるのではないだろうか。 とりあえず書はweb上に情報が少ないので、どんな分布を扱っているのか列挙しておく。かなり多いので驚かれるかもしれない。 [連続分布] 正規分布(Normal distribution) 半正規分布(Half Normal distribution) 対数正規分布(Log-Normal distribution) コーシー分布(

    隠れた良書「計算機シミュレーションのための確率分布乱数生成法」を大プッシュしたい - EchizenBlog-Zwei
  • 木の回転 - Wikipedia

    この記事は検証可能な参考文献や出典が全く示されていないか、不十分です。 出典を追加して記事の信頼性向上にご協力ください。(このテンプレートの使い方) 出典検索?: "木の回転" – ニュース · 書籍 · スカラー · CiNii · J-STAGE · NDL · dlib.jp · ジャパンサーチ · TWL (2015年10月) 木の回転(きのかいてん、英: tree rotation)は、2分探索木の操作の一種で、要素の順序を崩さずに構造を変更するものである。木の回転は木の中の1つのノードを上にし、別のノードを下にする。木の形状を変化させるのに使い、特に大きい部分木を持ち上げて小さい部分木を下げることで全体の木の高さを低くするのに使う。それによって各種操作の性能を向上させる。 なお、回転の方向によって「右回転」、「左回転」と言うが、どちらが右でどちらが左なのかは必ずしも決まっていな

    木の回転 - Wikipedia
  • クラスカル法 - Wikipedia

    クラスカル法(クラスカルほう、英: Kruskal's algorithm)は、グラフ理論において重み付き連結グラフの最小全域木を求める最適化問題のアルゴリズムである。 このアルゴリズムは、1956年にジョゼフ・クラスカル(英語版)が Proceedings of the American Mathematical Society で発表した (pp. 48–50)。 クラスカル法は貪欲法の一種で、最小全域木を求める他のアルゴリズムとしては、プリム法、逆削除法、ブルーフカ法などがある。最小全域木とは、グラフの全ての頂点を含む木で、辺の重みの総和が最小のものを言う。連結されていないグラフでは、「最小全域森」(それぞれの連結部分の最小全域木の集合)を求められる。 クラスカル法の手順は次の通り。 グラフの各頂点がそれぞれの木に属するように、森(木の集合) F を生成する(つまり頂点1個だけからな

    クラスカル法 - Wikipedia
  • 貪欲法 - Wikipedia

    この記事は検証可能な参考文献や出典が全く示されていないか、不十分です。 出典を追加して記事の信頼性向上にご協力ください。(このテンプレートの使い方) 出典検索?: "貪欲法" – ニュース · 書籍 · スカラー · CiNii · J-STAGE · NDL · dlib.jp · ジャパンサーチ · TWL (2023年10月) 貪欲法(どんよくほう、英: greedy algorithm)は、アルゴリズムの一種、欲張り法(よくばりほう)、グリーディ算法(グリーディさんぽう)ともいう。 貪欲法は局所探索法と並んで近似アルゴリズムの最も基的な考え方の一つである。 このアルゴリズムは問題の要素を複数の部分問題に分割し、それぞれを独立に評価を行い、評価値の高い順に取り込んでいくことで解を得るという方法である。動的計画法と異なり保持する状態は常に一つであり、一度選択した要素を再考する事は無い

  • サービス終了のお知らせ

    サービス終了のお知らせ いつもYahoo! JAPANのサービスをご利用いただき誠にありがとうございます。 お客様がアクセスされたサービスは日までにサービスを終了いたしました。 今後ともYahoo! JAPANのサービスをご愛顧くださいますよう、よろしくお願いいたします。

  • 病みつきになる「動的計画法」、その深淵に迫る

    数回にわたって動的計画法・メモ化再帰について解説してきましたが、今回は実践編として、ナップサック問題への挑戦を足がかりに、その長所と短所の紹介、理解度チェックシートなどを用意しました。特に、動的計画法について深く掘り下げ、皆さんを動的計画法マスターの道にご案内します。 もしあなたが知ってしまったなら――病みつきになる動的計画法の集中講義 前回の『アルゴリズマーの登竜門、「動的計画法・メモ化再帰」はこんなに簡単だった』で動的計画法とメモ化再帰を説明しましたが、前回の説明ではまだ勘所をつかめていない方がほとんどでしょう。そこで、これらを完全にマスターするため、今回はもう1つ具体例を挙げながら練習したいと思います。 どういった問題を採用するかは悩みましたが、非常に有名な「ナップサック問題」を取り上げて説明します。 ナップサック問題とは以下のような問題です。 幾つかの品物があり、この品物にはそれぞ

    病みつきになる「動的計画法」、その深淵に迫る
  • Sentinel value - Wikipedia, the free encyclopedia

    In computer programming, a sentinel value (also referred to as a flag value, trip value, rogue value, signal value, or dummy data) is a special value in the context of an algorithm which uses its presence as a condition of termination, typically in a loop or recursive algorithm. The sentinel value is a form of in-band data that makes it possible to detect the end of the data when no out-of-band da

  • 番兵 - Wikipedia

    番兵(ばんぺい、英: sentinel)は基地、野営地の出入りを警備する任務に就く兵士を指す。歩哨とも言う。 転じてプログラミング用語としては、データの終了を示すために配置される特殊なデータを指す。番人(ばんにん)とも言う。以下ではこの意味について示す。 実際にはこの用語は、微妙に異なる以下の2つの意味で使われる。 実データには出現しない、データの終了を表すための専用の値 入力データを処理するループの終了条件が複数ある場合に、条件判定の数を削減するために置くダミーのデータ 主に可変長データの終了を識別するために、終了を示す記号として予約された値。 番兵の具体例としては、LISPで無効値を示すNILや、C言語の文字列終端を示すヌル文字(\0)などがある。また、ポインタを扱う言語ではヌルポインタが定義されており、線形リストや木構造などの終端を示すために使われる。 番兵を含むデータを処理するプロ

  • XOR交換アルゴリズム - Wikipedia

    XOR交換(エックスオアこうかん、XOR swap)は、コンピュータ・プログラミングのアルゴリズムの一種であり、排他的論理和(XOR)を使用して一時変数を使わずに同じデータ型のふたつの変数の(異なる)値を交換する操作である。 このアルゴリズムはXORの対称差という性質を利用したものである。すなわち、任意のA, Bについて、(A XOR B) XOR B = A が成立することである。 標準的な交換アルゴリズムでは一時的な格納場所が必要となる。x と y の値を交換する場合、以下のようになる。 y の値を一時格納域にコピーする:temp ← y y に x の値を代入する:y ← x x に一時格納域の値を代入する:x ← temp あるいは、x と y が整数ならば、以下のようなアルゴリズムで交換することができる。 x := x + y y := x - y x := x - y ただし、

  • シェルソート - Wikipedia

    間隔5, 3, 1のシェルソートにおける要素の交換を示した図 シェルソート(改良挿入ソート、英語: Shellsort, Shell sort, Shell's method)は、1959年にドナルド・シェルが開発した[2]ソートのアルゴリズム。挿入ソートの一般化[3]であり、配列の中である程度間隔が離れた要素の組ごとに挿入ソートを行い、間隔を小さくしながら同様のソートを繰り返すことで高速化するアルゴリズムである。ただし、挿入ソートと異なり、安定ソートではなくなる。 アルゴリズムの基は挿入ソートと同じである。挿入ソートは「ほとんど整列されたデータに対しては高速」という長所を持つが、隣接した要素同士しか比較・交換を行わないため、あまり整列されていないデータに対しては低速であった。 シェルソートは、「飛び飛びの列を繰り返しソートして、配列を大まかに整列された状態に近づけていく」ことにより、挿

    シェルソート - Wikipedia
  • Security Akademeia【セキュリティアカデメイア】

    当サイトの一部ページには、アフィリエイト・アドセンス・アソシエイト・プロモーション広告を掲載しています。 Amazonのアソシエイトとして、Security Akademeiaは適格販売により収入を得ています。 広告配信等の詳細については、プライバシーポリシーページに掲載しています。 消費者庁が、2023年10月1日から施行する景品表示法の規制対象(通称:ステマ規制)にならないよう、配慮して記事を作成しています。もし問題の表現がありましたら、問い合わせページよりご連絡ください。 参考:令和5年10月1日からステルスマーケティングは景品表示法違反となります。 | 消費者庁

    Security Akademeia【セキュリティアカデメイア】
  • アルゴリズムとデータ構造 - プログラミングスレまとめ in VIP

    計算量 † アルゴリズムがどれだけ効率的かを示す概念が計算量です。通常、単に計算量と述べた場合は、データ数nに対してどれだけ時間がかかるかを示す時間計算量を指しますが、場合によってはどれだけメモリを消費するかを示す空間計算量を問題にするケースもあります。計算量は、通常データ数nが十分大きい場合にnのどういう関数に比例して計算時間/メモリ消費が増えるかという形式で表します。 具体的に、下に述べている線形探索の例で計算量を考えてみましょう。この関数では、ループをサイズn回だけ回していますが、このループ1回辺り時間tだけかかるとしましょう。さらに、関数の呼び出し等により、データ数にかかわらず一定の時間sがかかると考えられます。従ってこの関数に費やす時間はnt+sですね。この時、十分大きいnを考え、かつ定数倍は無視して考えます。例えばntがsの10000倍だと仮定しましょう。この時sの寄与は、体重

  • バブルソートの遅さを体感してみる - yarbの日記

    バブルソートには思い出がある。大学生のときにPC-9801で落ちゲーを作った。上から落ちてくるトランプのカードを5×5のマトリックスに積み上げて、縦横斜めでポーカーの役を作る。やりこむと「縦列で数字を揃えようとしても最後で失敗する確率が高くてスコアの期待値は低い。むしろ横のフラッシュを多く目指せ。フラッシュ作りは一気にやらないと失敗のペナルティが高すぎる」というような経験則が蓄積していく楽しいゲームだった。いまでもやりたいぐらい。たぶんオリジナルは「琉球」という名前のアーケードゲームだった。 そのとき、ポーカーの役判定のロジックを書き下ろしたときにやったのが、バブルソートだということを、かなり後になってから知った。当時はソートという言葉すら知らなかった。 カードは最大で5枚だし、チェックすべき列も1度に最大4列だから、どんなにひどいことをやっても処理時間はかからないということは分かっていた

    バブルソートの遅さを体感してみる - yarbの日記
  • 連結リストのソート - yarbの日記

    C入門、プログラミング入門として、連結リストの次に基的なソートをやってみようと少し格闘してみた。単純なint配列とかじゃテキストのままなので、どうせだったら連結リストを並べ変えてみようと思ったのが間違いだった。 まず、いちばん簡単なのは隣り合うノードを入れ替えるswap関数を作ることかと思った。ある世代以降のCでは構造体同士の代入ができるらしいので、もしかしてポインタ入れ替えよりも、ごそっとデータを入れ替えるのが正解なのかと一瞬思ったけど、さすがにそれじゃリストの意味がない。 ともあれ、swap関数さえあれば、後はリストを順にたぐりつつ入れ替えればバブルソートはすぐできるはず。でも、考えてみると、2個のノードを入れ替えるといってもそれらが隣接するノードとの配線もあるので、どうも単純じゃない。しかも、先頭はlist->headと特殊なポインタで参照されていたり、最後はNULLで終わっていた

    連結リストのソート - yarbの日記
  • Oit And Indirect Illumination Using Dx11 Linked Lists

    The document discusses using DirectX 11 linked lists and per-pixel linked lists to implement order-independent transparency (OIT) and indirect illumination. It describes how linked lists can be used to store transparent fragments and then sort and blend them for OIT. It also explains how to trace rays through linked lists to compute indirect shadows for indirect illumination. The techniques open u

    Oit And Indirect Illumination Using Dx11 Linked Lists