タグ

algorithmに関するHashのブックマーク (172)

  • (ウェーブレット変換を用いたデジタルデータのノイズ除去を行う手順書)

    アプリケーションパターンのホームへ戻る ■ (ウェーブレット変換を用いたデジタルデータのノイズ除去を行う手順書) ○アプリケーションパターンの説明 時系列データの分析方法としては、Fourier変換・逆変換などが古くから 使われてきました。これらの方法は、対象とするデータの時間領域を周波数領域 に変換し、データの性質を調べるものでした。また、ローパスフィルタやハイパス フィルタなどのフィルタにデータを通すことによりノイズの除去も可能です。 しかし、ノイズが全周波数領域にわたる場合には、ノイズと信号を分離することは 大変難しいことです。 このアプリケーションパターンでは、デジタルデータをファイルから入力し、 そのデータが含むノイズをウェーブレット(Wavelet)変換を用いて除去するこ とを可能にします。Fourier変換では不可能なノイズ除去も可能になります。 Wavelet変換の理論

  • ImageMagick 改造入門 (その弐) 減色処理前編 | GREE Engineering

    こんにちは。クライアント基盤チームのよやです。 アバター等を表示する為に PNG や JPEG の画像を元に GIF アニメーションを生成する事がよくありますが、GIF は 256色までしか扱えない為、元画像が数万といった単位で色を使っていると減色処理に大変時間がかかります。そこで、ImageMagick の減色処理を改造して高速化した事例をご紹介します。 尚、一度に読む分量ではまとめ切れない為、前編と後編に分けました。前編は減色処理、後編はその改造について説明します。 プログラム構成では上の図の magick/quantize.c が減色処理に相当します。 まず、減色処理の一般的な話から始めます。 減色の利点 Web で見かける画像ファイルの多くは、1つのpixel(描画の最小単位)に対して、Red, Green, Blue が各々8bits で計 24bits(= 3bytes) 、透

    ImageMagick 改造入門 (その弐) 減色処理前編 | GREE Engineering
    Hash
    Hash 2012/09/22
    丁寧すぎる..
  • http://www.machu.jp/posts/20060725/p01/

    http://www.machu.jp/posts/20060725/p01/
  • すごく簡単なアルゴリズムがphpで書けなくてつらい - Qiita

    ある条件でソートされているIDのリストを与えられて、なんとなく近い範囲でマッチングさせたいという要件があった。配列からの任意の要素の取り出しは O(n) だけど、末尾や末尾から固定した範囲の要素に限って言えば O(1) なので、後ろの方からマッチングさせながら要素を取り出していけば O(n) でマッチングできるはず。 なんにも難しいことは無い話で、 Python で書けばこうなる。 list.pop() が末尾からのインデックス (-1 が最後の要素を表す) を許すのが地味に便利だ。 # coding: utf-8 def match(seq, r=100): from random import randint # 奇数個の時に先頭周辺の要素がボッチになるのが嫌なら、先に後ろの方の # 要素を取り除いて偶数にしておくこと. while len(seq) >= 2: # 引数を省略すると末

    すごく簡単なアルゴリズムがphpで書けなくてつらい - Qiita
  • BlockSorting

    BlockSortingは、今までのデータ圧縮で有名な方法であるLZ法とは全く違う、ユニークな操作を用 いてデータを圧縮する方法であり、M.BurrowsさんとD.J.Wheelerさんが作者なので「BWTransform」 ともいいます。 このアルゴリズムは簡単に言ってしまえば、「データをぐるぐる回してソートして出力」というも のです。簡単すぎるかもしまいませんが、当にそうなんです。 ちなみに、このBlockSorting、単体では全く圧縮しません。ただ可逆な形にデータを変換すると いうものです。しかし、BlockSorting後のデータは非常に圧縮されやすい状態になります。例える と、色々な形をしたスポンジ(データ)が箱にごちゃごちゃに入って山積みになっているとします 。 これをそのまま上からギューっと押しつぶすのがLZ法やHuffman法なのに対し、一度、形が似た も

  • osamu kimura - Google +

    Hash
    Hash 2012/07/13
    アルゴリズム勉強会のひと。かなりしっかりした内容の勉強会で、興味ある
  • プログラミングコンテストでの乱択アルゴリズム

    2013/1/9に統数研チャンネルにて、ウェーブレット木の解説をしました。岩波書店より出版されました「高速文字列解析の世界」の解説になっています。

    プログラミングコンテストでの乱択アルゴリズム
    Hash
    Hash 2012/07/04
    数学ガール乱択アルゴリズム読んでるのでこれも
  • ハッシュ値の有効性 ITに疎い裁判官が起こした問題

    フォレンジック調査(科学的な調査)などの「原の真正性」を担保している「ハッシュ値」について、数年前にある裁判でとんでもない判決が出された。外国のことではあるが、筆者にとってはショックであった。今回はその事件について述べたい。 「ハッシュ」とは何か? この事件について述べる前に、「ハッシュ値」について少し解説したい。IT専門家にとっても極めて重要なキーワードなので、ぜひご理解いただきたいものである。Wikipediaでは「ハッシュ」の生成計算で用いる「ハッシュ関数」について、次のように定義している。 これだけではやや難解なので簡単に言うと、例えば、あるファイルを配布した場合に、「そのファイルが最後の1ビットまできちんと送信されたのか」「送信中にデータの誤り発生が起きていなかったのか」「途中の経路で改ざんされていないのか」「ウイルスでも中に仕込まれていないのか」――これは送信側、受信側ともに

    ハッシュ値の有効性 ITに疎い裁判官が起こした問題
    Hash
    Hash 2012/06/28
    これ弁護団の主張が言葉巧みだったんだろうか。
  • 乱択アルゴリズム - Wikipedia

    乱択アルゴリズム(らんたくアルゴリズム)、ランダム・アルゴリズム(英: randomized algorithm)または確率的アルゴリズム(かくりつてきアルゴリズム、(英: probabilistic algorithm)は、その論理の一部に無作為性を導入したアルゴリズムである。通常のアルゴリズムでは自然数を順番にあてはめるような決定的な部分で、乱数による非決定的な選択を入れることで、「平均的に」よい性能を実現することを目的とすることがある。形式的には、乱択アルゴリズムの性能はランダムビット列で決定される確率変数となる。その期待値を期待実行時間[1]と呼ぶ。最悪の場合に関して「無視できる」ほどに低い確率であることが、一般に、この類のアルゴリズムが効果的である要件となる。 n 個の要素からなる配列から「a」という要素を探す問題を考える。この配列の各要素は半分が「a」で残りが「b」である。単純

  • ハッシュ関数 - Wikipedia

    この記事は検証可能な参考文献や出典が全く示されていないか、不十分です。 出典を追加して記事の信頼性向上にご協力ください。(このテンプレートの使い方) 出典検索?: "ハッシュ関数" – ニュース · 書籍 · スカラー · CiNii · J-STAGE · NDL · dlib.jp · ジャパンサーチ · TWL (2018年6月) ハッシュ関数で名前と0から15までの整数をマッピングしている。"John Smith" と "Sandra Dee" のハッシュ値が衝突している。 ハッシュ関数 (ハッシュかんすう、英語: hash function) あるいは要約関数[1]とは、任意のデータから、別の(多くの場合は短い固定長の)値を得るための操作、または、その様な値を得るための関数のこと。ハッシュ関数から得られた値のことを要約値やハッシュ値または単にハッシュという。 ハッシュ関数は、主に

    ハッシュ関数 - Wikipedia
  • Loading...

    Loading...

    Loading...
    Hash
    Hash 2012/05/16
    FizzBuzzを関数プログラミングで書く。
  • ペイント・ルーチン (1)シード・フィル アルゴリズム

    ここでは、シード・フィル(seed fill)による閉領域の塗り潰し、いわゆるペイント・ルーチンについて取り上げたいと思います。 シード・フィル アルゴリズムは、以下のような流れになります。 塗り潰しの開始点(シード)として指定した 1ピクセルを塗る 今塗ったシード・ピクセルの周囲から塗り潰すべきピクセルを探す そのピクセルを新たなシードとして 1,2と同様の処理を繰り返す 新たなシードとなるピクセルがなくなった時点で塗り潰しは完了している 2のステップで見つかるシードの候補は一点だけとは限らないので、見つけたシードの候補は全てどこかに記憶しておく必要があります。そのあたりを考慮してアルゴリズムを練り直すと次のようになります。 シードとして指定した 1ピクセルを塗る 今塗ったシードピクセルの周囲から塗り潰すべきピクセルを探し、シードの候補としてその座標をバッファに記憶する バッファから 1

    Hash
    Hash 2012/05/12
    塗りつぶしのアルゴリズム。おもしれ
  • ブロックアルゴリズムとB-Treeアルゴリズム

    後で説明するが、ext2ではブロックグループ0の「スーパーブロック」に、パーティション内のブロックグループ全体の管理情報が格納される。 スーパーブロックには、 iノードの総数 ブロックサイズ ファイルシステムのサイズ 空きブロック数、空きiノード数 使用されているブロックグループ 最終fsck時刻 など、ファイルシステムに関するさまざまな情報が含まれている。「グループディスクリプタ」は、「データブロックビットマップ」や「iノードビットマップ」情報などを参照して空きブロックや空きiノードを探し、データを割り当てる際に最適なブロックを決定するのに使われる。 「データブロックビットマップ」と「iノードビットマップ」は、ビットマップ情報である。ビットマップ情報は、あるデータが使用中か未使用かを0か1のbitで保持している。1byte=8bitsなので、80個のブロックの状態を10bytesで管理で

    ブロックアルゴリズムとB-Treeアルゴリズム
    Hash
    Hash 2012/05/10
    読んでる
  • How Hacker News ranking algorithm works - amix.dk

    In this post I'll try to explain how Hacker News ranking algorithm works and how you can reuse it in your own applications. It's a very simple ranking algorithm and works surprising well when you want to highlight hot or new stuff. Digging into news.arc code Hacker News is implemented in Arc, a Lisp dialect coded by Paul Graham. Hacker News is opensource and the code can be found at arclanguage.or

  • MapReduce Patterns, Algorithms, and Use Cases

    In this article I digested a number of MapReduce patterns and algorithms to give a systematic view of the different techniques that can be found on the web or scientific articles. Several practical case studies are also provided. All descriptions and code snippets use the standard Hadoop’s MapReduce model with Mappers, Reduces, Combiners, Partitioners, and sorting. This framework is depicted in th

    MapReduce Patterns, Algorithms, and Use Cases
  • Karetta|プログラム不要の「制約プログラミング手習い」

    はじめにリンク情報制約ソルバーのインストールSugarのシンタックスバグ修正情報連環の数2連環の場合文法事始め3連環の場合domain7連環に挑戦差の連環abspredicate覆面算SEND+MORE=MONEY人間の解き方CSPで書いてみようweightedsumpredicate鶴亀算鶴亀算鶴亀トンボ算8クイーンチェス盤の用意配列がない斜めの考え方変数の激減策魔方陣サイズ3の魔方陣サイズ4の魔方陣ナンプレまえおきルールを制約へ9×9の標準問題対角線ナンプレクロスサムまえおきルールを制約へ普通サイズの問題ナイト巡回問題ナイト巡回問題とはナイトの動きを制約にするナイトの動きをpredicateで表現5×5を解き終えよう6×6に挑戦閉ループにしよう頑張らない閉ループの確認方法ナイトの動きの素直な表現elementで盤面に変換あかりルール盤面の用意ランプは互いに照らし合わないすべての白マスに

  • algorithm - mapBetween - 配列の隣接する2項にそれぞれ演算を施した配列 : 404 Blog Not Found

    2012年01月04日21:00 カテゴリLightweight Languages algorithm - mapBetween - 配列の隣接する2項にそれぞれ演算を施した配列 言語を増やしたかったのと、そういう関数に名前を付けたかったのとで1 entry割くことにしました。 等差数列 - タイトル 配列の隣接する2項にそれぞれ演算を施した配列を得たい。つまり、 f (+) [1,2,3,4,5] = [3,5,7,9] のような f が欲しい。 名前 もちろん等差数列を作るのにもこの関数は使えるのですが、この一般的に使える関数に使う名前としてはあまりに局所的。というわけで mapBetween としてみました。使いどころはかなり多そうです。各言語に標準装備されていないのがちょっと不思議なほど。 JavaScriptによる実装 Array.prototype.mapで滅多に使われない第

    algorithm - mapBetween - 配列の隣接する2項にそれぞれ演算を施した配列 : 404 Blog Not Found
    Hash
    Hash 2012/01/15
    これは便利だ
  • 月・日・曜日から年を同定する 年サーチカレンダー

    あなたが生まれた年のカレンダーが確認できます。あなたは何曜日生まれでしょう。こんど同じ曜日になるのは何年でしょう。

  • iPhoneで画像処理の高速化実験 - y_310's diary

    iPhoneOpenCVが使えることを知ったので、ついでに画像処理の高速化について今までもやもやしていたことをはっきりさせようと思い立ち実験してみた。 題材は画像のモザイク化 githubにあったこちら niw/iphone_opencv_test · GitHub のサンプルコードからforkさせてもらってモザイク化処理を追加した。 y310/iphone_opencv_test · GitHub コンパイルオプションはXcodeのデフォルトで-Os(最も高速で最小)、iPhoneOS3.1.2のReleaseビルドで実験した。 Step1 とりあえず何も考えずに実装 モザイク処理メソッドから抜粋。 元画像のmSize*mSize領域のRGB平均値を計算し、出力先画像の同領域をその平均値で埋める、という処理。 int mSize = [mosaicSize intValue]; Ipl

    iPhoneで画像処理の高速化実験 - y_310's diary
  • 凸包の計算と多角形の面積計算

    の出没する範囲を調べました。が出没する場所を最小の面積で囲む境界を考え、その面積を求めてください。 入力として、最初に頂点の数が与えられます。頂点の数は1から100までです。次に、頂点の座標が与えられます。頂点の座標は空白と改行で区切られます。 出力として、の行動範囲の面積を小数点以下2桁までの精度で示してください。 サンプル入力 14 0 0 3 0 4 0 5 1 4 2 5 3 6 6 4 4 0 4 0 6 6 0 2 2 0 7 1 6 サンプル出力 39.00 まず、が出没する場所を最小の面積で囲む境界を求めなくてはなりません。このような境界のことを凸包(convex hull)といいます。 なお、凸包は面積が最小であるだけでなく、面積を囲うための最小の長さの線分となります。凸包は、すべての点を囲む最小の凸多角形です。 凸包を求める包装アルゴリズム(package wr