タグ

algorithmに関するgologo13のブックマーク (108)

  • GitHub - yangshun/tech-interview-handbook: 💯 Curated coding interview preparation materials for busy software engineers

    You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session.

    GitHub - yangshun/tech-interview-handbook: 💯 Curated coding interview preparation materials for busy software engineers
  • BitCoinとBlockChainにまつわる誤解ーそんなことはできない - Qiita

    言いたいことを一行で BlockChainはいろいろと面倒な制約がありますので,KISSの原則を忘れないようにしましょう.権力分立の原理をどうやっても守りたいという政治的な主張がない限り,BlockChainを応用するのはナンセンスです. はじめに BitCoinの中核をなすBlockChainと呼ばれる技術が今ホットですね,いろんなところで耳にします.BlockChainとはようは皆で合意(AさんがBさんにXを渡したという取引記録)を形成していく分散型合意形成アルゴリズムです.ボランティアで参加したコンピュータ全員で協力して改ざんが困難な取引記録を作っていこうというアルゴリズムです. BlockChainアルゴリズムを銀の弾丸,あるいは魔法の杖か何かだと勘違いしている人がたくさんいて,音楽電子書籍のデジタルライツ,はたまたマイナンバー制度の管理に使えると主張している方々をちらほら見かけ

    BitCoinとBlockChainにまつわる誤解ーそんなことはできない - Qiita
  • 今度こそ絶対あなたに理解させるPaxos - Qiita

    Paxosとは何か 分散システムの金字塔とも呼ばれ、Leslie Lamport大先生の輝かしい成果の一つとして知られる分散合意アルゴリズムPaxos。 既存の解説 実はすでに存在するPaxosの解説は充分に質が高い Wikipediaの項目にも結構長々と書かれていて、これを読んで理解できた人はもう僕の記事を読む必要はない。 同様にPFIの久保田さんによる解説スライドもあり、これも良く書けているし、これを読んで理解できた人もこれ以上記事を読む必要はない。 minghai氏によるブログ記事のこれとか特にこっちなんかはかなり納得感があり、これらを読んで理解できた人も(中略) tyonekura氏によるスライドも良くかけていて(中略) この記事はこれらの説明に目を通してもなお理解できなかった人、もしくはこれらの説明をこれから読もうと思っている人に向けて書き、Paxosアルゴリズムの詳細な説明自体

    今度こそ絶対あなたに理解させるPaxos - Qiita
  • エレベータに見るアルゴリズムの性能と公平性のバランス|Rui Ueyama

    現実世界でもコンピュータの中でも、何らかの性能指標だけを追求すると参加者にとって極端に不公平になってしまうことがある。例えばエレベータとHDDは共通点がありそうに思えないが、この2つは性能特性的にとてもよく似ていて、リーズナブルな性能と公平性を両立させるために同じ制御方法が使われている。これについてちょっと説明してみよう。 1基しかない場合のエレベータの動き方は単純だ。一度上に動き出すと、上で待ってる人や降りる人がいる限り上昇し続ける。同じように、一度下に動き出すと、下で待っている人や降りる人がいる限り下降し続ける。これ以外の動き方をするエレベータはまず存在しないので、これが唯一の制御方法のように思えるけど、別にこうしなければいけないというルールはない。 エレベータの平均待ち時間を最適化することを考えてみよう。そうすると、一方向に動き続ける代わりに、エレベータが現在存在する階に一番近い人の

    エレベータに見るアルゴリズムの性能と公平性のバランス|Rui Ueyama
  • 「プログラミングの常識」を時々見直す必要性について|Rui Ueyama

    自分の中のプログラミングの常識というものは、ときどき現実のハードウェアに合わせて調節しないといけない。ハードウェアが進歩し続けているので、コンピュータで簡単にできることと相対的に難しいことのバランスが変化し続けているからだ。ここでは特にストレージにフォーカスして書こうと思う。 昔はメモリが相対的にとても貴重な資源だったので多くのプログラマがメモリを節約することに血道を上げていた。例えばWindowsの初期の頃に設計されたデータ構造には、メモリをバイト単位ででもいいから節約したいという意図の痕跡がいまでも多く見受けられる。DRAMの次に速い記憶装置はHDDだったので、メモリが足りなくなればHDDにデータを保存せざるを得ないのだが、DRAMとHDDのランダムアクセスの速度差は、机の上のの開いているページを見るのと、そのAmazonで注文して到着するのを待つのと同じくらいのスケールで違うの

    「プログラミングの常識」を時々見直す必要性について|Rui Ueyama
  • 動的計画法が苦手な人が、動的計画法が超苦手な人へアドバイスしてみる - じじいのプログラミング

    この記事は、Competitive Programming Advent Calendar Div2013(http://partake.in/events/3a3bb090-1390-4b2a-b38b-4273bea4cc83)の8日目の記事です。 動的計画法(Dynamic Programming, DP)についての記事です。 12/9 前編にサンプルプログラム(http://ideone.com/2B7f4v)を追加しました 12/11 前編の図2つを差し替えました。 はじめに まずは、やネットの資料で、動的計画法についてのすばらしい解説はいろいろありますので、まずはそれらを参考に。 プログラミングコンテストでの動的計画法 http://www.slideshare.net/iwiwi/ss-3578511 最強最速アルゴリズマー養成講座:アルゴリズマーの登竜門、「動的計画法・メ

    動的計画法が苦手な人が、動的計画法が超苦手な人へアドバイスしてみる - じじいのプログラミング
    gologo13
    gologo13 2017/08/13
    素晴らしいまとめ。実践的。
  • プログラミングコンテストでの動的計画法

    Introductory materials for Ziktas, a corporate reskilling training programkishita2

    プログラミングコンテストでの動的計画法
  • フロイドの循環検出法 - Wikipedia

    フロイドの循環検出法(英: Floyd's cycle-finding algorithm)とは、任意の数列に出現する循環を検出するアルゴリズムである。任意の数列とは、例えば擬似乱数列などであるが、単方向連結リストとみなせる構造のようなもののループ検出にも適用できる。ロバート・フロイドが1967年に発明した[1]。「速く動く」と「遅く動く」という2種類のインデックス(ポインタ)を使うことから、ウサギとカメのアルゴリズムといった愛称もある。 グラフの最短経路問題を解くワーシャル–フロイド法とは(同じ発案者に由来するので同じ名前がある、という点以外は)無関係である。 アルゴリズム[編集] 単方向連結リストのループ検出なども典型的なのであるが、形式的(フォーマル)な説明には数列のほうが向いているのでここでは擬似乱数列生成器の例で説明する。ポラード・ロー素因数分解法などで擬似乱数列生成器の分析が重

    フロイドの循環検出法 - Wikipedia
  • 数学の苦手なバイオの学生がCourseraの機械学習コースを修了して気づいたこと - Qiita

    機械学習を学ぶのに最も適した教材と言われる、Machine Learning | Coursera を受講し終わりました! 「機械学習に興味はあるけど、何から始めたらいいかわからない」 「Courseraはいいって聞くけど、難くて挫折する気がする」 「機械学習やるなら、PRMLがいいって聞いたけど」 という人は多いと思います。私も同じように思っていました。Courseraの機械学習コースを始めたのはなんとなくですが、修了してみて、やって当に良かったと思います。機械学習は面白いし夢があるので、ちょっとでも興味がある人の背中を押したいと思い、このコースの何がいいのか簡単にまとめたいと思います。 過去の記事 Coursera Machine Learning (1): 機械学習とは?単回帰分析、最急降下法、目的関数 Coursera Machine Learning (2): 重回帰分析、スケ

    数学の苦手なバイオの学生がCourseraの機械学習コースを修了して気づいたこと - Qiita
  • 数字根 - Wikipedia

    数字根(すうじこん、英: digital root)とは、正の整数値の各位の和(数字和)を求め、結果の数字和を求め、という操作を繰り返し、最終的に得られる 1 桁の数を指す。 例えば、65536 の数字根は 7 である。(6 + 5 + 5 + 3 + 6 = 25 → 2 + 5 = 7) 一般に正の整数値 n の数字根は n を 9 で割った余りに等しい[注釈 1]ので、全ての桁の数字を加算するのではなく、9 を法とする合同式によって計算可能であり、巨大な数の数字根を求める際に時間を節約できる。 数字根はチェックサムの一種としても利用できる。例えば、加算において和の数字根と被加数の数字根の和の数字根は常に等しい。これを利用した検算方法として九去法がある。 性質[編集] 特定の数の数字根の特殊例として、次のようなものがある。 0 の数字根は 0 である。 一般に正の整数値 n の数字根は

  • ITエンジニアなら知っておきたい、今更聞けないアルゴリズムの種類一覧 - paiza times

    Photo by Oferico 皆さんはアルゴリズムやデータ構造について勉強したことはありますか?そして、基的なアルゴリズムについて、どのようなものがあって、どのようなときに使うとよいかといったことを説明することができますか? 仕事をしていると、プログラミング言語等の勉強や業務に忙しくて、正直アルゴリズムどころではないという場合がほとんどでしょう。しかし、いつか勉強しようと思っていたけど、基的なアルゴリズムにどんなものがあるのかなんて今更聞けないな……ということもあるかと思います。 今回はそんな方に向けて、基的なアルゴリズムの一部の概要に加え、アルゴリズムの勉強に役立つサイト、書籍をご紹介したいと思います。 ■アルゴリズムを学ぶ意味 例えば、ソート等については、通常はすでにソート関数があるので、自分で作らなくても済む=アルゴリズムも勉強しなくていいと思ってしまうかもしれません。しか

    ITエンジニアなら知っておきたい、今更聞けないアルゴリズムの種類一覧 - paiza times
  • 画風を変換するアルゴリズム - Preferred Networks Research & Development

    Deep Neural Networkを使って画像を好きな画風に変換できるプログラムをChainerで実装し、公開しました。 https://github.com/mattya/chainer-gogh こんにちは、PFNリサーチャーの松元です。ブログの1行目はbotに持って行かれやすいので、3行目で挨拶してみました。 今回実装したのは”A Neural Algorithm of Artistic Style”(元論文)というアルゴリズムです。生成される画像の美しさと、画像認識のタスクで予め訓練したニューラルネットをそのまま流用できるというお手軽さから、世界中で話題になっています。このアルゴリズムの仕組みなどを説明したいと思います。 概要 2枚の画像を入力します。片方を「コンテンツ画像」、もう片方を「スタイル画像」としましょう。 このプログラムは、コンテンツ画像に書かれた物体の配置をそのま

    画風を変換するアルゴリズム - Preferred Networks Research & Development
  • Facebook, Twitter, Instagram等がどうやってIDを生成しているのか まとめ - Qiita

    まえがき データにIDを持たせたいとき、単純な方法としては、DBの提供するauto incrementを使う場合やUUIDを利用することがある。それぞれの方法の利点欠点は以下の通り。 データベースのauto incrementを使う場合 利点: 特別な実装が必要ない 欠点: DBを1台で運用するとデータベースがパフォーマンス・障害のボトルネックになる DBを二台にするとIDのユニークさや順序の保証が困難 UUID(v4)※1を利用する場合 利点: 分散環境で各々がIDを生成しても衝突しない IDを公開したくない場合に、推測されにくいIDを生成できる 欠点: 128ビット必要、DBのインデクシングやプログラミング言語で扱うときに不利なことがある IDから時間の情報が失われる、例えば2つのIDを比べてどちらが古い投稿か判断できない 世界の大企業がどうしてるか 調べてみると多くの企業がブログなど

    Facebook, Twitter, Instagram等がどうやってIDを生成しているのか まとめ - Qiita
    gologo13
    gologo13 2014/11/13
    ビッグカンパニーがユニークなID生成をどのように行っているか
  • Twitterのsnowflakeについて

    Scalable Generator: Using Scala in SIer Business (ScalaMatsuri)TIS Inc.

    Twitterのsnowflakeについて
    gologo13
    gologo13 2014/11/13
    snowflakeで生成されたIDは時間ごとに整列できる。OSの時刻ズレが一番ネック
  • 軽量なTime-based ID生成器”shakeflake(仮称)”について - SmartNews Engineering Blog

    大平です。今回はさだまさしネタは特に無しです。 先日、サービスのクローラーで使用しているID生成器について置き換えを行いました。非常に地味な話になりますが、記事ではその辺の内幕の話をしたいと思います。 ID生成にまつわる苦悩 弊社ゴクロの提供しているSmartNewsは表向きはニュースアプリですが、裏側の仕組みは検索エンジンに近似しています。ユーザーの方々の興味関心や、アクセス傾向をクエリーとし、その内容に応じた話題のニュースを検索結果として返却する、という風に捉えていただくと、なんとなく私が言わんとしている事を想像していただけるかと思います。 SmartNewsはTwitterのつぶやき情報を用いたトレンド分析をベースとしており、話題になっているニュースを選定するためには、大量のTwitter上のtweet、ならびにその中に含まれているURLに対してクロールを行う必要があります。日々配

    軽量なTime-based ID生成器”shakeflake(仮称)”について - SmartNews Engineering Blog
  • CPUに適度に間違わせることで節電する技術

    CPUに適度に間違わせることで節電する技術
  • 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

  • レインボーテーブル - Wikipedia

    レインボーテーブル (rainbow table) は、ハッシュから平文を得るために使われるテクニックの一つである。特殊なテーブルを使用して表引きを行うことで、時間と空間のトレードオフを実現している。 以降では、このテクニックの元となっているアイディアについて説明する。 3 種類の還元関数を使った簡単なレインボーテーブルの例 最も単純な方法[編集] レインボーテーブルは「あるハッシュ値に対して総当たり攻撃を行った際の計算結果を、別のハッシュ値を攻撃する際に使用する」というアイデアに端を発する。例えば、平文 Pi (i = 1, 2, ...) と、それらをハッシュ化した値 Ci をテーブルに格納しておき、このテーブルを逆引きすればハッシュ値から対応する平文が得られる。 ただし、この方法では、得られた平文とハッシュ値とのペアを全て記録しておく必要があり、実現には莫大な記憶領域を必要とする。

    レインボーテーブル - Wikipedia
  • 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を支える機械学習
  • 一般向けのDeep Learning

    PFI 全体セミナーで発表した、専門家向けではなく一般向けのDeep Learning(深層学習)の解説です。どのような場面で活躍しているのか、今までの学習手法と何が違うのかを解説しています。

    一般向けのDeep Learning
    gologo13
    gologo13 2013/06/05
    パーツの組み合わせかー。再起的に学習できるっていうのがキモなのかな