タグ

algorithmに関するkeyesberryのブックマーク (20)

  • The Nature of Code

    Please submit corrections to the book on my Nature of Code GitHub repo. Bug reports for the site and online purchasing system can be reported on GitHub as well. Thanks everyone! Copyright © 2012 by Daniel Shiffman ISBN-13: 978-0985930806 ISBN-10: 0985930802 This work is licensed under the Creative Commons Attribution-NonCommercial 3.0 Unported License. To view a copy of this license, visit creativ

  • グラフの自動レイアウトに挑戦 #1 グラフ構造をSVGで表示 | matarillo.com

    2022-08-12 13:50:22 作成したアプリケーションとソースコード アプリケーション: https://refd6y.csb.app/ (ブラウザで実行します) ソースコード: https://codesandbox.io/s/graph-layout1-refd6y はじめに 連載記事のトップのところに書いた図はこのようなものだ。 これをコンピュータに自動配置させたい。 Eadesのばねモデル このような、つながった複数の物体をコンピュータに自動配置させるのは「グラフ描画」または「グラフレイアウト」と呼ばれる分野であり、さまざまなアルゴリズムが研究されている。この連載記事では比較的単純な「Eadesのばねモデル」というアルゴリズムを採用する。 Eadesのばねモデルとは、次のようなモデルをつくって物理シミュレーションすることで、物体を配置するアルゴリズムだ。 各ノード(頂点)

  • 中学生にもわかるウェーブレット行列 - アスペ日記

    id:echizen_tm さんの記事「ウェーブレット木の効率的で簡単な実装 "The Wavelet Matrix"」から始まったウェーブレット行列ブームから半年以上が過ぎ、すでに枯れた技術として確立されつつある感があります。 …嘘です。 日以外ではあんまり来ていません。 理由としては、やはりアルファベット圏では単語境界が明確であるため、こちらの記事で書かれているような「キーワード分割の難易度」といったことがあまり問題にならないということがあるかもしれません。 まあ、そういうわけで局所的に来ているウェーブレット行列ですが、日語をはじめとする単語境界のない言語圏にとっては重要なネタであると思うため、解説記事を書き直して*1みようと思います。 ウェーブレット行列でできること 主となる操作は、文字列に対する 定数時間の rank() と select()*2 です。 rank() は、「文

  • 手続き脳によるHaskell -- Sorting Algorithms

    このページは手続き脳から脱却でいない筆者が、Haskell による各種 ソートティングアルゴリズムを実装してみた結果を紹介するページです。ソート はアルゴリズムの基ですから、これで Haskell を攻略しようというわけ です。 ところで、Haskell に関するWebページを巡回していると、高階関数やモナド などを複雑に使ったアクロバチックでアブノーマルなコードに出会うことが しばしばあります。書いている超頭の良い人達は自らの変態さ加減が披露出来て 快感なのかもしれませんが、頭の悪い私にはそんなコードは理解できません... orz。 そこで私のページでは次のスローガンでプログラミングを行います 普通にやれ、普通に! そんなわけで「モナドを理解したい」とか常人には不可能な無理難題を期待 している人は他のページを当たってください。筆者自身が分かってないので解説 できません。ごめんなさい。

  • 古くて新しい自動迷路生成アルゴリズム - やねうらおブログ(移転しました)

    最近、ゲーム界隈ではプロシージャルテクスチャー生成だとか、プロシージャルマップ生成だとか、手続き的にゲーム上で必要なデータを生成してしまおうというのが流行りであるが、その起源はどこにあるのだろうか。 メガデモでは初期のころから少ないデータでなるべくど派手な演出をするためにプロシージャルな生成は活用されてきたが、ゲームの世界でプロシージャル生成が初めて導入されたのは、もしかするとドルアーガの塔(1984年/ナムコ)の迷路の自動生成かも知れない。 なぜ私が迷路のことを突然思い出したのかと言うと、最近、Twitterで「30年前、父が7年と数ヶ月の歳月をかけて描いたA1サイズの迷路を、誰かゴールさせませんか。」というツイートが話題になっていたからである。 この迷路を見て「ああ、俺様も迷路のことを書かねば!俺様しか知らない(?)自動迷路生成のことを後世に書き残さねば!」と誰も求めちゃいない使命感が

    古くて新しい自動迷路生成アルゴリズム - やねうらおブログ(移転しました)
  • システム・エンジニアの基礎知識

    静岡理工科大学情報学部コンピュータシステム学科菅沼研究室のページです.主として,プログラミング言語( HTML,C/C++, Java, JavaScript, PHP, HTML,VB,C# ),及び,システムエンジニアとしての基礎知識(数学,オペレーションズ・リサーチやシステム工学関連の手法)を扱っています.

  • Algorithms by S. Dasgupta, C.H. Papadimitriou, and U.V. Vazirani

  • 8queen問題 - 橋本詳解

    http://ja.wikipedia.org/wiki/エイト・クイーン すげー悩んだけどわりと綺麗にできた。 再帰+lambda渡しは再帰を巻き戻さないで良いので書きやすい。 変な書き方しないようにしたけど20行きった。 #!/usr/bin/env ruby def put(size=8, queens=[], &block) block.call(queens) if block and queens.size >= size (queens.empty? ? 1 : queens.last[:x]).upto(size).each do |x| 1.upto(size).each do |y| q = {:x => x, :y => y} next if queens.map{|i| q[:x] == i[:x] or q[:y] == i[:y] or q[:x]+q[:y]

    8queen問題 - 橋本詳解
  • データマイニングで使われるトップ10アルゴリズム - データサイエンティスト上がりのDX参謀・起業家

    2006年のデータマイニング学会、IEEE ICDMで選ばれた「データマイニングで使われるトップ10アルゴリズム」に沿って機械学習の手法を紹介します(この論文は@doryokujin君のポストで知りました、ありがとうございます!)。 必ずしも論文の内容には沿っておらず個人的な私見も入っていますので、詳細は原論文をご確認下さい。また、データマイニングの全体観をサーベイしたスライド資料がありますので、こちらも併せてご覧下さい。 データマイニングの基礎 View more presentations from Issei Kurahashi 1. C4.5 C4.5はCLSやID3といったアルゴリズムを改良してできたもので、決定木を使って分類器を作ります。決定木といえばCARTが良く使われますが、CARTとの違いは以下のとおりです。 CARTは2分岐しかできないがC4.5は3分岐以上もできる C

    データマイニングで使われるトップ10アルゴリズム - データサイエンティスト上がりのDX参謀・起業家
  • ハフマンツリーをRubyで書く - yarbの日記

    ハフマン符号化に使うハフマンツリーをRubyで作ってみた。2のキューを用意して、2つのノードをくっつけたり出し入れするのが簡単というのでそういう方針で。当は1はプライオリティ・キューでないとエンキュー時にソートするために効率が悪い。 # Huffman coding # class Node attr_accessor :val, :weight, :left, :right def initialize(val = "", weight = 0) @val, @weight = val, weight end def leaf? !(left and right) end end class HuffmanTree attr_accessor :freq, :que1, :que2, :root def initialize(str) @freq = count_freq(str.

    ハフマンツリーをRubyで書く - yarbの日記
  • GitHub - clever-algorithms/CleverAlgorithms: Clever Algorithms: Nature-Inspired Programming Recipes

    Download PDF Source Code Blurb Implementing an Artificial Intelligence algorithm is difficult. Algorithm descriptions may be incomplete, inconsistent, and distributed across a number of papers, chapters and even websites. This can result in varied interpretations of algorithms, undue attrition of algorithms, and ultimately bad science. This book is an effort to address these issues by providing a

    GitHub - clever-algorithms/CleverAlgorithms: Clever Algorithms: Nature-Inspired Programming Recipes
    keyesberry
    keyesberry 2011/01/26
    えっ、ただ?
  • TOP

    いろいろなソートアルゴリズム 大小関係が定められたたくさんのデータを、小さい順(昇順)あるいは大きい順(降順)に並べ替える作業をソート(整列)と言います。この処理は、さまざまなプログラムの中で頻繁に使われ、そのゆえ、古くからいろいろなアルゴリズムが考案されてきました。 並べ替えは、主にデータベースなどの大量のデータを処理する必要のあるプログラムで有用です。試験の点数の高い順番に並べ替えて、上位1000人を合格にするなどの場合は、点数による並べ替えが行われます。また、住所録のデータを住所毎にまとめて参照したい場合は、住所(文字列)による並べ替えが行われます。 このページでは、多くあるソートアルゴリズムのうち、以下の6通りのアルゴリズムについて説明し、Javaアプレットで実際の並べ替えの様子を見て、その特徴を理解することにします。 バブルソート バケットソート(ビンソート) 基数ソート ヒープ

  • jamboree.jp - jamboree リソースおよび情報

    This webpage was generated by the domain owner using Sedo Domain Parking. Disclaimer: Sedo maintains no relationship with third party advertisers. Reference to any specific service or trade mark is not controlled by Sedo nor does it constitute or imply its association, endorsement or recommendation.

  • あなたのスキルで飯は食えるか? 史上最大のコーディングスキル判定

    あなたのスキルで飯はえるか? 史上最大のコーディングスキル判定:makeplex salon(1/2 ページ) この問題ができたから優秀な人材とは限らないけれど、できない人は“ほぼ確実に”優秀ではない――プログラマーの皆さまの実力を計るコーディングスキル判定問題を用意しました。あなたはこの問題が解けるでしょうか? 新年度が始まり、新たに社会人となった読者の方も多いかと思います。あるいは、転職で心機一転がんばろうという読者もおられるでしょう。 あなたがもしプログラマーやSEといった職種であれば、ぜひ面白い仕事を手がけていただきたいと思いますが、そもそも開発分野で当に面白い仕事とは何かを考えたことはありますか? その答えを論ずる前に、少し前に話題となったトピックを取り上げたいと思います。それは、岡嶋大介氏の「人材獲得作戦」についてです。ご存じない方のために少し補足しておくと、岡嶋氏は、株価

    あなたのスキルで飯は食えるか? 史上最大のコーディングスキル判定
  • Rubyで作る実験的Quicksilverのようなもの - ザリガニが見ていた...。

    前回探った、略語(Abbreviation)と関連するテキストを点数付けするアルゴリズムは、Quicksilverの使い勝手を左右する重要な要素の一つだ。とすると、このアルゴリズムを取り込めば、なんちゃってQuicksilverもどきが出来るかもしれない...。と思って、まったく実用的ではないのだけど、実験的なソフトウェアとして試してみた。 作業環境 MacBook OSX 10.6.2 ruby 1.8.7 (2009-04-08 patchlevel 160) [i686-darwin9] 以下、コード中に半角¥が見える場合は、すべて半角\に置き換える必要があり。 Ruby版 scoreForAbbreviation Stringクラスを拡張して、to_scoreメソッドを追加した。 正規表現を利用して実装した。 マッチした部分とその前後の文字列が簡単に取得できるので、Objectiv

    Rubyで作る実験的Quicksilverのようなもの - ザリガニが見ていた...。
  • 最強最速アルゴリズマー養成講座:アルゴリズマーの登竜門、「動的計画法・メモ化再帰」はこんなに簡単だった (1/5) - ITmedia エンタープライズ

    動的計画法とメモ化再帰 今回は、非常によく用いられるアルゴリズムである、「動的計画法」「メモ化再帰」について説明します。この2つはセットで覚えて、両方使えるようにしておくと便利です。 なお、メモ化再帰に関しては、第5・6回の連載の知識を踏まえた上で読んでいただけると、理解が深まります。まだお読みになっていない方は、この機会にぜひご覧ください。 中学受験などを経験された方であれば、こういった問題を一度は解いたことがあるのではないでしょうか。小学校の知識までで解こうとすれば、少し時間は掛かるかもしれませんが、それでもこれが解けないという方は少ないだろうと思います。 この問題をプログラムで解こうとすると、さまざまな解法が存在します。解き方によって計算時間や有効範囲が大きく変化しますので、それぞれのパターンについて考えます。 以下の説明では、縦h、横wとして表記し、プログラムの実行時間に関しては、

    最強最速アルゴリズマー養成講座:アルゴリズマーの登竜門、「動的計画法・メモ化再帰」はこんなに簡単だった (1/5) - ITmedia エンタープライズ
  • アルゴリズム設計 講義資料 2005

    Algorithm Design Course Materials 2013 Oct 7: Introduction and Computational Complexity Oct 15: Search Trees Oct 21: Combinatorial Optimization Oct 28: Heuristic Search Nov 5: Text Search Nov 11: Data Compression Nov 18: Memory Management Nov 25: Graph Algorithms 1/2 Dec 2: Graph Algorithms 2/2 Dec 9: Computational Geometry Dec 16: Concurrency Control Jan 15: Canceled Jan 20: Clustering Course Pro

  • ダイクストラ法(最短経路問題)

    ダイクストラ法 (Dijkstra's Algorithm) は最短経路問題を効率的に解くグラフ理論におけるアルゴリズムです。 スタートノードからゴールノードまでの最短距離とその経路を求めることができます。 アルゴリズム 以下のグラフを例にダイクストラのアルゴリズムを解説します。 円がノード,線がエッジで,sがスタートノード,gがゴールノードを表しています。 エッジの近くに書かれている数字はそのエッジを通るのに必要なコスト(たいてい距離または時間)です。 ここではエッジに向きが存在しない(=どちらからでも通れる)無向グラフだとして扱っていますが, ダイクストラ法の場合はそれほど無向グラフと有向グラフを区別して考える必要はありません。 ダイクストラ法はDP(動的計画法)的なアルゴリズムです。 つまり,「手近で明らかなことから順次確定していき,その確定した情報をもとにさらに遠くまで確定していく

  • http://www.ic-net.or.jp/home/takaken/pz/index.html

  • データ圧縮法概説 目次

    最終更新日:2001年7月2日 第1章へ webmaster@snap-tck.com Copyleft (C) 2000 SNAP(Sugimoto Norio Art Production)

  • 1