タグ

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

  • 初心者でもアルゴリズムの学習ができる入門本とサイト一覧 - paiza times

    Photo by VFS Digital Design 皆さんはアルゴリズムやデータ構造について知っているでしょうか。情報系の学部出身の人は学校の授業でやったかもしれません。一方で学校で情報系の勉強をせずにITエンジニアになったという方は、アルゴリズムやデータ構造について一度は「勉強したほうが良いんだろうな」と思いつつも、実際の業務であんまり必要なさそうだし、難しそうだし、DevOpsやオブジェクト指向やフレームワークについて学ぶので手一杯で未着手、という人も多いのではないでしょうか。 今回はそんな方に向けて、アルゴリズム、データ構造を学ぶ意義と、それらを学ぶときに役立つとサイトについてまとめました。 ■アルゴリズム、データ構造を学ぶ意味 アルゴリズムやデータ構造について語られるときに、非常に良く言われる事として「そんなものは実務に役立たたないので必要ない」という意見があります。当にア

    初心者でもアルゴリズムの学習ができる入門本とサイト一覧 - paiza times
  • 1/30 発売!「プログラミングコンテスト攻略のためのアルゴリズムとデータ構造」 - iwiwiの日記

    書籍「プログラミングコンテスト攻略のためのアルゴリズムとデータ構造」が近日中に発売される予定です.会津大の渡部先生が著者で,Short Coding の Ozy さんと私が協力としての参加です.どうかよろしくお願いします. プログラミングコンテスト攻略のためのアルゴリズムとデータ構造 作者: 渡部有隆,Ozy(協力),秋葉拓哉(協力)出版社/メーカー: マイナビ発売日: 2015/01/30メディア: 単行(ソフトカバー)この商品を含むブログ (4件) を見る 書はアルゴリズムとデータ構造の入門書です.整列,探索,木構造などをはじめとする基礎的なアルゴリズムとデータ構造を初学者向けに説明します.前提とするのは基礎的なプログラミング能力のみです.コード例では C++ を用いています. これだけだと,よくあるのように思われるかもしれません.しかし,書は非常にユニークな特徴として,オン

    1/30 発売!「プログラミングコンテスト攻略のためのアルゴリズムとデータ構造」 - iwiwiの日記
    kokemono
    kokemono 2015/01/05
    これは興味深い
  • さまざまなアルゴリズムをアニメーションで解説してくれる『Algomation』 | 100SHIKI

    見ていて楽しい感じだったのでご紹介。マニアックだが。 Algomationはさまざまなアルゴリズムをアニメーションで解説してくれるサイトだ。 よくあるソート系のアルゴリズムや、オセロを題材にした人工知能のアルゴリズムまで網羅している。 また自分でアルゴリズムを作って投稿することも可能だ。これ系の思考実験が好きな人は覗いてみるといいですね。

    さまざまなアルゴリズムをアニメーションで解説してくれる『Algomation』 | 100SHIKI
  • 『世界でもっとも強力な9のアルゴリズム』で頭を鍛える - HONZ

    著者の定義によると、アルゴリズムとは「問題を解決するために必要な手順を正確に規定したレシピ」である。コンピュータ・サイエンスを専門とする大学教授の手による書は、現在当たり前のように使われている偉大なコンピュータ・アルゴリズムがなぜ必要とされたのか、どのように考え出されたか、そして、それが実際にどのような仕組みで動いているのかを教えてくれる。 このように紹介すると、コンピュータやプログラミングが苦手な人は手が遠のいてしまうかもしれないが、どうかご安心を。書を楽しむのに、コンピュータプログラミングやコンピュータ科学の知識は必要ない。必要なのはじっくりと考えることだけだ。 一口にサイエンスといっても面白いポイントはそれぞれに異なるが、書の面白みは間違いなく、過去の偉人たちの難問への挑戦を疑似体験できるところにある。その面白みを満喫するためにも、頭から煙を出しながらじっくりと考えながら読む

    『世界でもっとも強力な9のアルゴリズム』で頭を鍛える - HONZ
  • アルゴリズムを学ぼう

    関連サイト出版社による関連ページが公開されています。 アルゴリズムを学ぼう (KADOKAWA/アスキー・メディアワークス) 関連書籍書の続編『続・アルゴリズムを学ぼう』も好評発売中です。 内容紹介書のテーマは、ガチのアルゴリズムとデータ構造、そして計算量です。 いや、確かに書は女の子がいろいろでてきたり、小話が入っていたりと、ゆるふわなオーラが漂っています。しかし、あえていいましょう。それは、見かけだけである、と。 プログラミングを学ぶにあたって、アルゴリズムとデータ構造は、どの言語を用いるにしてもすべての基礎であり、避けて通ることはできない道です。アルゴリズムとデータ構造を知らずにプログラムを書くことは、無免許で車を運転するぐらいに危険な行為です。 しかし、アルゴリズムとデータ構造をきちんと理解せずに、プログラムを書いているプログラマーが多数いるのも事実です。それは、アルゴリズム

    アルゴリズムを学ぼう
  • サービス終了のお知らせ - NAVER まとめ

    サービス終了のお知らせ NAVERまとめは2020年9月30日をもちましてサービス終了いたしました。 約11年間、NAVERまとめをご利用・ご愛顧いただき誠にありがとうございました。

    サービス終了のお知らせ - NAVER まとめ
  • 高速な安定ソートアルゴリズム "TimSort" の解説 - Preferred Networks Research & Development

    先日、TimSortというソートアルゴリズムが話題になりました。TimSortは、高速な安定ソートで、Python(>=2.3)やJava SE 7、およびAndroidでの標準ソートアルゴリズムとして採用されているそうです。 C++のstd::sort()よりも高速であるというベンチマーク結果1が話題になり(後にベンチマークの誤りと判明)、私もそれで存在を知りました。実際のところ、ランダムなデータに対してはクイックソート(IntroSort)ほど速くないようですが、ソートというシンプルなタスクのアルゴリズムが今もなお改良され続けていて、なおかつ人々の関心を引くというのは興味深いものです。 しかしながら、オリジナルのTimSortのコードは若干複雑で、実際のところどういうアルゴリズムなのかわかりづらいところがあると思います。そこで今回はTimSortのアルゴリズムをできるだけわかりやすく解

    高速な安定ソートアルゴリズム "TimSort" の解説 - Preferred Networks Research & Development
  • P2Pの専門知識ゼロから独自DHTを実装評価するまでの学習方法と参考資料まとめ - 情報科学屋さんを目指す人のメモ(FC2ブログ版)

    何かのやり方や、問題の解決方法をどんどんメモするブログ。そんな大学院生の活動「キャッシュ」に誰かがヒットしてくれることを祈って。 P2P、特にDHTの前提知識が無い状態から、オリジナルDHTアルゴリズムを実装・評価できるようになるまでの学習方法と参考資料をまとめました。 基的なアルゴリズムの仕組みから、実装評価に用いるツールキットの使い方までを短期間で学習することが出来ます。 「P2Pに関する卒論を書こうと思っている人」や「P2Pアプリケーションの開発前に、アルゴリズムをテストしたい人」、「なんとなくP2Pアルゴリズムに興味が出た人」などにぴったりだと思います。また、研究室での後輩教育用資料にするのも良いと思います。実際に使いましたし。 ここで紹介する資料一覧は以下の通りです。 資料1:「ChordアルゴリズムによるDHT入門」 資料1ーオプション1:「DHTアルゴリズムSymphony

  • 頻出典型アルゴリズムの演習問題としてよさげなやつ - kyuridenamidaのチラ裏

    効率的な別解とか存在する問題もあるけど演習によさそうなやつをピックアップ。そのアルゴリズムじゃないと解けないわけではないって問題も多いので注意。(ただ演習するのには都合が良いかなと)※個人的難易度をつけてみました。とても主観的な難易度付けなので気にせず解いてみてください。深さ優先探索・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

  • 研究動向から考えるx86/x64最適化手法

    2. Today Agenda 日の概要 CPU上のマルチコア化や,各種ペナルティの増大に対して,ペナルティの軽減, または完全に排除するデータ構造やアルゴリズムの研究に関する話題 ---- 日は2000年以降のIntel Lab.や関連研究者による成果の俯瞰が目的 スライドの目的は以下 ・マルチコア/メニーコア時代における性能改善観点の理解 ・具体例でのx86/x64最適化アルゴリズムの概要理解 ⇒探索,整数圧縮,並び替え処理 2 3. Today Agenda • 自己紹介 • Intel Lab.とは? • 最近の研究動向 • 研究分野における最適化の観点 – キャッシュミス/DTLBミスの低減化 – 分岐排除 – メモリバンド使用量の考慮 • 具体例1: SIMD命令を利用した探索の分岐排除 • 具体例2: 整数の固定長圧縮によるPipelineハザードの回避 • 具体例3:

    研究動向から考えるx86/x64最適化手法
  • Code Jam Japan2011 練習問題A. 数珠繋ぎ (Large) 解いた - Stargazing && Temporary Escapism ~インプット馬鹿への道~

    概要 前回のエントリーの続き。 Code Jam Japan 2011の公開されている練習問題Aの計算量が多くなるようなデータセットの方(Large)を解いたので、またスクリプトを晒してみる。 内容 前回作成したアルゴリズムでは、12時間以上放置しても計算が終わらなかった。 そりゃそうか、状態の遷移を毎ターン律儀に行うような形だったし。 ということで、現実的な計算時間で解けるようにしないといけない。 このような問題を解くために2種類のアプローチがあるかな〜っと思ったので、その2種の方法で試してみた。 1つ目は、問題の法則をモデルに落とし込む数学的アプローチ.(数学的とか言うと大袈裟な気もするけど・・・) 2つ目は、現状のアルゴリズムをベースに改善するアプローチ. 数学的なアプローチで解を一発で求められるようなことが実現できるのが理想的だが、現実の問題ではそう簡単に、最適な解(アルゴリズム)

    Code Jam Japan2011 練習問題A. 数珠繋ぎ (Large) 解いた - Stargazing && Temporary Escapism ~インプット馬鹿への道~
    kokemono
    kokemono 2011/09/27
    参考になります。
  • アルゴリズムの勉強のしかた - きしだのHatena

    この記事で、アルゴリズムの勉強はアルゴリズムカタログを覚えることじゃないよということを書きました。 プログラムの理論とはなにか アルゴリズムの勉強というのは、スポーツで言えば腕立て伏せや走り込みみたいな基礎体力を養うようなもので、「ソートなんか実際に自分で書くことないだろう」とかいうのは「サッカーは腕つかわないのに腕立ていらないだろう」とか「野球で1kmも走ることなんかないのに長距離の走り込みいらないだろう」とか言うようなものです。 Twitterでアルゴリズムの勉強とはなにかと尋ねられて、「アルゴリズムの基的なパターンを知って、それらの性質の分析のしかたをしって、いろいろなアルゴリズムでどのように応用されているか知って、自分が組むアルゴリズムの性質を判断できるようになることだと思います。 」と答えたのですが、じゃあ実際どういうで勉強すればいいか、ぼくの知ってるからまとめてみました。

    アルゴリズムの勉強のしかた - きしだのHatena
  • ゲームの作り方やアルゴリズムについてAppStoreカテゴリ別に整理してみました - もとまか日記乙

    今年の東京ゲームショーの入場者数が過去最高だったそうで。東京ゲームショウ2011の入場者数が過去最高の22万2668人を記録【TGS2011】 - ファミ通.com ゲームが盛り上がってきてるかも?ってことで、とても嬉しいニュースです。偶然ですがちょうど先日、以下を書きました。 あなたの「隙間時間」を埋めてくれる無料iPhoneゲーム30選 色々とゲームで遊んでたら、ゲーム開発について色々と調べたくなったので、調べてみたメモを以下にまとめてみました。 ゲームの作り方目次(AppStoreカテゴリ別) 以下、AppStoreのゲームカテゴリ別に整理した目次です。並びはAppStoreでの表示順です(2011/9/20時点) AppStoreカテゴリジャンプ先アーケードシューティングアクションアクション|Unityアドベンチャーアドベンチャーボード、カジノボード、カジノシミュレーションシミュレ

  • さんぷるクリプト: CでDevquiz2011スライドパズル

    Devquizへの参加記念にソースコードを晒しておきます。 アルゴリズム 1、IDA* 過去のステップ数と残りの距離見積りの和で与えた閾値を上げながら反復深化 2、双方向探索 ゴールから幅優先探索、前方からIDA*を実行しマッチング 実装中に他の方法で万点取れる目途が付いたので中途半端(というかまだ動いていなかった。。)になっています。 3、端優先 人がパズルを組み立てる時のように端から順に揃えていくアルゴリズム。 4、ステップ実行 指定された回数探索を行い、それまでにゴールに達しなかった場合、過去に見つかった残りの距離見積りが最小のものをスタートに再度探索を繰り返す。(それ以外のノードを捨てる) 5、半自動シミュレーション 上記で解けない問題が7問残った。この残った問題を半自動で解くためのヒントを元に解いていくシュミレーター。 *距離関数としてはブロックを考慮したマンハッタンディスタンス

    さんぷるクリプト: CでDevquiz2011スライドパズル
  • Google DevQuiz 2011結果 - でこすけの日記

  • DevQuizのスライドパズルのひねた解法 — KaoriYa

    Google Developer Day 2011 Japanの参加権を得るために、DevQuizに参戦しました。 いや、正直途中から参加よりは参戦が目的になっていましたが… 9/12にDevQuizが終わりましたので、ちょっと振返ってみましょう。 Google Developer Day 2011 Japanの参加権を得るために、DevQuizに参戦してました。 いや、正直途中から目的が参加よりも参戦に変わってしまいましたが…9/12にそのDevQuizが終わりましたので、自分でもかなり面白かったスライドパズルのちょっと変わった解法をピックアップしてみます。 文中のわからない単語はググると良いでしょう。 正統派の解法 まず正統派の解法は総手数制限があることから「探索空間を張って最適解を求める」です。最悪全解答が最適解であることも想定しなければいけません(ただし少し解答が揃えばその心配は杞

    kokemono
    kokemono 2011/09/12
    勉強になります。
  • DevQuiz:スライドパズルのソースコード(C言語) - Kishima's Hateda log

    GDD2011のDevQuizのチャレンジクイズである、スライドパズルのソースコードを晒します。 たいへんぐちゃぐちゃなので、恥ずかしい…。 これで2日くらい5プロセス回すと、4500/5000くらい解くことができます。(自分の結果は4427/5000でした。合計してDevQuizの成績は144.3点でした) おそらく最短手が得られているはずです。 全問解答するためには、これに色々ヒューリスティックな改造をする必要があります。>と思ったのですが、色々工夫するとヒューリスティック抜きでもいいところまでいけるようです。 アルゴリズムの方針としては、反復深化深さ優先を基としてます。加えて終了局面を起点として幅優先で正解局面を展開してハッシュに溜めて、深さ優先の終了チェックに使用します。終了局面との距離には普通のマンハッタン距離を使用してます。それだけです。 他の方のツイートをみると、壁を考慮し

    DevQuiz:スライドパズルのソースコード(C言語) - Kishima's Hateda log
  • PDBを使った15パズル自動解答プログラム

    ID (InvertDistance)とWD (WalkingDistance)だけでは解きにくい問題に対処する為にPDBを使ったバージョンを作ってみました。 ■理論編(下限値枝刈りのスキップ化) この考えは15パズルというよりも反復深化と下限値枝刈りの関係について考察 したもので「PDB等を参照するという重い処理」で下限値枝刈りをする場合の コストの軽減化に関するものです。枝刈り判別式は、 depth + LowBound > MAX_DEPTH depth = 現在の深さ LowBound = 以後最低限必要な手数 MAX_DEPTH = 今回の深さ制限 です。さて、初期状態でLowBound=40だったとします。MAX_DEPTHは何度か反復 を繰り返し、次ぎの探索での深さ制限はMAX_DEPTH=50だったとします。 では最初にとても重要な着目点を明記しておきます。 「下限値は親局

  • サービス終了のお知らせ

    サービス終了のお知らせ いつもYahoo! JAPANのサービスをご利用いただき誠にありがとうございます。 お客様がアクセスされたサービスは日までにサービスを終了いたしました。 今後ともYahoo! JAPANのサービスをご愛顧くださいますよう、よろしくお願いいたします。

  • 15パズル自動解答プログラムの作り方