タグ

algorithmに関するurulokiのブックマーク (22)

  • 正規表現入門 星の高さを求めて

    第13回日情報オリンピック(JOI2013/2014)春季トレーニング合宿での講義資料です. http://www.ioi-jp.org/camp/2014/2014-sp_camp-rules.html 【概要】 正規表現とはパターンマッチングのための記法であり,文字列検索の便利な道具として広く親しまれています.この講義では,正規表現の基礎から始め,「星の高さ」という性質に注目して正規表現の裏側に潜む数理構造に迫っていきます.1960年代から未解決である「星の高さ問題」に浪漫を感じてもらえると幸いです.

    正規表現入門 星の高さを求めて
    uruloki
    uruloki 2014/03/24
    こういう背景があったのか。勉強になる。
  • 汎用ソート殺し - d.y.d.

    00:26 12/12/18 BookLive! 7月に出会ってからずっと電子書籍ストアとして BookLive! をひいきにしているのですが、一体どこが好きなのか語りたくなりました。 ITMedia の これでもう迷わない、電子書店完全ガイド という一連の記事の、 電子書籍の端末の話よりストアの話をしましょうよというコンセプトに思いっきり影響されています。 といっても、第一印象が「普通のことが普通にできるので感激した!!」というもので、 つまり今年の前半に使っていた幾つかの電子書籍ストア/専用アプリが残念だっただけかもしれません。 買ったがどこをクリックすれば読めるのか理解するのに10分かかった、とか、 6冊以上買うと棚アプリから画面外にがはみ出るので手でいちいち棚を変えて整理しないと読めない、とか。 当に普通に使えるという以上に特筆することもないんですが、 あ、でも、今年になる

    uruloki
    uruloki 2013/02/06
    ソートの可視化。AngelとDevilを並べて比較すると面白い。
  • DextroII先生のロマサガ閃きシステムのアルゴリズム講座

    つしま(あなたの原稿はどこから) @chartreuse37 @DextroII 先生ッ! サガシリーズの閃きシステムの概念ってどうなってるんですか!? って弟が言ってました よかったらちらっと教えてください 2011-11-13 18:26:54

    DextroII先生のロマサガ閃きシステムのアルゴリズム講座
    uruloki
    uruloki 2011/11/15
    不動剣や千手観音を閃くためにアルビオン先生を延々ど突いていた思い出。
  • 常識を覆すソートアルゴリズム!その名も"sleep sort"! - Islands in the byte stream (legacy)

    TwitterのTLで知ったのだが、少し前に海外掲示板で"sleep sort"というソートアルゴリズムが発明され、公開されたようだ。このアルゴリズムが面白かったので紹介してみる。 Genius sorting algorithm: Sleep sort 1 Name: Anonymous : 2011-01-20 12:22 諸君!オレは天才かもしれない。このソートアルゴリズムをみてくれ。こいつをどう思う? #!/bin/bash function f() { sleep "$1" echo "$1" } while [ -n "$1" ] do f "$1" & shift done wait example usage: ./sleepsort.bash 5 3 6 3 6 3 1 4 7 2 Name: Anonymous : 2011-01-20 12:27 >>1 なん…だと

    常識を覆すソートアルゴリズム!その名も"sleep sort"! - Islands in the byte stream (legacy)
    uruloki
    uruloki 2011/05/20
    ホントに常識が覆ったよw
  • 正規表現で素数判定 - NO!と言えるようになりたい

    追記:ハッキリ言ってこの正規表現はネタなので,実際に素数判定を行いたい場合は,もっと別な賢いアルゴリズムを使ったほうが良いです 正規表現で素数が判定できるという記事を見たので試してみた. http://www.noulakaz.net/weblog/2007/03/18/a-regular-expression-to-check-for-prime-numbers/ この記事によると /^1?$|^(11+?)\1+$/ という正規表現を使うと,素数判定が出来るらしい.ある整数 n が素数かどうか判定したい場合は,"1" * nという文字列がこの正規表現にマッチするかどうかを調べればよく,マッチすれば非素数,マッチしなければ素数となる.ただし,"1" * n は,例えば,n が 4 ならば "1111" と 1 が 4 回連続して続く文字列となる. Rubyで書いた素数判定プログラムはこん

    正規表現で素数判定 - NO!と言えるようになりたい
    uruloki
    uruloki 2010/07/22
    ああ分かった。これは面白い。多分使うことはないけど。
  • NYの風物詩「爆発するマンホール」とその研究 | WIRED VISION

    前の記事 『Apple TV』が『iOS』で成功する理由 小惑星ルテティアに「超接写」:画像ギャラリー 次の記事 NYの風物詩「爆発するマンホール」とその研究 2010年7月13日 サイエンス・テクノロジー コメント: トラックバック (0) フィードサイエンス・テクノロジー Rachel Ehrenberg 2007年8月23日にニューヨーク市のBroadway and Wall Streetで爆発したマンホール。周りにいるのは警察官とCon Edison社の社員。Photo:Edouard H.R. Gluck(AP) ニューヨーク市では時おり、150キロ以上ある鋳鉄の円盤が、建物数階分の高さを飛び、派手な音を立てながら道路に戻ってくることがある。 1882年にトーマス・エジソンによって市の送電網が始まって以来、ニューヨーカーたちは、突然煙を噴出したり、火を噴いたり、爆発したりするマン

    uruloki
    uruloki 2010/07/13
    "NYの風物詩"マンホールが飛ぶ事で季節の訪れを感じたりするのか。そんなニューヨーカー嫌だ。
  • 経路探索アルゴリズムの「ダイクストラ法」と「A*」をビジュアライズしてみた - てっく煮ブログ

    as詳解 ActionScript 3.0アニメーション ―衝突判定・AI・3DからピクセルシェーダまでFlash上級テクニック を読んでいて、経路探索のアルゴリズムで A* が取り上げられていました。A* については、いろいろ検索して調べたりもしたのですが、やっぱりに書いてあると理解しやすいですね。せっかくなので自分流に実装してビジュアライズしてみました。ダイクストラ法まずは A* の特別なケースでもあるダイクストラ法から見ていきます。クリックすると探索のシミュレーションが開始します。スタート地点(S)からゴール(G)への探索が始まります。色がついたところが「最短経路が決定した場所」です。スタート地点から少しずつ探索が完了していきます。半分ぐらい完了しました。まだまだ進みます。最後まで終わりました。最短経路を黒色矢印で表示しています。ダイクストラ法は、スタート地点から近いノード(=マス

    uruloki
    uruloki 2010/01/27
    わかりやすい。/そういえばソートアルゴリズムも可視化されたのを見て納得いった覚えがある。
  • 遺伝的アルゴリズム - 遺伝的アルゴリズム

    このページでは遺伝的アルゴリズムの基礎を紹介します。 どのページも遺伝的アルゴリズムをなんの事前知識も無しで学習するのに役立つように作られています。 コンピュータプログラムに関しての少しの知識があることが前提となっていますが。 いくつかの遺伝的アルゴリズムに関するJava appletsによるデモンストレーションを見ることができます。 These pages introduce some fundamentals of genetics algorithms. Pages are intended to be used for learning about genetics algorithms without any previous knowledge from this area. Only some knowledge of computer programming is assu

    uruloki
    uruloki 2009/11/03
    遺伝的アルゴリズムの解説。via http://blog.alumican.net/2009/10/29_003222
  • アルゴリズムの紹介

     ここでは、プログラムなどでよく使用されるアルゴリズムについて紹介したいと思います。 元々は、自分の頭の中を整理することを目的にこのコーナーを開設してみたのですが、最近は継続させることを目的に新しいネタを探すようになってきました。まだまだ面白いテーマがいろいろと残っているので、気力の続く限りは更新していきたいと思います。 今までに紹介したテーマに関しても、新しい内容や変更したい箇所などがたくさんあるため、新規テーマと同時進行で修正作業も行なっています。 アルゴリズムのコーナーで紹介してきたサンプル・プログラムをいくつか公開しています。「ライン・ルーチン」「円弧描画」「ペイント・ルーチン」「グラフィック・パターンの処理」「多角形の塗りつぶし」を一つにまとめた GraphicLibrary と、「確率・統計」より「一般化線形モデル」までを一つにまとめた Statistics を現在は用意して

    uruloki
    uruloki 2009/10/16
    描画関連のアルゴリズムは全然縁がない。
  • Giant galaxy hosts the most distant supermassive black hole (RAS PN 09/54)

    The RAS offices at Burlington House will be closed for the May bank holiday. The last day Fellows and visitors can make use of the facilities is Friday 23rd May 2025. The RAS is then closed from 26 -27th May inclusive. We will re... The Royal Astronomical Society has endorsed a statement highlighting "grave" concerns about threats to academic freedom and international research collaboration in the

    Giant galaxy hosts the most distant supermassive black hole (RAS PN 09/54)
    uruloki
    uruloki 2009/09/02
    すばる望遠鏡の観測によって、これまでで最も遠い、超大質量ブラックホールとそれを囲む巨大銀河を発見。推定128億光年、10億太陽質量以上。/新しい高感度CCDカメラを使った模様。天文台のプレスリリースがあるかな。
  • 一番右端の立っているビット位置を求める「ものすごい」コード - 当面C#と.NETな記録

    一番右端の立っているビット位置(RightMostBit)を求めるコードで速いのないかなーと探していたら、ものっっっすごいコードに出会ってしまったのでご紹介。2ch のビット演算スレで 32bit 値のコードに出会って衝撃を受けて、その後 64bit 値版のヒントを見つけたのでコードを書いてみました。 この問題は ハッカーのたのしみ―物のプログラマはいかにして問題を解くか (Google book search で原著 Hacker's delight が読めたのでそれで済ませた) で number of trailing zeros (ntz) として紹介されています。bit で考えたときに右側に 0 がいくつあるかを数えるもの。1 だと 0、2 だと 1、0x80 なら 7、12 なら 2 といったぐあい。0 のときに表題どおりの問題として考えるといくつを返すの?ってことになるので、

    一番右端の立っているビット位置を求める「ものすごい」コード - 当面C#と.NETな記録
    uruloki
    uruloki 2009/07/05
    「ハッカーのたのしみ」もかなりの魔術書だけど、これはすごい。
  • できる!遺伝的アルゴリズム

    2. 自己紹介 ・前鼻 毅(まえはな つよし) ・ふつうの 基幹系 SE 兼 PM ・ 文系 大学出身 ・大体 スープカレー で出来ている ・ 数学ガール いいよね! twitter:sandinist , mixi:mae

    できる!遺伝的アルゴリズム
    uruloki
    uruloki 2009/06/23
    これは面白そう。/一部英数字のカーニングがおかしくなってる。
  • 北海道を落とすとどう跳ねるのか?の裏側 - てっく煮ブログ

    asおかげさまで大好評の 北海道を落とすとどう跳ねるのか? ですが、どのように作ったか、製作過程を紹介することにします。1. 地図の素材を取ってくるまずは地図の素材が必要です。以下のサイトから拝借しました。白地図、世界地図、日地図が無料pdf や eps 形式の地図データを無料で配布してくれているありがたいサイトです。2. 都道府県ごとに分割する上記の素材は県境もベクター形式で提供されていて大変ありがたかったのですが、島がどの都道府県に属しているかの情報がありませんでした。そこで、Google Maps と見比べながら、島を都道府県ごとに分類していきました。無事、全ての島を分類し終わって、こんな感じになりました。とても地味な作業でした…。3. 都道府県ごとに SVG で出力する次に、Illustrator 内で分類したデータをプログラムで扱える形式にしなければなりません。ここでは XML

    uruloki
    uruloki 2009/04/22
    衝突判定どう処理してるのか知りたかった。これは面白そうだ。
  • Spaghetti Source - 各種アルゴリズムの C++ による実装

    ACM/ICPC(プログラミングコンテスト)系列の問題を解くことを目標にして,各種アルゴリズムを C++ で実装してみた.極めて意地が悪い類の問題には対応していないし,特定の入力に対して高速に動くということもない.計算量も最良とは限らない. これらを参考にする方への注意とお願い: これらの記述は正確とは限りません.参考文献を参照することを強く推奨します.間違っている場合は是非教えてください. これらのプログラムは間違っているかもしれません.各人で検証することを強く推奨します.バグがあれば是非教えてください. 分類が怪しいので,これはこっちだろう,ということがあればコメントを下さると助かります. 注意! 現在書き換え中 TODO 分類を正しく行う. 全体的に説明と使い方を詳しく. Verify していないものを Verify. ボロノイ図(いつになることやら……) 基 テンプレート グラフ

    uruloki
    uruloki 2009/04/14
    有名どころがそろっている。理解していないものは参考に、理解しているものはもっと良い実装がないか考えながら読む。
  • おとうさん、ぼくにもYコンビネータがわかりましたよ! - 2009-04-09 - きしだのはてな

    やっと、Yコンビネータが何を意味するものなのか、どういう意義があるのかがわかりました。 名前を使わず再帰ができますよ!というだけのものじゃなかったのですね。 まずλありき 関数の話をしたいのです。 そのとき、いちいち hoge(x) = x * 2 としてhogeを・・・、とか名前をつけて話を進めるのがめんどうなので、関数を値としてあらわすと便利ということで、λという値を定義するのです。 そうすると、上のhoge関数なんかはλ(x)(x*2)などとあらわせますが、引数をあらわすのに()を使うといろいろまぎらわしいので、 λx.x*2 のように表記します。 というのがλ。 このとき、λになにかわたされたら、引数としてあらわされる部分を単純におきかえます。 (λx.x*2)y とあったら、xの部分をyでおきかえて (λx.x*2)y → y * 2 となります。λの引数部分を与えられた引数で置

    おとうさん、ぼくにもYコンビネータがわかりましたよ! - 2009-04-09 - きしだのはてな
    uruloki
    uruloki 2009/04/10
    まだ理解が中途半端。読み直す
  • bitsliceによる超高速ビット演算 : DSAS開発者の部屋

    bitslice とは Hack the Cell '09 に参加して知った、Cellに限らず一般的に使えるビット演算の高速化手法について紹介します。 Bitslice と呼ばれる手法では、ビット順を90度回転します。言葉で説明するよりもコードを見たほうが早いので、回転させるコードの例を見てください int x[32], y[32]; // x が元のデータ、y が回転後のデータ. for (int i = 0; i < 32; ++i) { int t = 0; for (int j = 0; j < 32; ++j) t |= ((x[j] >> i) & 1) << j; // x[j] の i ビット目を y[i] = t; // y[i] の j ビット目にする } この変換をすることで、y[0] には x[0] - x[31] の最下位ビットが、 y[1] には 2番目のビット

    bitsliceによる超高速ビット演算 : DSAS開発者の部屋
    uruloki
    uruloki 2009/04/07
    これは面白い。高速化のネタとして覚えておこう。
  • 【人工知能】物理エンジンで人工生命つくって学習させた

    運動学習させました。この仮想生物が試行錯誤をして動き方を学習しました。この動画はマルチエージェント進化シミュレータのanlifeを開発していたときに作りました。2020/10/4 追記この後作ったゾンビを宮崎駿監督にみていただいたところが2016年にNHKで放送され一部話題になりました。2016年超会議での超人工生命の生放送企画を経て、ドワンゴにて新たな人工生命を開発することに→ リリース後半年でサービスクローズ人工生命を作る会社を立ち上げました→ https://attructure.com/

    【人工知能】物理エンジンで人工生命つくって学習させた
    uruloki
    uruloki 2009/03/12
    ちょっと感動してる。
  • ガベージコレクションの実装法と評価

    1.はじめに プログラミング言語とはシステム化する対象物を抽象化し、コンピュータで処理可能なコードを記述するために用いる人工言語である。プログラミング言語はコンピュータの機械語と一対一の対応をもったアセンブラから始まり、コンパイラを用いて機械語に翻訳することを前提としたコンパイラ言語、インタプリタと呼ばれるプログラムがソースコードを解釈し実行するスクリプト言語と、記述できる抽象度を高める方向へと進化してきた。 プログラミング言語はその存在理由から、より抽象度の高い記述が行えること、すばやい開発を行える事が求められる。抽象度の高い記述とは、プログラムがどういう処理を行うか(HOW)ではなく何の処理を行うか(WHAT)を記述しやすい構文、機能を持っていることを、すばやい開発とは記述性の高さ、コードの密度の高さ、バグの発生しにくい構文、機能を持っていることをさす。 この抽象度の高い記述、すばやい

    uruloki
    uruloki 2009/02/25
    GC実装と評価。GCありLisp処理系。実装が参考になる
  • Sorting Algorithms Animations

    KEY Black values are sorted. Gray values are unsorted. A red triangle marks the algorithm position. Dark gray values denote the current interval (shell, merge, quick). A pair of red triangles marks the left and right pointers (quick). DISCUSSIONThese pages show 8 different sorting algorithms on 4 different initial conditions. These visualizations are intended to: Show how each algorithm operates.

    Sorting Algorithms Animations
    uruloki
    uruloki 2009/02/24
    ソートの様子を可視化。アルゴリズム8種、データ種別4種。速度比較や、得意不得意データ種別がわかる。
  • データ圧縮法概説 目次

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

    uruloki
    uruloki 2009/02/17
    データ圧縮アルゴリズムの解説。自分では実装しないだろうけど、関連したコードを読むときに役立てる