タグ

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

  • VisuAlgo - データ構造とアルゴリズムを可視化する

    VisuAlgo.net/en visualising data structures and algorithms through animation VisuAlgo is a trilingual site. Try visiting the other versions of VisuAlgo other than the default English version, e.g., Chinese or Indonesian. Users can see the translation statistics for these three pages. We aim to make all three has near 100% translation rate. Unfortunately the translation progress with other language

  • 読んで良かった基礎知識の入門書

    とあるエンジニア技術勉強法 (インターン学生向け) というスライドを先日 @iwashi86 が書かれていました。 インターン学生向けとありますが、新人プログラマ向けとしても素晴らしい資料だと思います。 ここでは「即、役立つわけではないが後から効いてくる」という「基礎知識」に絞って教材を紹介します。 目の前の仕事のために必要なことと並行して基礎知識を学ぶのは、長期的には良いと思います。 なお「基礎」==「簡単」というわけではなく、無理せず自分のペースで付き合うのがおすすめです。 自分で読んで、かつ、とても良いと思ったもののみを紹介するので、全分野をカバーしてはいません。 基礎にどのような分野があるかは新卒準備カレンダー2011や情報科学科カリキュラムが参考になります。 以下はどれも有名ななので、ググれば感想なども見つかるでしょう。 気になった、読もうと思うについては、ググるのも良い

    読んで良かった基礎知識の入門書
  • 競プロのめっちゃ初歩的思考法

    この記事は、traP Advent Calendar 2015 - Adventarの3日目です。 筆者は Twitter:@_n_ari です。軽い自己紹介をすると、競プロとごちうさが大好きです。 アイキャッチはTreap(データ構造)の実装の一部です。エディタはSublime Text。 参考:プログラミングコンテストでのデータ構造 2 ~平衡二分探索木編~ 競プロのめっちゃ初歩的思考法 響きが良いと思ったら五七五だった。和を感じる。 参考:川柳 - Wikipedia 参考:#csenryu - Twitter検索 競プロとは 競技プログラミングの略。競技プログラミング Wiki*とか見ると分かると思う。 簡単に言うと、ある条件に沿った入力が与えられて、問題の解になるような出力をする、というのをプログラムするもの。 プログラミングのスキルを上げたり、アルゴリズムや数学の勉強になったり

    競プロのめっちゃ初歩的思考法
  • Atcoder Beginner Contest D埋めしたので初心者向け学習法とか色々書く - inmir’s diary

    今年の3月頃から競プロを始めましたが、ようやくABCのD(だけ)が埋まりましたので復習がてら色々書いてみます。 ↑ 記念の初AC 【やったこと】 ・序盤 競プロの存在をAtCoderで知ったので、AtCoderの問題を解いていました。 for, if文ならかける程度の初心者でしたので、上の画像くらいA,B,C問題を解いていき(Cのいくつかくらいまでならfor,if文知識で解ける)、D問題を数問みて新たに勉強が必要だな、と感じました。 ・中盤 蟻を読みました。五日間くらいかけて(難しい所をとばしとばしで)中級編まで読みきって、その後AtCoderの問題を解きながら、やったことのあるアルゴリズムやデータ構造を見ながらでも書いてみるといった使い方でした。なんで蟻の問題自体は解いてないです。でも解いた方が力になります。 「そんなん蟻にも書いてなかったし(半ギレ)」→載ってる、というのを10回

    Atcoder Beginner Contest D埋めしたので初心者向け学習法とか色々書く - inmir’s diary
  • 30歳から始める数学 [ SHOYAN BLOG ]

    この記事はMath Advent Calendar 2015 2日目の記事です。 前回の記事は515hikaruさんのMath Advent Calendar 2015 一日目 - 515 ひかるのブログ 日常編です。 とあることから、30歳にして数学を学び始めました。いまは毎日楽しく数学の書籍を読んだり方程式を解いたりしています。 記事では、僕と同じようにもう一度数学を学びたいなと思っている人向けに、数学の魅力を再発見する方法を紹介します。 30歳にして数学を学び始めたきっかけきっかけはプログラマのための数学勉強会です。 とあるご縁でこの勉強会で発表することになり、そこから数学を学び直しました。 内容については、以下の記事を参照ください。 プログラマのための数学勉強会@福岡に登壇してきました プログラマのための数学勉強会@福岡#2に登壇してきました この数学勉強会で数学を勉強することに

    30歳から始める数学 [ SHOYAN BLOG ]
  • よくわかるA*(A-star)アルゴリズム (Unity2Dのサンプルコードつき) - Qiita

    A*(A-star)アルゴリズムとは A*アルゴリズムとは、探索アルゴリズムの一種です。経路をノードで表現して、スタートノード(開始地点)からゴールノード(目標地点)までの経路を計算し、この経路が最短であることを保証するアルゴリズムとなります。そしてスタートからゴールまでの間に障害物があってもちゃんと迂回してくれます。 サンプルはこちらのページにあります。 http://2dgames.jp/unity/astar/ ページを開くとランダムでスタートとゴールが決まり、キャラクターがゴールへ向かって動きます。ゴールにたどりつくと、「もう1回」ボタンが表示されるので、それを押すと再びスタートとゴールがランダムで配置されます。 なお、Unity(C#)で実装したプロジェクトつきです。こちらのソースコードは自由につかってもらって構いません。ただし画像の2次使用は禁止します。 A*の実装 フィールド

    よくわかるA*(A-star)アルゴリズム (Unity2Dのサンプルコードつき) - Qiita
  • RPG系プログラムで大勢のキャラクタを縦横無尽に歩かせる方法

    はじめに ロールプレイングゲームに「町の人」と呼ばれるキャラクターがいます。町の中をぶらぶらと歩いて、主人公が話しかけると、何らかの情報を提供してくれる人たちです。彼らは、その情報提供という役目から、主人公が話しかけやすいように同じような場所を、ときどき立ち止まったりしながら歩いています。 実は僕、そんな彼らを見てると、「たまには好き勝手に動きたいんじゃないの?」とか、「当はお腹が減ってて、急いで家に帰りたいんじゃないの?」とか想像しちゃうんですよね。そんなわけで今回は、町の人たちを縦横無尽に歩かせるプログラムを作ってみました。名づけて『アイちゃんの大冒険』。主人公の女の子アイちゃんとその仲間たちが、元気に町の中を駆け回るアプレットです。 アプレットを見る 対象読者 ゲームプログラムに興味がある方や、経路探索プログラムに興味がある方を対象とします。また、Java初心者の方には、楽しめる教

    RPG系プログラムで大勢のキャラクタを縦横無尽に歩かせる方法
  • 配列を高速に探索するアルゴリズムを検証してみる | Hello People

    プログラミングをしていると、ある配列から特定の数値や文字列を含んだデータを取り出す場面に直面するはよくあると思いますが、どのようにデータを探索するかによってパフォーマンスに大きく影響します。 データ探索の方法として、JavaScriptであれば、indexOf関数という便利な関数があるので、それを使用する方が多いかもしれません。 しかし、indexOf関数はデータを取り出すのに時間がかかるという評判もあるため、今回は幾つかの定番アルゴリズムの中から高速にデータを取り出す事ができる手法を確認したいと思います。 定番の探索アルゴリズムリニアサーチ(線形探索法)リニアサーチはその名前の通り、一直線に配列を探索する方法です。 先頭から順番に(もしくは末尾から順番に)データを取り出して探索しますので、非常にシンプルな方法ですが、データ量に比例して探索時間も長くなります。 コードでは以下のようになりま

    配列を高速に探索するアルゴリズムを検証してみる | Hello People
  • アルゴリズムとデータ構造

    書はコンピュータ サイエンスにおけるアルゴリズムとデータ構造を解説します。「プログラム書けるよ」と言う人達でも意外とアルゴリズムやデータ構造に関する知識を持っていません。 自身のプログラミング スキルを向上させたり隣のプログラマとちょっと差をつけるために是非とも身に着けておきたい知識です。 アルゴリズムとデータ構造は世の中にたくさんあります。書では適当な書籍で学べる基的なものを紹介します。データ構造の章では主に線形のデータ構造とグラフデータ構造を解説します。アルゴリズムの章では主に探索アルゴリズムと整列アルゴリズムを解説します。

  • トップクラスだけが知る「このアルゴリズムがすごい」――「探索」基礎最速マスター

    トップクラスだけが知る「このアルゴリズムがすごい」――「探索」基礎最速マスター:最強最速アルゴリズマー養成講座(2/4 ページ) 君は探索をイメージできているか? セルフチェック ここまで漠然と読み進めてきた方には、まだ探索のイメージが十分ではないかもしれません。そこで、実際どのようにグラフを構築して、どのように探索をすればよいかをイメージする実践的な機会を設けようと思います。 以下では、少し抽象的な、探索で解決できるであろう練習問題を提示しました。これらに対して、どのようなグラフを構築すればよいか、どんな枝刈りができるのかを考えてみてください。もしあなたがプログラマーであれば、9問中5問程度はすぐにイメージできてほしいところです。もしこれがイメージできない場合、厳しい言い方となってしまいますが、非常に狭い世界に閉じこもって、プログラムが十分に組める“つもり”になってしまっているだけではな

    トップクラスだけが知る「このアルゴリズムがすごい」――「探索」基礎最速マスター
  • [アルゴリズム] ダイクストラ法をやってみる - Qiita

    Cygames Engineers' BlogのゲームAI -基礎編- 『知識表現と影響マップ』を読んで色々と勉強になったので、使えるようにするべく実際に自分でもサンプルを作ってみようと思います。 今回は上記記事の中で「経路探索」に使われる「ダイクストラ法」をやってみました。 ちなみにこのアルゴリズムはカーナビの経路探索にも使われているらしいです。 今回の記事とサンプルの実装には、こちらの記事を参考にさせてもらいました。 デモ 今回のアルゴリズムの勉強のために簡単なデモを作ってみようと思って作り始めたら、途中から目的が変わってちょっとしたWebアプリを作るくらいの規模になりましたw(そのデモはこちら ※ ES6全開なので、Chromeじゃないと動きません;) デモの総行数は3000くらいあるのに、メインであるはずのアルゴリズムの行数は100行程度です・・w ちなみに見た目も凝ってみました(

    [アルゴリズム] ダイクストラ法をやってみる - Qiita
  • CODE VS -ゲームを攻略する「最強のAI」作成-

    予選期間 2019年4月15日(月) ~ 2019年5月10日(金) 決勝日 2019年5月25日(土) @ 六木ニコファーレ

    CODE VS -ゲームを攻略する「最強のAI」作成-
  • ITエンジニアなら知っておきたい、今更聞けないアルゴリズムの種類一覧 - paiza times

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

    ITエンジニアなら知っておきたい、今更聞けないアルゴリズムの種類一覧 - paiza times
  • linuxカーネルのセマフォについて - lxyuma BLOG

    アルゴリズムとデータ構造についてOSSから勉強する会 という勉強会に行ってきた。 これは、とある掲示板の書き込みにOSSで使われてるアルゴリズムが書かれている物があって、 これを元に、皆で読み解いて行こうという企画。 カーネル読むという意味でも、アルゴリズムの勉強という意味でも、 とても良い勉強会。 面白かった。 まとめ 自分のチームはセマフォやった。 まあ、色々と不慣れだったし分からない所も多かったが、勉強になった。 以下、発表したメモに加筆した。 概要 セマフォ(semaphore)とは 複数プロセスによるアクセス制御に使われる仕組みの事 任意の個数の資源を扱うcounting semaphoreと、値が0,1しかないbinary semaphoreがある。 今日見たのは前者のcounting semaphore。この話を書いて行く。 ちなみに、後者がMutexになる(同等の機能を持つ

    linuxカーネルのセマフォについて - lxyuma BLOG
  • 目指せプログラマー!

    目指せプログラマー!にようこそ。 当サイトはこちらに引っ越しました。 お手数をおかけしますが、上記サイトへご移動くださいませ。

  • アルゴリズム入門

    アルゴリズム入門へようこそ。 アルゴリズムはすべてのプログラムの基礎となる物です。バグのないプログラムを作るため、 また、再利用性の高いプログラムを作るため、さらにはコンピュータの思考を理解するために 必要な知識です。プログラム言語を学ぶ前にぜひアルゴリズムをきわめて下さい。 また、オススメのアルゴリズムのを紹介します。(たくさんあって何が良いのかわからないという方は当サイトから買われているもご利用ください。)

  • 読むべきアルゴリズムの本

    勉強しなければならないのである。 長くなるので、ここで折り畳んでしまう。 【有料・和訳有】Introduction to Algorithms おそらく一番有名なアルゴリズム。MITの教科書。 日語版もあるが、上記は第3版なのに対して、日語版は第2版までが出ている。 しかも3分冊されていて、3冊目は第1版のものしかないため、私が買い漁った時でも絶版。 アルゴリズムイントロダクション(改定2版) 第1巻 数学的基礎とデータ構造 アルゴリズムイントロダクション(改定2版) 第2巻 アルゴリズムの設計と解析手法 アルゴリズムイントロダクション 第3巻 精選トピックス 【有料・和訳有】Algorithm Design 2番目に有名なアルゴリズムか。こっちはコーネル大学の教科書。 なんとタイムリーなことに、今年の10月に第2版が出るらしい。 リンクはその第2版へのもの。 買ってないのだが、1

  • 1