タグ

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

  • クアッドコプターの驚くべき運動能力

    Raffaello D'Andrea / 青木靖 訳 2013年6月 (TEDGlobal 2013) 運動抜群の機械というのはどういうものでしょう? これから機械の運動能力の実演と、それに必要な研究を、クアッドコプターを使ってご覧に入れます。クアッドコプターは結構昔からあったんですが、最近流行りだした理由は、構造的にとてもシンプルだからです。4つのプロペラの回転を制御することで、ロール、ピッチ、ヨー、そしてプロペラの方向への加速が出来ます。またこれには電池、コンピュータ、様々なセンサと、無線がついています。クアッドコプターはとても敏捷ですが、その代償として質的な不安定さがあり、飛ばせるためにある種のフィードバック制御が必要になります。 (クアッドコプターを放り投げると静かに戻ってくる) 今のをどうやってやったのかですが、天井のカメラとノートPCがこの室内の測位システムの役割をしていて、

  • 「ショートコーディング:パスカルの△」最終ランキング~上位5位のコード公開+Ozyさんの解説付き #shortcoding #codegolf - CodeIQ Blog

    CodeIQ中の人、millionsmileです。 お待ちかね、「ショートコーディング:パスカルの△」の 最終ランキングで上位5位までコード公開と、 出題者のOzyさんの解説です! この解説記事を読めば、次はあなたも神になれるかも!?です。 =============================== 解説と最短コード69バイト 最短コードを生むアルゴリズム パスカルの三角形を作る方法として一番簡単そうなのは、前の行の結果を単純に足し合わせて、次の行を生成する方法です。この方法での最短記録は、72バイトでした。十分短いのですが、配列アクセスで文字数が増えてしまうので、ややロスがありました。しかし、この方法の良い点は、単純な足し算しかしていません(途中掛け算をして32bitを超えることはありません)から、三角形のサイズがある程度大きくなっても対応できるということです。 今回は、三角形のサイ

    「ショートコーディング:パスカルの△」最終ランキング~上位5位のコード公開+Ozyさんの解説付き #shortcoding #codegolf - CodeIQ Blog
  • おねえさんを組み合わせ爆発から救う:完結編おねえさんは星になった - きしだのHatena

    おねえさんを組み合わせ爆発から救うために、経路をZDDとして表したら、すっきりと経路情報が扱えました。 http://d.hatena.ne.jp/nowokay/20121018#1350528607 あとは、このZDDを効率よく構築できれば、おねえさんを救えそうです。このZDDの構築には、クヌース先生の開発したSimpathアルゴリズムを使うと非常に効率よく構築できます。 前回生成したZDDを見ると、同じノードにまとまっているものがいくつかあることがわかります。特に後半になるとどんどん同じパターンになるものがまとめられていきます。 つまり、この経路問題のZDDを構築するときには、いかに同じパターンになるものをまとめるかが鍵になるということです。 Simpathでは、辺の端だけに注目して、同じパターンになっていればそれ以降のノードを使いまわすという考え方で、ノードをまとめていきます。 つ

    おねえさんを組み合わせ爆発から救う:完結編おねえさんは星になった - きしだのHatena
  • How do I find Waldo with Mathematica?

    This was bugging me over the weekend: What is a good way to solve those Where's Waldo? ['Wally' outside of North America] puzzles, using Mathematica (image-processing and other functionality)? Here is what I have so far, a function which reduces the visual complexity a little bit by dimming some of the non-red colors: whereIsWaldo[url_] := Module[{waldo, waldo2, waldoMask}, waldo = Import[url]; wa

    How do I find Waldo with Mathematica?
  • グーグルのバグ予測アルゴリズムを実装したツール「bugspots」、オープンソースで公開

    ソースコードのなかでバグが多いのは、より高頻度に、かつ最近になって集中的に直している部分。これが、グーグルで採用された「バグ予測アルゴリズム」であることを、先月の記事「グーグルはコードの品質向上のため「バグ予測アルゴリズム」を採用している」で紹介しました。 そのバグ予測アルゴリズムを実装したツール「bugspots」がオープンソースとして公開されています。 gitのレポジトリを分析 bugspotsはRubyで記述されており、gitのレポジトリから履歴を読み込んで分析し、どのモジュールにバグが含まれている確率が高いかを示してくれます。 以下のようにインストールして実行(説明ページから引用)。 $> gem install bugspots $> git bugspots /path/to/repo $> git bugspots . # (in current git directory)

    グーグルのバグ予測アルゴリズムを実装したツール「bugspots」、オープンソースで公開
  • 頻出典型アルゴリズムの演習問題としてよさげなやつ - 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

  • Sleep sortの各言語での実装まとめ – Yuyak

    盛り上がってるSleep sort。 僕もどの言語かで実装しようと思ったけどもう色々やられていて悔しいのでまとめてみる。 随時更新。 そもそもの発端 4chan BBS – Genius sorting algorithm: Sleep sort (家) 常識を覆すソートアルゴリズム!その名も”sleep sort”! – Islands in the byte stream bash 4chan BBS – Genius sorting algorithm: Sleep sort (家) 4chan BBS – Genius sorting algorithm: Sleep sort C# 4chan BBS – Genius sorting algorithm: Sleep sort JavaScript 話題のソートアルゴリズム「sleep sort」をJavascriptで実

  • reduce関数は結構有用っていうお話 - あと味

    JavaScriptに限った話ではないのですが、reduce関数を持つプログラミング言語がいくつかあります。 JavaScriptに関しては、一応、ECMAScript5の仕様に登場するようで、将来的にはどのブラウザでも使えるようになりそうな気配はあります。 Standard ECMA-262 また、MDCではreduceのアルゴリズムが掲載されているので、これを利用すれば現時点でもどのブラウザでもreduce関数を利用することができます。 reduce関数とは? MDCに掲載されている文章を引用します。 配列の(左から右へ) 2 つの値に対して同時に関数を適用し、単一の値にします。 JavaScriptのreduceは、配列のメソッドです。左ら右へとありますが、右から左へ関数を適用するreduceRightという関数もあります。*1 どういう時に使えるか 元となる配列があって、それを累積

    reduce関数は結構有用っていうお話 - あと味
  • [アルゴリズム]六角対応

    塵も積もれば山 目次 ホーム 連絡をする RSS Login Blog 利用状況 投稿数 - 216 記事 - 0 コメント - 7630 トラックバック - 60 ニュース C++とかC#とか数学ネタを投下していく予定です。 [その他のページ] 日々の四方山話を綴った日記出水の日記帳 書庫 2011年12月 (2) 2011年8月 (1) 2011年7月 (1) 2011年1月 (2) 2010年12月 (2) 2010年11月 (2) 2010年10月 (5) 2010年8月 (1) 2010年7月 (1) 2010年5月 (1) 2010年4月 (2) 2010年2月 (8) 2010年1月 (2) 2009年12月 (2) 2009年10月 (5) 2009年9月 (3) 2009年8月 (3) 2009年7月 (5) 2009年6月 (12) 2009年5月 (6) 2009年4

  • perl - 配列の∪と∩ : 404 Blog Not Found

    2010年05月01日13:15 カテゴリLightweight Languages perl - 配列の∪と∩ これを解くためには、配列の∩(交わり、intersection)がわかればいいのですが… Perl Cookbook (English) Christiansen / Torkington [邦訳: Perlクックブック] perlPHPで解決したいです。 複数(最大200程度)の配列があり、 それぞれ有している数字(それぞれ最大50程度)のうち、 二つ以上の値が同じ配列名を抜き出す。 という事をし.. - 人力検索はてな複数(最大200程度)の配列があり、 それぞれ有している数字(それぞれ最大50程度)のうち、 二つ以上の値が同じ配列名を抜き出す。 実にエレガントな方法が、Perl Cookbookに載っています。 以下、実例。 #!/usr/bin/perl use st

    perl - 配列の∪と∩ : 404 Blog Not Found
    asonas
    asonas 2010/05/02
    すっきり!!
  • クラスタリングの定番アルゴリズム「K-means法」をビジュアライズしてみた - てっく煮ブログ

    集合知プログラミング を読んでいたら、K-means 法(K平均法)の説明が出てきました。K-means 法はクラスタリングを行うための定番のアルゴリズムらしいです。存在は知っていたんだけどいまいちピンときていなかったので、動作を理解するためにサンプルを作ってみました。クリックすると1ステップずつ動かすことができます。クラスタの数や点の数を変更して、RESET を押すと好きなパラメータで試すことができます。こうやって1ステップずつ確認しながら動かしてみると、意外に単純な仕組みなのが実感できました。K-means 法とはK平均法 - Wikipedia に詳しく書いてあるけど、もうすこしザックリと書くとこんなイメージになります。各点にランダムにクラスタを割り当てるクラスタの重心を計算する。点のクラスタを、一番近い重心のクラスタに変更する変化がなければ終了。変化がある限りは 2. に戻る。これ

  • 知れば天国、知らねば地獄――「探索」虎の巻

    いよいよ今回から、具体的なアルゴリズムの紹介に入っていきます。今回は、プログラミングにおける重要な概念である「探索」について考えます。グラフに変換し、探索する、という流れを知るとともに、そのグラフを効率よく探索する方法について紹介します。 今後紹介していくアルゴリズムについて お待たせしました! 「最強最速アルゴリズマー養成講座」という連載タイトルのとおり、今回の連載からいよいよ具体的なアルゴリズムの紹介に入っていきたいと思います。 しかし、それを読んでいただく前に、1つ注意してもらいたいことがあります。連載第3回でもお伝えしたように、「問題を、既存の適当なアルゴリズムに当てはめる」という考え方は、非常に危険である、ということです。 筆者の経験上、TopCoderでRedCoder以上を目指すのであれば、回答時間短縮のために、いままでのパターンを利用するのも方法の1つなのですが、連載では

    知れば天国、知らねば地獄――「探索」虎の巻
  • 一番右端の立っているビット位置を求める「ものすごい」コード - 当面C#と.NETな記録

    一番右端の立っているビット位置(RightMostBit)を求めるコードで速いのないかなーと探していたら、ものっっっすごいコードに出会ってしまったのでご紹介。2ch のビット演算スレで 32bit 値のコードに出会って衝撃を受けて、その後 64bit 値版のヒントを見つけたのでコードを書いてみました。 この問題は ハッカーのたのしみ―物のプログラマはいかにして問題を解くか (Google book search で原著 Hacker's delight が読めたのでそれで済ませた) で number of trailing zeros (ntz) として紹介されています。bit で考えたときに右側に 0 がいくつあるかを数えるもの。1 だと 0、2 だと 1、0x80 なら 7、12 なら 2 といったぐあい。0 のときに表題どおりの問題として考えるといくつを返すの?ってことになるので、

    一番右端の立っているビット位置を求める「ものすごい」コード - 当面C#と.NETな記録
  • 1