タグ

アルゴリズムに関するkomlowのブックマーク (42)

  • FFT(高速フーリエ変換)を完全に理解する話 - Qiita

    となります。 この $C_i$ を、$0\leq i\leq 2N$ を満たすすべての $i$ について求めるのが今回の目標です。 それぞれ愚直に求めると、$f,g$ の全項を組み合わせて参照することになるので、 $O(N^2)$ です。これをどうにかして高速化します。 多項式補間 愚直な乗算は難しそうなので、$C_i$ の値を、多項式補間を用いて算出することを考えます。 多項式補間とは、多項式の変数に実際にいくつかの値を代入し、多項式を計算した値から、多項式の係数を決定する手法です。 たとえば、$f(x)=ax+b$ という $1$ 次関数があるとします。 $a$ と $b$ の値は分かりませんが、$f(3)=5,f(7)=-3$ がわかっているものとします。 実際に $3,7$ を代入してみると、 $3a+b=5$ $7a+b=-3$ と、連立方程式が立ち、$a,b$ の値が求められま

    FFT(高速フーリエ変換)を完全に理解する話 - Qiita
  • 実行時間の差は996倍以上。オンラインハッカソン最速コードの裏側に迫る! - paiza times

    2013年12月2日より2014年1月8日まで開催していたpaizaオンラインハッカソン(略してPOH![ポー!])Vol.1「新人女子の書いたコードを直すだけの簡単なお仕事です!」で0.01秒を叩き出したコード(最遅コードとの差は最大996倍! 詳しくは結果発表をご確認ください)はどんな過程で生み出されたのでしょうか? 今回は前回の最速コード発表レポート(【結果発表】新人女子PGを最も助けたプログラミング言語とは?)に引き続き、最速コードの裏側に迫ります。 ※ちなみにこちらの野田ちゃん画像は、2014年1月17日に開催されたエンジニアサポートcross2014というイベントで等身大パネルとしてpaizaブースを盛り上げてくれました! ■高速化のアプローチ 前回のレポートでもふれましたが、POH Vol.1はアルゴリズムに変更による計算量(オーダー)の改善による大幅な高速化と、定数倍高速化

    実行時間の差は996倍以上。オンラインハッカソン最速コードの裏側に迫る! - paiza times
  • 計算量のはなし - 赤い黒歴史を蓄積する

    どうも華麗なるキャッツパーです。キャットアッパーです。 この記事はCompetitive Programming Advent Calendar Div2013, 12/7の記事です。 私は過去に、暇に任せてこのようなスライドを作ってしまいました。 有名アルゴリズムとそれの計算量について列挙するのが楽しすぎて作ってしまいました。後悔しております。 記事では「計算量ってどうやって計算するの?」みたいな話を競プロの観点からします。 計算量とはなんぞやということについては上のスライドを読んでください。 計算量の種類 競技プログラミングで気にする計算量は2種類あります。最悪計算量と償却計算量です。 最悪計算量というのは、ある処理にどのような入力を与えても、それ以上に速い計算量になる、というもので、一種の上界です。競技プログラミングでは作問者が最悪計算量になるテストケースをかならず入れてきますから

    計算量のはなし - 赤い黒歴史を蓄積する
  • ジャンル別ゲームの作り方とアルゴリズムまとめ - ネットサービス研究室

    ゲームの作り方とアルゴリズムをジャンル別にまとめてみました。ゲーム制作や、プログラミングの勉強用にご活用ください。言語別ゲームプログラミング制作講座一覧もあわせてお読みください。 リンク切れがおきていたものは、URLを表示しておくので、Internet Archiveなどでキャッシュを表示させてみてください。 RPG ゲームの乱数解析 乱数を利用した敵出現アルゴリズムの解説 各種ゲームプログラム解析 FF、ドラクエ、ロマサガのプログラムの解析。乱数の計算など ダメージ計算あれこれ(http://ysfactory.nobody.jp/ys/prg/calculation_public.html) ダメージの計算式 エンカウントについて考えてみる エンカウント(マップでの敵との遭遇)の処理方法いろいろ RPGの作り方 - ゲームヘル2000 RPGのアルゴリズム ドルアーガの塔 乱数の工夫の

    ジャンル別ゲームの作り方とアルゴリズムまとめ - ネットサービス研究室
  • アルゴリズムと計算量

    金庫破りと計算量膨張 n 桁の番号をもつ暗証ロックがあるとします。 2 桁であれば 00 〜 99 の 100 個の正解があるわけで、 0 番から順に入力していく解き方では、 最悪の場合は 100 手目に開きます。 99 が正解とは限らないので、平均的にはこれより早く解き終わります。 0 であるときの確率は 1/100 で、このときの手数は 1 手です。 1 であるときの確率は 1/100 で、このときの手数は 2 手です。 2 であるときの確率は 1/100 で、このときの手数は 3 手です。 3 であるときの確率は 1/100 で、このときの手数は 4 手です。 : 99 であるときの確率は 1/100 で、このときの手数は 100 手です。 つまり、平均手数は により、100 手目の約半分です。 ここでいう解き方をアルゴリズムといい、 問題を解くための手数 (てかず) のことを計算

  • A* - Wikipedia

    A*探索アルゴリズム A*(A-star、エースター)探索アルゴリズム(エースターたんさくアルゴリズム)は、グラフ探索アルゴリズムの一つ。 最良優先探索を拡張したZ*に、さらにf値として「現時点までの距離」g と「ゴールまでの推定値」h の和を採用したもの[1]。h は ヒューリスティック関数と呼ばれる。 A* アルゴリズムは、「グラフ上でスタートからゴールまでの道を見つける」というグラフ探索問題において、 ヒューリスティック関数 h(n) という探索の道標となる関数を用いて探索を行うアルゴリズムである。h は各頂点 n からゴールまでの距離のある妥当な推定値を返す関数で、解くグラフ探索問題の種類に応じてさまざまな h を設計することが出来る。 例えば、カーナビなどで用いられる単純な二次元の地図での探索では、h としてユークリッド距離 を使うことができ、この値は道に沿った実際の距離のおおま

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

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

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

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

    古くて新しい自動迷路生成アルゴリズム - やねうらおブログ(移転しました)
  • Python:回帰分析 : 分析技術とビジネスインテリジェンス

    今回はPythonによる回帰分析(OLS:Ordinary Least Squares)の実施方法をまとめる。 まずは最小2乗法に基づく重回帰式の作成と結果表示方法を取り上げる。 ライブラリの使い分けについては調査のしやすさを優先しているが、回帰分析については統計モデルはOrange、予測モデルはscikit-learnでやろうかなと考えている。 来はすべてを統一したいが、後者ライブラリは回帰分析の結果表示で、p値や偏回帰係数の出力が無いようだし、ステップワイズの実施方法も見当たらなかった。しかし、予測モデルとなれば、その精度と堅牢性を高めることが目的となり、p値などに言及しなくても説明責任は果たせるので、逆にscikit-learnのシンプルさが生かせると思っている。 ■ライブラリ >>> import Orange >>> from padnas import * ■データ >>>

  • 機械学習 はじめよう 記事一覧 | gihyo.jp

    運営元のロゴ Copyright © 2007-2024 All Rights Reserved by Gijutsu-Hyoron Co., Ltd. ページ内容の全部あるいは一部を無断で利用することを禁止します⁠。個別にライセンスが設定されている記事等はそのライセンスに従います。

    機械学習 はじめよう 記事一覧 | gihyo.jp
  • MapReduceできる10個のアルゴリズム - データサイエンティスト上がりのDX参謀・起業家

    HadoopとMahoutにより、ビッグデータでも機械学習を行うことができます。Mahoutで実装されている手法は、全て分散処理できるアルゴリズムということになります。Mahoutで実装されているアルゴリズムは、ここに列挙されています。論文としても、2006年に「Map-Reduce for Machine Learning on Multicore」としていくつかのアルゴリズムが紹介されています。 そこで今回は、(何番煎じか分かりませんが自分の理解のためにも)この論文で紹介されているアルゴリズムと、どうやって分散処理するのかを簡単にメモしておきたいと思います。計算するべき統計量が、summation form(足し算で表現できる形)になっているかどうかが、重要なポイントです。なってない場合は、”うまく”MapReduceの形にバラす必要があります。 ※例によって、間違いがあった場合は随時

    MapReduceできる10個のアルゴリズム - データサイエンティスト上がりのDX参謀・起業家
  • アルゴリズムの紹介

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

  • Nettica VPN Service » Make Your Own Cloud

    Welcome to Nettica!Join the Cloud! We are a cloud based VPN service built on WireGuard™ technology providing fast, secure connections to local and cloud resources. Make your own cloud! Mix and match between local and multi-cloud environments managed with the Nettica Agent. Command and control your network from anywhere! OAuth2 and role-based access control provide a secure environment to manage yo

    Nettica VPN Service » Make Your Own Cloud
  • ソースコード探険隊

    What's new - 更新履歴 直近20件の新しい記事です。 2024-02-28: ASUS ROG ノートパソコン FLOW・ZEPHYRUS・STRIX の違い、比較 2024-01-14: ASUS ノートパソコン製品シリーズの違い・比較 2023-12-10: ゲーム開発に最適なノートパソコンの選び方/おすすめ機種紹介 2023-11-18: 動画編集に最適なノートパソコンの選び方/おすすめ機種紹介 2023-11-03: プログラミングに最適なノートパソコンの選び方/おすすめ機種紹介 2023-09-09: 『ノートパソコン購入ガイド』を公開 2023-04-29: 推理小説『水車館の殺人』の感想 2023-03-26: Lenovo 公式サイトの「ThinkBookとThinkPad の比較」を評価する 2023-03-21: Lenovo ThinkPad と Thin

  • 画像処理におけるアルゴリズム

    ここでは各画像処理におけるアルゴリズムを簡単に解説する。 2値化 明るさ調整 色成分の抽出 色反転 コントラスト調整 切り出し ガンマ補正 グレイスケール化 増色 画像枠付加 鏡像反転 ノイズ除去 輪郭抽出 輪郭追跡 拡大縮小 任意角回転 セピア調化 ぼかし 2値化 指定画像を白と黒の2階調の画像に変換する処理であり、研究で作成した2値化処理は単一手動閾値方式、P-タイル法、また、誤差分散法およびその拡張型である Floyd&Steinberg 型誤差分散、Jarvice,Judice&Ninke 型誤差分散の5つである。 次にそれぞれのアルゴリズムについて解説する。 単一手動閾値方式 指定された色深度を基準として、その値より入力画素の色深度値が明るければ白、暗ければ黒色として2値化する。下の式を用いている。 このとき、出力画像は初期状態で黒色となるので、入力画像の画素値が閾値以

  • マルコフアルゴリズム - Wikipedia

    マルコフアルゴリズム(英: Markov algorithm)とは、記号の文字列に対して一種の文法的規則を適用していく文字列書き換え系である。マルコフアルゴリズムはチューリング完全であることがわかっており、計算の汎用モデルとして使え、任意の計算を単純な記法で表現できる。 アンドレイ・マルコフ・ジュニア(英語版)が1951年にロシア語で発表し[1]、1960年に英語に翻訳した[2]。発表当初の呼び名は normal algorithm (Нормальный алгоритм) であった[3]。考案者のアンドレイ・マルコフ・ジュニアは、マルコフ連鎖のアンドレイ・マルコフの息子である。 マルコフアルゴリズムに基づいた関数型プログラミング言語としてRefalがある。 アルゴリズム[編集] 変換規則は以下の表記を行う。パターンや置換文字列は空文字列でも良い。 停止規則で無い場合:パターン → 置換

  • Rubyのハッシュテーブルの仕組みを徹底的に理解する - ザリガニが見ていた...。

    ハッシュとは 一般的に理解すると抽象的で分かり難くなってしまうが、ハッシュとは、あるデータから、一定の計算をして求めた、目的に沿った数値、と思っている。それでは、どのような目的に利用されるのか?自分の知識で考えてみた。 暗号化 webアプリケーション等で、パスワードをDBに保存する時、生のパスワードをハッシュに変換して保存する。 Digest::SHA1.hexdigest等で求めたハッシュから、元のデータを復元するのが非常に困難という特性を利用する。 保存しているパスワードハッシュが、たとえ漏洩したとしても、不正利用を防止できる。 パスワードを照合するときも、ハッシュに変換して、保存しているパスワードハッシュと一致するかどうかで判断する。 同等の確認 長い文字列データを比較する時、全ての文字が等しいかチェックするのは非常に時間がかかる。 しかし、長い文字列データをハッシュに変換しておき、

    Rubyのハッシュテーブルの仕組みを徹底的に理解する - ザリガニが見ていた...。
  • ニュートン法 - Wikipedia

    数値解析の分野において、ニュートン法(ニュートンほう、英: Newton's method)またはニュートン・ラフソン法(英: Newton–Raphson method)は、方程式系を数値計算によって解くための反復法による求根アルゴリズムの1つである。対象とする方程式系に対する条件は、領域における微分可能性と2次微分に関する符号だけであり、線型性などは特に要求しない。収束の速さも2次収束なので古くから数値計算で使用されていた。名称はアイザック・ニュートンとジョゼフ・ラフソンに由来する。 ニュートン法の一手順の概念図 (青い線が関数 f のグラフで、その接線を赤で示した). xn よりも xn+1 のほうが、 f(x)=0 の解 x についてのよりよい近似を与えている. この方法の考え方は以下のようである:まず初めに、予想される真の解に近いと思われる値をひとつとる。次に、そこでグラフの接線

    ニュートン法 - Wikipedia
  • モバイルゲームの歴史を年代別にご紹介します。モバイルゲームの成長と今後について詳しく解説していきます。

    モバイルゲーム 物凄い勢いで勃興したモバイルゲーム業界は、いろいろな課題や問題に直面しながらも巨大化し、今日の時点でのスマートフォン向けゲームの市場へと継承されていきます。 モバイルゲーム歴史 2001 Javaアプリと3Dゲームの登場 Javaが利用できるようになったことにより、ダウンロード型のゲームが供給できるようになりました。 2002 携帯電話端末の大容量化・3D化競争 Java搭載携帯電話端末が登場してからごく僅か1年の間に、アプリのサイズに関しては10倍に広大化し、表現方法も2Dから3Dにシフトし始めました。J-PHONEは『ゼビウス』や『スペースハリアー』などといった昔のアーケードゲームを、ドコモはSIMCITYなどパソコンで世界的規模のヒットを飛ばしたゲームを主力商品としていました。 2003 モバイルゲームの一般化 メモリの制限が厳しいJava仮想マシン上ではなく、OS

  • はてなブログ | 無料ブログを作成しよう

    オーベルジーヌ実レポ べ物の鼻塩塩(未だに通じるのかな) オーベルジーヌというカレーをご存知だろうか 都内にあるデリバリー専門のカレー屋で、 ロケ弁などで大人気の格欧風カレーが楽しめるらしい いいな〜 いいな〜オブザイヤー 都内の奴らはこんな良いモンってんのか 許せねえよ………

    はてなブログ | 無料ブログを作成しよう