タグ

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

タグの絞り込みを解除

algorithmとAlgorithmに関するyukimori_726のブックマーク (472)

  • Goodfellow,Bengio,CourvilleさんのDeep Learning本の18章まとめ - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? Goodfellow,Bengio,CourvilleさんのDeep Learningの18章まとめ 重要と思った部分だけ独断で抽出しています. 当にメモ書き程度です. すみません. 間違っている記述があるかもしれません. 心眼で書いている部分があるかもです. Score matchingのくだりは正直よくわかっていないです. 18.Confronting the Partition Function 16章でやったように(無向グラフィカルモデルとかでは)規格化されていない確率分布がよく現れる. このとき規格化するためには積分をする

    Goodfellow,Bengio,CourvilleさんのDeep Learning本の18章まとめ - Qiita
  • 色の距離(色差)の計算方法 - Qiita

    はじめに 例えば以下の2つの画像,左と右の色を比べたときにどちらの方が色が近いと思いますか? #FF0000と#400000 #FF0000と#FFBF00 単純にRGB値の距離を計算すると二つの色の距離は同じ. しかし1つ目の画像は単に暗くなっただけなのに対して,2つ目の画像は色相が変わっているため,例えば写真のマッチングを取る場合は上の方が似た色として判別した方が都合が良くなったりする. こうした色の距離,色差の計算について実装してみた. ソースはJava 8を前提に書いているが,Androidでも動作する(はず).ただし,AndroidではColorクラスが違うため適宜変更してほしい. 下準備 JavaAndroidのColorクラスの違いや,RGB値の保存などを目的として下記のクラスを準備する.RGB値のint値を受け取るとそれぞれをdoubleの値として配列を作成し,保存する.

    色の距離(色差)の計算方法 - Qiita
  • ナップサック問題でマラソンマッチ入門 - notブログ

    マラソンマッチって? 競技プログラミングのうち、「より良い解を求める」ことを競うコンテストをマラソン形式と呼びます。 例えば厳密解を求めることができない問題について、近似解のスコアを競ったりします。 マラソンでよく使われるアルゴリズム マラソンで頻出なのは「ビームサーチ」と「焼きなまし法」です。 この記事ではナップサック問題を例にしてこの2つのアルゴリズムを解説します。 もちろん、この2つのアルゴリズムはどちらも近似アルゴリズムなので最適解は求められません。 ビームサーチ まずは順番にナップサックに入るだけ入れるコードを書いてみます。 #include <iostream> using namespace std; int main() { // 個数 const int N = 100000; // ナップサックの大きさ const int W = 100000; // 重さ・価値 in

    ナップサック問題でマラソンマッチ入門 - notブログ
  • PHP の壊れた mt_rand の品質を統計的に検証した - iwiwiの日記

    メルセンヌ・ツイスターと似て非なるアルゴリズムが実装されていたことが発覚して話題の PHP の mt_rand 関数の品質を統計的に検証しました.果たして,PHP の「壊れた」mt_rand は安心して使うことができるのでしょうか……? ちなみに,結論から言うと,PHP の壊れた mt_rand は,(少なくともこのテストの範囲では)家メルセンヌ・ツイスターと遜色ない品質を持っているようです.ただし,最後に PHP の乱数の別の懸念点についても紹介します. 壊れた mt_rand とは PHP の mt_rand は,ドキュメントによると,有名な乱数生成アルゴリズム「メルセンヌ・ツイスター」を利用して高品質の乱数を生成する関数です.ところが,どうやら一部では知られていたこととして,PHP の mt_rand の実装にはバグがあり,家メルセンヌ・ツイスターと挙動が一致していませんでした.

    PHP の壊れた mt_rand の品質を統計的に検証した - iwiwiの日記
  • https://qiita.com/conjugate_box/items/a5efcbe7d9be977367b8

  • なんでGCCはa*a*a*a*a*a を (a*a*a)*(a*a*a) に最適化できないの?っと

    c - Why doesn't GCC optimize a*a*a*a*a*a to (a*a*a)*(a*a*a)? - Stack Overflow 俺は科学技術計算の数値計算の最適化をしてたんだけどさ。GCCはpow(a, 2)をa*aにしてくれるんだな。うん。で、pow(a, 6)は最適化されずに、ライブラリ関数であるpowを呼んじゃうんだ。パフォーマンス的に最悪。(Intel C++ Compilerはpow(a,6)のライブラリ関数呼び出しを消し去ってくれるんだけどな) どうもよくわからんのが、pow(a, 6)をa*a*a*a*a*aで置き換えて、GCC 4.5.1をオプション"-O3 -lm -funroll-loops -msse4"で使ったら、mulsd命令を5個使う。 movapd %xmm14, %xmm13 mulsd %xmm14, %xmm13 mulsd

  • アルゴリズムとデータ構造

    書はコンピュータ サイエンスにおけるアルゴリズムとデータ構造を解説します。「プログラム書けるよ」と言う人達でも意外とアルゴリズムやデータ構造に関する知識を持っていません。 自身のプログラミング スキルを向上させたり隣のプログラマとちょっと差をつけるために是非とも身に着けておきたい知識です。 アルゴリズムとデータ構造は世の中にたくさんあります。書では適当な書籍で学べる基的なものを紹介します。データ構造の章では主に線形のデータ構造とグラフデータ構造を解説します。アルゴリズムの章では主に探索アルゴリズムと整列アルゴリズムを解説します。

  • diffの動作原理を知る~どのようにして差分を導き出すのか | gihyo.jp

    UNIXの基的なコマンドの1つであるdiff。 これに実装されているアルゴリズムは実に興味深い世界が広がっています。 稿では、筆者が開発した独自ライブラリ「dtl」をもとに「diffのしくみ」を解説します。 はじめに diffは2つのファイルやディレクトリの差分を取るのに使用するプログラムです。 ソフトウェア開発を行っている方であれば、SubversionやGitなどのバージョン管理システムを通して利用していることが多いかと思います。稿ではそのdiffの動作原理について解説します。 差分の計算の際に重要な3つの要素 差分を計算するというのは次の3つを計算することに帰結します。 編集距離 2つの要素列の違いを数値化したもの LCS(Longest Common Subsequence) 2つの要素列の最長共通部分列 SES(Shortest Edit Script) ある要素列を別の要

    diffの動作原理を知る~どのようにして差分を導き出すのか | gihyo.jp
  • Mo's algorithm - ペケンペイのブログ

    Mo’s algorithm について説明します。 Mo’s algorithm の動作の様子をアニメーションにしてみました。アニメーションを見れば、計算量解析パートは自明でしょう。IE以外なら見れると思います。 https://pekempey.github.io/mo_algorithm/mo.html Mo’s algorithm とは 区間クエリ系の問題を解くためのアルゴリズム。次のようなクエリに対して有効。 要素が更新されない クエリの先読みが可能 区間 [L,R] の結果から [L-1, R], [L+1, R], [L, R-1], [L, R+1] の結果が容易に得られる Mo’s algorithm の流れ まず区間を平方分割し、左端をキーにしてクエリをバケットに入れる。その後、各バケット内で右端をキーにしてソートする。 結局のところ上の操作は次の比較関数でソートすること

    Mo's algorithm - ペケンペイのブログ
  • アルゴリズム勉強会'31回 (2016/03/20 13:30〜)

    新機能 connpass API をメジャーバージョンアップし、「connpass API v2」を公開しました。APIの詳細な仕様や利用方法につきましては、 APIリファレンス をご確認ください。なお、旧バージョンの connpass API v1 は2025年末に廃止される予定です。 新機能 イベント参加者限定の懇親会やミニイベント開催に対応した「サブイベント機能」をリリースしました。 イベント運営を簡素化し、参加者の登録漏れや確認漏れを防ぐのにご活用ください。 主催の方はサブイベントを作成するから、参加者の方はサブイベントが設定されているイベントに参加するから詳細をご確認いただけます。

    アルゴリズム勉強会'31回 (2016/03/20 13:30〜)
  • 【統計学】ハミルトニアンモンテカルロ法をアニメーションで可視化して理解する。 - Qiita

    ハミルトニアンモンテカルロ法(HMC)の動作原理をアニメーションを用いて理解してみようという記事です。 先日の記事、「【統計学】マルコフ連鎖モンテカルロ法(MCMC)によるサンプリングをアニメーションで解説してみる。」の続編にあたります。 豊田先生の書籍「基礎からのベイズ統計学」の例題を使わせていただき、サンプリング対象の分布は今回ガンマ分布とします。記事ではアニメーションに使った部分の理論的な解説しかしませんので、HMCの詳細な解説はこちらの書籍をご参照いただければと思います。 はじめに 推定する対象は$\theta$を変数としたガンマ分布です。ベイズ推定で推定したいパラメーターを$\theta$で表すので、$\theta$の分布として表されます。1 ガンマ分布はこちらです。 $$ f(\theta|\alpha, \lambda) = {\lambda^{\alpha} \over

    【統計学】ハミルトニアンモンテカルロ法をアニメーションで可視化して理解する。 - Qiita
  • Algorithms, 4th Edition by Robert Sedgewick and Kevin Wayne

    essential information that every serious programmer needs to know about algorithms and data structures Online content. This booksite contains tens of thousands of files, fully coordinated with our textbook and also useful as a stand-alone resource. It consists of the following elements: Excerpts. A condensed version of the text narrative, for reference while online. Lectures. Curated studio-produc

  • Rubyで実装して楽しむ古典データ構造再入門(平衡木編) - hama_duのブログ

    Competitive Programming Advent Calendar 2014 7日目です。 今回は古典的なデータ構造をRubyで実装してみます。 まず通常の木、二分木からはじめ、その次に二分探索木、そして二分探索木に少し機能を加え高性能にした平衡二分探索木を扱います。 冒険の地図 木 二分木 二分探索木 平衡二分探索木 ランダム挿入二分探索木 Treap 基 木(Tree) 以下の図は木の例です。一番上にある頂点(丸)を根と呼びます。各頂点に直接ぶら下がっている頂点たちをまとめて子と呼びます。子を持たない頂点を葉と呼びます。 頂点同士は辺(棒)で結ばれています。木には、辺によってループができないという特徴があります。 木の性質 木には素晴らしい性質があります。各頂点の子を根と考える(上の部分は無視する)と、それぞれの子も木になっているという点です。それらの木のことを部分木と呼

    Rubyで実装して楽しむ古典データ構造再入門(平衡木編) - hama_duのブログ
  • Mathの高速化を検証する - Qiita

    Mathは当に遅いのか 色の距離(色差)を計算するときにちょっとだけ試してみたので,実際によくある(小手先)高速化手法でMathが速くなるのか検証してみた. 検証方法 JavaAndroidで検証. 単純に実行時間をSystem.nanoTimeで取得し,比較している. 検証順や検証タイミングで最適化がかかったりするので,何回か実行して落ち着いた値で比較している. Javaの検証はIntel Xeon E5 3.5GHzのMac Pro,Androidの検証はQualcomm Snapdragon 800 MSM8974 2.2GHzのSO-02Fで試している. 従来のMathクラスと,実装したDMathクラスで比較した. 10万回実行して1回あたりの実行時間をnano秒で表示している.詳しい方法は一番下を参照. べき乗の高速化 べき乗を計算するMath.pow()は小数のべき乗もサポ

    Mathの高速化を検証する - Qiita
  • JavaScript開発に役立つ重要なランダムの数式まとめ - ICS MEDIA

    プログラムで使うことの多い「乱数」。ゲーム開発やビジュアルアート、ウェブサイトのアニメーションにおいて乱数は非常に重要で、さまざまな用途で利用されています。プログラムで一般に乱数と聞くと、すべての数値が同じ頻度(分布)で出現する「一様乱数」と呼ばれる乱数をイメージする方が多いと思います。 多くの場合はこの「一様乱数」で取得した乱数を用いれば十分でしょう。しかし、場合によっては「一様乱数」ではなく、偏りのある乱数を用いることでコンテンツの見た目や現象の「自然さ」を演出することが可能です。 実は「一様乱数」に一手間加えることで、乱数の分布の偏りを制御できます。今回は乱数を使用して好みの分布を得るためのパターンをいくつか紹介します。 乱数分布のシミュレーションデモ (HTML5製) 次のデモはリアルタイムで乱数の出現頻度を計算し、グラフに可視化するコンテンツです。画面下のプルダウンで乱数の種類を

    JavaScript開発に役立つ重要なランダムの数式まとめ - ICS MEDIA
  • 累積和の使い方を学ぶ – himajinworks::blog

    ちょっととあるところで出くわしたので。 アルゴリズム苦手勢として、やったことはまとめておきたい。 あるデータ列Xがあって、Xのk個ずつの区間でのそれぞれの和を必要とする問題。(k≦|X|=N) 安直にやったら t_element x[N], r[N-K]; t_counter i, j; for (i = 0; i < N - K; i++) { r[i] = 0; for (j = 0; j < K; j++) { r[i] += x[i + j]; } } みたいな感じな気がする(コンパイルしてない)。でも超絶遅い。 でぐぐってみたら http://togetter.com/li/617816 の記事というかまとめを発見。累積和なるものを知る。 要は、 こんなことすると速くなるで、ってこと。 残念ながらそれまでの自分の頭のなかは画像の一番最後辺りの # zsh echo $(($(e

    累積和の使い方を学ぶ – himajinworks::blog
  • Hacker Newsのコメント欄で紹介される数の多い30冊 - YAMDAS現更新履歴

    Top 30 Books on Amazon Based on Links in Hacker News Comments 面白いことを調べる人がいるものだ。テック系ニュースサイトとしておなじみ Hacker News におけるコメント欄で紹介される数の多いを30冊選んでいる。 調べてみたら、だいたい邦訳が出ていた。やはりプログラマのニーズに違いはないということだろうか。邦訳のあるものを紹介数が上のものから並べておく。 アントレプレナーの教科書[新装版] アルゴリズムイントロダクション 第3版 第1巻: 基礎・ソート・データ構造・数学 (世界標準MIT教科書)、アルゴリズムイントロダクション 第3版 第2巻: 高度な設計と解析手法・高度なデータ構造・グラフアルゴリズム (世界標準MIT教科書) 影響力の正体 説得のカラクリを心理学があばく ピープルウエア 第3版 CODE コードから見た

    Hacker Newsのコメント欄で紹介される数の多い30冊 - YAMDAS現更新履歴
  • 終了いたしました。

    作者ホームページサービス(hp.vector)は終了いたしました。 長らくのご利用、ありがとうございます。 ご不明な点があれば、お問い合わせページをご覧の上、お問い合わせください。 ※15秒後にトップページに戻ります。 (c) Vector HOLDINGS Inc.All Rights Reserved.

  • Post by @shyouhei

    とりあえずHashが何であるかとか、どういう作りになっているかとか、そういうことは既知とする。リストの配列ってことね。←これで何言ってるか分からないおまえらにはこの文章はちょっとはやい。先にデータ構造の教科書を読むことをおすすめ。以下ではHashに登録されるキーとデータのペアのことをentryと呼び、リストの配列と言ったときのリストのほうをbin、配列のほうをbucketと呼ぶ。つまり、

    Post by @shyouhei
  • ~Pythonistaより愛をこめて贈るPython入門者のためのTips①~ - Qiita

    動機 Liaroで代表取締役をやりながら#HiveShibuyaで窓際戸締役をしている@hanaken_Nirvanaです。 会社では動画のレコメンドアプリを開発しているのですが、API〜レコメンドエンジンまで(DeepLearning※, NLP含めて)基的にPythonで書いています(ところどころScalaですが...)。 スタートアップ界隈でいうとRoRが多くPython人口も増えてほしいなぁーと思っていたのですが、『人工知能うぇい!』ブームにのってかPython教えて欲しいと言われることが度々あるので、その時のためにメモがてらPython初心者向けにPythonっぽい文法を中心に書こうかと思います。 まぁ偉そうに言っても僕もPython contributorでもないでもない、ただのPythonユーザーなんで間違いがあったらジャンジャン指摘して欲しいですʕº̫͡ºʔ ※ Deep

    ~Pythonistaより愛をこめて贈るPython入門者のためのTips①~ - Qiita