タグ

algorithmに関するairj12のブックマーク (50)

  • はじめに - アルゴリズムとデータ構造大全

    はじめに このドキュメントは,主に競技プログラミングで出題される問題を解く際に利用できるアルゴリズムやデータ構造をまとめたものです.特定の問題にはあまりフォーカスしないため,問題を解く際の考察の仕方等の内容はありません.詳しく,正確に,分かりやすく書いていこうと思っています. このドキュメントは執筆途中です. 想定する読者 C++を用いたプログラミングに慣れている方を読者として想定しており,C++言語の仕様や,文法にはあまり触れません.また,計算量という用語についても説明しません.ただし,償却計算量など,計算量の見積もりが複雑なものについては必要に応じて説明します. コードについて このドキュメントで登場するコードは,可読性向上のため,以下のようなコードがファイルの先頭に記述してあることを前提としています.また,適切な問題を用いてコードの検証がなされている場合は,コード周辺にのように,検証

  • H.264の秘密 | POSTD

    (編注:2020/08/18、いただいたフィードバックをもとに記事を修正いたしました。) (2016/12/11、いただきましたフィードバックをもとに翻訳を修正いたしました。) H.264は、動画圧縮コーデックの標準規格です。ネット上の動画、Blu-ray、スマホ、セキュリティカメラ、ドローンなどなど、今やあらゆるところでH.264が使われています。 H.264は注目すべき技術のひとつです。たったひとつの目標、つまりフルモーションビデオの送信に要するネットワーク帯域を削減することを目指した30年以上の努力の結晶なのです。 技術的な面でも、H.264はとても興味深い規格です。この記事では、その一部について概要レベルでの知識を得られることでしょう。あまり複雑だと感じさせないようにするつもりです。今回おはなしする概念の多くは動画圧縮全般にあてはまるものであり、H.264に限ったものではありません

    H.264の秘密 | POSTD
    airj12
    airj12 2016/12/02
    圧縮・誤り訂正・暗号化 については世の中の頭の良い方達に感謝するしかない
  • Google Chromeが採用した、擬似乱数生成アルゴリズム「xorshift」の数理

    2015年12月17日、Google ChromeJavaScript エンジン(処理系)である V8 の公式ブログにて、 JavaScript の標準的な乱数生成APIである Math.random() の背後で使われているアルゴリズムの変更がアナウンスされました。 Math.random() 関数は JavaScript を利用する際には比較的よく使われる関数ですので、親しみのある方も多いのではないかと思います。 新たなバグの発見や、従来より優秀なアルゴリズムの発見によってアルゴリズムが変更されること自体はそれほど珍しくはないものの、 技術的には枯れていると思われる Math.random() のような基的な処理の背後のアルゴリズムが変更されたことに驚きを感じる方も少なくないかと思いますが、 それ以上に注目すべきはその変更後のアルゴリズムです。 実際に採用されたアルゴリズムの原

    Google Chromeが採用した、擬似乱数生成アルゴリズム「xorshift」の数理
  • 人工知能の歴史と、グーグルの自動運転車が事故を起こさないためにしていること

    連載目次 グーグルが開発した自動運転車(以下、Google Car)の仕組みについて、公開情報を基に、主にソフトウエア(人工知能、アルゴリズム)の観点で解説していく連載。第1回の「あなたの知らない自動運転技術歴史Google Carの自動運転に使用するセンサーの基礎知識」では、自動運転技術歴史を概説し、Google Carの自動運転に使用するセンサーについても説明しました。 前回の「自動車を制御するロボットの思考と行動の仕組み――Google Carが現実世界を認識する際の3つのアルゴリズムと実用化への課題」では、Google Carがどのように現実世界を認識するかを説明しました。「Probabilistic Robotics」(確率ロボティクス)を導入することでGoogle Carの認識能力は格段に進歩を遂げました。さて、今回の記事ではロボットの思考と行動のサイクルのうち【2】「

    人工知能の歴史と、グーグルの自動運転車が事故を起こさないためにしていること
    airj12
    airj12 2015/12/09
    分かり易くて面白い
  • サルでも分かるwaifu2xのアルゴリズム

    ログイン

    サルでも分かるwaifu2xのアルゴリズム
    airj12
    airj12 2015/06/12
    自分がサル以下だという事は分かった
  • JavaのTimSortがバグってる件について | さにあらず

    Python で実装され、その後 Java にも移植されたソートアルゴリズムである TimSort が盛大にバグっていることが発見されました。 このバグがどのようにして発生するのかについては、以下のドキュメントを精査して下さい。 TimSort fails with ArrayIndexOutOfBoundsException on worst case long arraysOpenJDK’s java.utils.Collection.sort() is broken: The good, the bad and the worst caseどんなことが起こるのか#通常の利用では想定しえない場所でArrayIndexOutOfBoundsExceptionが発生します。 例えば、以下のようなスタックトレースになります。 Exception in thread "main" java.l

    JavaのTimSortがバグってる件について | さにあらず
    airj12
    airj12 2015/02/27
    形式手法よくわかんない
  • エレベーターゲームで学ぶプログラミング『Elevator Saga』 | 100SHIKI

    初心者向けとは言いがたいが、なかなかおもしろかったのでご紹介。 Elevagtor Sagaではエレベーターのシミュレーションを通じてプログラミングを学べるサイトだ。 レベルごとに課題が与えられて、独自のアルゴリズムを組むことでクリアーしていく。 APIなどはサイトで公開されているのでそれを組み合わせればいいだろう。 自分なりのコードを組んで「Start」ボタンを押すとグラフィカルに結果がわかってなかなか楽しい。ちょっと難しいかもしれないが興味がある人は是非どうぞ。

    エレベーターゲームで学ぶプログラミング『Elevator Saga』 | 100SHIKI
    airj12
    airj12 2015/01/25
    暇な時にやりたい
  • Situs Judi Slot Online Terlengkap dan Terpercaya Indonesia

    MORE INFORMATION Nama : QQDeluxe Website : http://qqdeluxe6.com Server : QQSLOT Negara : Indonesia Min Deposit : Rp 20.000 Deposit via : Bank, Pulsa, E-wallet Platform : Windows, IOS, Android Situs Slot Indonesia, Judi Slot Online Terpercaya Game Slot Online merupakan jenis permainan yang saat ini menjadi primadona di kalangan masyarakat Indonesia. Permainan slot online memiliki sistem yang sangat

    airj12
    airj12 2014/09/15
    なんか似たようなサイトあった気がするけど忘れた
  • もし先輩女子エンジニアが『アルゴリズム』を図解で教えてくれるとしたら - paiza times

    2014年7月30日より8月27日まで開催した、paizaオンラインハッカソン(略してPOH![ポー!])Lite「天才火消しエンジニア霧島 もしPMおじさんが『丸投げ』を覚えたら」ですが、どのような解法が有ったのでしょうか。 今回もPOH恒例の「解説図解」を、天才火消しエンジニア霧島が解説するとしたら、という体で書いてみたいと思います。(特に文体とか変えませんがw 最後に霧島壁紙DLが有るので是非最後までお読みください。) ■どのような高速化ステップがあるのか? 今回の問題ですが、実行時間に大きく影響する計算量別にみたアプローチでは、すべての組み合わせを出して、人数を満たして一番安い組み合わせを見つける全探索[計算量はO(2^N)]と、動的計画法[計算量はq = max(q_i) としてO(Nq) ](やり方によってはO(NM))による2種類があります。 また全探索を改良し、効率的な枝刈

    もし先輩女子エンジニアが『アルゴリズム』を図解で教えてくれるとしたら - paiza times
    airj12
    airj12 2014/09/12
    あ、やるのすっかり忘れてた
  • アルゴリズムとプログラミングをビジュアルで一挙に理解できる「VisuAlgo」

    アルゴリズムを理解するのにビジュアル化することは非常に有効で、プログラムをビジュアル化することで理解が進むのもまた同じ。そこで、アルゴリズム・プログラミングの理解が進むようにと、アルゴリズムを記述したプログラムコードを一挙にビジュアル化することで、アルゴリズム&プログラミングを同時に学習できる一挙両得なサービス「VisuAlgo」が公開されています。 VisuAlgo - visualising data structures and algorithms through animation https://visualgo.net/en 上記のVisuAlgoサイトで試しにソートアルゴリズムの基プログラム「バブルソート」をビジュアル化してみます。「Sorting」の「bubble」をクリック。 検索窓の下に「bubble」と表示されたのを確認したら「Sorting」の画像をクリック。

    アルゴリズムとプログラミングをビジュアルで一挙に理解できる「VisuAlgo」
  • 4択10問テストの正解探索回数=最大16回(破られた) - C Sharpens you up

    twitter上でエンジニアの間で話題になった問題。 4択問題10問のテストを全部埋めて提出すると正解数がわかります。 何回提出すればすべての正解を知ることができますか。10問すべての正解は、最大16回の試行で知ることができます。 (2014-06-20追記:これは算数の範囲内での答なのですが、算数の範囲内でもさらに改善できました。14手です。 http://cs.hatenablog.jp/entry/2014/06/20/132605 ) まず、回答の分布がわからない場合の最大 = 21回 1問目の正解を知るためには最大何回試行する必要があるでしょう。 AAAAAAAAAA BAAAAAAAAA CAAAAAAAAA DAAAAAAAAAの4回必要だと思いますか? いえ、3回で十分です。 AAAAAAAAAA BAAAAAAAAA CAAAAAAAAAこの3回の正解数が同じだった時

    4択10問テストの正解探索回数=最大16回(破られた) - C Sharpens you up
    airj12
    airj12 2014/06/23
    11回どゆこと
  • Home

    Marktwirtschaft.at – über uns: Neuigkeiten, Wissenswertes und Hintergründe aus den Bereichen Industrie, Wirtschaft, Handwerk, Karriere, Finanzen, Digitalisierung, Agribusiness, Handel und Automotiv.

  • Project Naptha

    Project Naptha highlight, copy, and translate text from any image. Project Naptha automatically applies state-of-the-art computer vision algorithms on every image you see while browsing the web. The result is a seamless and intuitive experience, where you can highlight as well as copy and paste and even edit and translate the text formerly trapped within an image. Unfortunately, your browser is no

  • 日本語形態素解析の初歩 - あらびき日記

    この記事は abicky.net の 日形態素解析の初歩 に移行しました

    日本語形態素解析の初歩 - あらびき日記
  • 情報系修士にもわかるダブル配列 - アスペ日記

    最近話題の「日本語入力を支える技術」を途中まで読んだ。 3章がものすごく気合いが入っている。 trie(トライ)というデータ構造の2つの実装、「ダブル配列」と「LOUDS」について詳しく説明がされている。 ダブル配列については、ぼくは以前論文を読んで勉強しようとしたのだが、その時は難しくてあきらめた覚えがある。しかし、このの説明を読むことで理解ができた。 ありがたい。 感銘を受けたので、このを教材に友達と2人勉強会をした。 この2人勉強会というのは、ぼくが復習を兼ねて友達に教えるというのがだいたいのスタイル。 しかし、いざやってみるといろいろと難しい。 次のようなところでひっかかるようだ。 例のサイズが小さく、イメージを喚起するのが難しい。 最初の図のノード番号と、最終的なダブル配列上の位置が異なるため、混乱する。 単語終端について言及がないので、どのノードが単語を表しているかがわから

    情報系修士にもわかるダブル配列 - アスペ日記
  • PageRankアルゴリズムを使った人事評価実験 | 株式会社サイバーエージェント

    2-2-1.一般的な360度評価による評価方法 問題点 一般的に評価プロセスが公開されていないため、最終評価までのプロセスが不透明である 全員が全員を評価するのは多数の社員がいる場合は不可能である ランダム抽出によるお互いの評価を行うと、まったく違う専門分野を評価したり、まったく関わりあいのない人を評価することになり精度が下がる 2-2-2.専門分野での評価者による評価方法 問題点 *評価者になる人材の不足 高い専門スキル、会社とのビジョンマッチ、メンバーからのその専門分野での高い信頼の全てを備えている人材が専門分野毎に必要。 さらに、評価の納得性を保つためにはメンバーからの信頼がある人材ではないと評価できない。 *評価者によって評価ポイントの違いがある 同じ分野の技術者でも、スキルの価値をどこに置いているかというスタンスの違いから評価ポイントにゆらぎが発生する。 さらに評価者自体

    airj12
    airj12 2013/11/06
    面白いけど公開されるのはキツいのう
  • SmartNewsを支える機械学習

    ニュースアプリSmartNews(https://www.smartnews.be/)の背景のアルゴリズムについてTokyoWebMining30th(http://tokyowebmining30.eventbrite.com/)で話させていただいた際の資料です。 •SmartNews iphone版: https://itunes.apple.com/jp/app/id579581125 •SmartNews Android版 https://play.google.com/store/apps/details?id=jp.gocro.smartnews.android •SmartNews開発者ブログ http://developer.smartnews.be/blog/

    SmartNewsを支える機械学習
  • CodeIQで結城先生が出題されたCrossingが神がかっていた件 - やねうらおブログ(移転しました)

    CodeIQで挑戦者数が400人超えという異例の事態になったCrossingとはどんな問題だったのか。twitterでも恐ろしい勢いで拡散され、最終日に100人を超えるチャレンジがあった、この問題。一体どこにそんな魅力があったのかについて考えてみる。 まず、このように注目されるためには満たすべき条件が二つある。 繁盛する飲店を考えてもわかるように、まず美味しくなければならない。CodeIQで言うと、問題として良問でなければならない。解答後の達成感がなくてはならない。 次に、飲店なら、その店に入ってみようという気にさせなければならない。入りにくそうなお店でも、料理さえ美味しければその後口コミで広がることもあるだろうが、それだと繁盛するまでに時間がかかりすぎる。だからCodeIQで言うと、まず問題を解いてみようという気にさせなければならない。 このどちらが欠けても駄目である。この問題はこの

    CodeIQで結城先生が出題されたCrossingが神がかっていた件 - やねうらおブログ(移転しました)
  • 遺伝的アルゴリズムで巡回セールスマン問題を解く - Gushwell's C# Programming Page

    巡回セールスマン問題を遺伝的アルゴリズムで解くプログラムです。 Wikipediaから引用。 遺伝的アルゴリズム(いでんてき-、英語:genetic algorithm、略称:GA)とは、1975年にミシガン大学のジョン・H・ホランド(John Henry Holland)によって提案された近似解を探索するメタヒューリスティックアルゴリズムである。人工生命同様、偶然の要素でコンピューターの制御を左右する。4つの主要な進化的アルゴリズムの一つであり、その中でも最も一般的に使用されている。 詳細な説明は、Wikipedaiを読んでいただくとして、ここで採用したアルゴリズムの簡単にの流れを説明します。 N固体を用意し、現世代のリストに入れる。 評価関数を適用し、上位X個を次世代のリストへ入れる。(淘汰) 交叉によりY個の子孫を作り、次世代リストに入れる (交叉は後述) 突然変異により子孫をつくり

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

    インド工科大学(IIT)と企業の両方で豊富な経験を持つインド人著者による、実例豊富なデータ構造とアルゴリズムの解説書。伝統的なデータ構造とアルゴリズムのトピックで、基をしっかり押さえるだけでなく、集合のUnion/Find、動的プログラミングや計算量クラスといった話題も盛り込んでいます。圧倒的な情報量でプログラマに必要な知識を網羅。600弱の練習問題とその解を収録しており、理解度を細かく確認し、知識を着実に身に付けることができます。 正誤表 ここで紹介する正誤表には、書籍発行後に気づいた誤植や更新された情報を掲載しています。以下のリストに記載の年月は、正誤表を作成し、増刷書籍を印刷した月です。お手持ちの書籍では、すでに修正が施されている場合がありますので、書籍最終ページの奥付でお手持ちの書籍の刷版、刷り年月日をご確認の上、ご利用ください。 第1刷正誤表

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