![アルゴリズムの素晴らしさが 2 分でわかる動画](https://cdn-ak-scissors.b.st-hatena.com/image/square/27910687f5640b6b57fea70212998c1768bf5b19/height=288;version=1;width=512/https%3A%2F%2Fpbs.twimg.com%2Fprofile_images%2F1491575606093709315%2FHCvr53ln.jpg)
0. はじめに こんにちは、東京大学 1 年の米田(@e869120)と申します1。私は競技プログラミングが趣味であり、AtCoder や 日本情報オリンピック などに出場しています。2021 年 12 月 30 日現在、AtCoder では赤(レッドコーダー)です。 この度、「アルゴリズム×数学」が基礎からしっかり身につく本 を技術評論社より出版しました(既に発売されています)。アルゴリズムと数学を同時に習得できる新しい入門書です。本の内容や特徴については、 アルゴリズムと数学の本を書きました - E869120's Blog をご覧いただければと思います。 実際、一冊の本を完成させるというのは決して簡単なものではありませんでした。本記事では、本を書いたきっかけや、どのように執筆が進んだかについて記したいと思います。 目次 0. はじめに 目次 1. 本を書くことを決めるまで 1.1 競
本スライドでは、有名なアルゴリズムを概観し、アルゴリズムに興味を持っていただくことを目標にします。 第 1 部:アルゴリズムとは 第 2 部:学年を当ててみよう 第 3 部:代表的なアルゴリズム問題 第 4 部:コンピュータとアルゴリズム
強化学習入門の第3弾。「モンテカルロ木探索(Monte Carlo Tree Search, MCTS)」を解説するとともに、実際にAI同士で五目並べを戦わせてみました! こんにちは。アナリティクスサービス本部 AI開発部の山崎です。 昨年も強化学習界隈は盛り上がりを見せていましたが、今なお、強化学習と言えば一番にAlphaGoを思い浮かべる人も多いのではないでしょうか。昨年、AlphaGoZeroという進化バージョンが発表され、一切のお手本を用いずに従来バージョンより強いということが話題になりました。(それまでのAlphaGoは、人のお手本をある程度学び、その後勝手に学んでいくものでした) さらに、AlphaGoZeroを一般化したアルゴリズムに修正したAlphaZeroが登場し、チェスや将棋でもその時点での最強ソフトを打ち負かしています。 今回は、AlphaGoやAlphaGoZero
今の場合は A さんが 31 歳の場合のストーリーでしたが、A さんが 20 歳~ 35 歳のうちのどの年齢であったとしても、似たようなストーリーで必ず 4 回の質問で当てることができます!(他の例も是非考えてみてください。) ちなみに、このような「真ん中で切ってどちらかに絞って行く」タイプのアルゴリズムには二分探索法という名前がついています。応用情報技術者試験でも頻出のテーマですので馴染みのある方も多いと思います。 1-2. つまり、アルゴリズムとは 上の年齢当てゲームという問題では、相手の年齢を当てる「方法・手順」を二分探索法に基づいて導きました。このようにアルゴリズムとは、 問題を解くための方法・手順 のことです。さて、アルゴリズムと聞くと「コンピュータ上で実装されたプログラム」のことを思い浮かべる方も多いと思いますが、必ずしもコンピュータと関係がある必要はなく、日常生活でも多々登場
文字列の中から効率良くキーワードを探し出せ:コーディングに役立つ! アルゴリズムの基本(7)(1/4 ページ) プログラマたるものアルゴリズムとデータ構造は知っていて当然の知識です。しかし、教科書的な知識しか知らなくて、実践的なプログラミングに役立てることができるでしょうか(編集部) 前回「Firebugで探索アルゴリズムを見ていこう」では、数値の集合の中から特定の数値を探索しました。今回は文字列の中から検索ワードを探索してみましょう。 UNIXのコマンドならgrep、Javaなどのプログラムなら文字列のindexOfメソッドなどに相当する処理です。 力任せ法 それでは例によって最もベタなアルゴリズムの紹介から始めましょう。 文字列の中に検索ワードがあるかどうか調べます。文字列の先頭から1文字ずつ検索ワードと比較していきます。不一致があったら文字列の2文字目から1文字ずつ検索ワードと比較し
先日、TimSortというソートアルゴリズムが話題になりました。TimSortは、高速な安定ソートで、Python(>=2.3)やJava SE 7、およびAndroidでの標準ソートアルゴリズムとして採用されているそうです。 C++のstd::sort()よりも高速であるというベンチマーク結果1が話題になり(後にベンチマークの誤りと判明)、私もそれで存在を知りました。実際のところ、ランダムなデータに対してはクイックソート(IntroSort)ほど速くないようですが、ソートというシンプルなタスクのアルゴリズムが今もなお改良され続けていて、なおかつ人々の関心を引くというのは興味深いものです。 しかしながら、オリジナルのTimSortのコードは若干複雑で、実際のところどういうアルゴリズムなのかわかりづらいところがあると思います。そこで今回はTimSortのアルゴリズムをできるだけわかりやすく解
<body> <p>このページにはフレームが使用されていますが、お使いのブラウザではサポートされていません。</p> </body>
何かのやり方や、問題の解決方法をどんどんメモするブログ。そんな大学院生の活動「キャッシュ」に誰かがヒットしてくれることを祈って。 P2P、特にDHTの前提知識が無い状態から、オリジナルDHTアルゴリズムを実装・評価できるようになるまでの学習方法と参考資料をまとめました。 基本的なアルゴリズムの仕組みから、実装評価に用いるツールキットの使い方までを短期間で学習することが出来ます。 「P2Pに関する卒論を書こうと思っている人」や「P2Pアプリケーションの開発前に、アルゴリズムをテストしたい人」、「なんとなくP2Pアルゴリズムに興味が出た人」などにぴったりだと思います。また、研究室での後輩教育用資料にするのも良いと思います。実際に使いましたし。 ここで紹介する資料一覧は以下の通りです。 資料1:「ChordアルゴリズムによるDHT入門」 資料1ーオプション1:「DHTアルゴリズムSymphony
効率的な別解とか存在する問題もあるけど演習によさそうなやつをピックアップ。そのアルゴリズムじゃないと解けないわけではないって問題も多いので注意。(ただ演習するのには都合が良いかなと)※個人的難易度をつけてみました。とても主観的な難易度付けなので気にせず解いてみてください。深さ優先探索・Balls[☆]・Sum of Integers[☆]・The Number of Island[☆]・Block[★]幅優先探索・Mysterious Worm[★]・Cheese[★]・Seven Puzzle[★☆]・Stray Twins[★★]・Deven-Eleven[★★]・Summer of Phyonkichi[★★☆]ワーシャルフロイド法(For 全点対最短路問題)・Traveling Alone: One-way Ticket of Youth[★]・A reward for a Car
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く