タグ

Algorithmとalgorithmに関するYasSoのブックマーク (95)

  • Tag Hierarchyをつくったよ

    猛暑を乗り切った服・小物・その他 とにかく2025年の夏は暑かった。 と、毎年言っている気がするけど、今年は特別暑かったのではないか。これが地球温暖化なのだと見せつけられているような気がする。スノーボーダーとしてはそれに全力で抗う必要があるんだけど、自分の態度がまだ追いついていない。 生…

    Tag Hierarchyをつくったよ
  • いまさらアルゴリズムを学ぶ意味

    いまさらアルゴリズムを学ぶ意味:コーディングに役立つ! アルゴリズムの基(1)(1/3 ページ) 連載ではアルゴリズムを学ぶ、または学び直すことで、プログラミングのスキルを深めていきます。アルゴリズムは学問として取り扱われることが多いですが、この連載では開発の現場に役立つスキルを身に付けることを目的とします。初回は、アルゴリズムを学ぶ意義について。コンピュータに「3の倍数と3の付く数字」を判断させるにはどうしたらいいか。発想力を鍛えよう。 アルゴリズムを学ぶ意味 IT技術者である読者の皆さんなら、普段から何げなく「アルゴリズム」という言葉はよく使っていることでしょう。しかしあらためて「『アルゴリズム』とは何か」と問われて、すぐに明快に答えられるでしょうか。 また、IT技術者であってもアルゴリズムをきちんと勉強した人は意外と多くないのではないでしょうか。大学で学んだとか、入社後の新人研修

    いまさらアルゴリズムを学ぶ意味
  • 東京を走る路線のデータを使って、最短経路問題をダイクストラ法で解く - imHo

    ダイクストラ法が小さなサンプルデータで動いたら、実際のデータを使ってみたくなるのが人情。東京を走る地下鉄のデータでやってみたいと思った。 JavaScriptとPrototype.jsとGoogleMapsAPIとすったもんだしたあげく、なんとか動くものができた。 502 Bad Gateway テストアプリはこちら JavaScriptのソースはここのhtmlに 駅や路線のデータは駅データ.jpのものを使わせてもらいました。 使ったのは東京メトロ+都営+山手線 駅(ノード)の数は、同じ駅でも路線ごとで別にカウントして 322 駅同士をつなぐ線路(エッジ)の数は、徒歩や乗換えを含め 912 体感もっさり感じるけど、経路の検索以外のところがかなりかかってる Tips Prototype.js Array.without は超重い、使うな! Hash.keys で返ってくるキーはすべて文字列に

    東京を走る路線のデータを使って、最短経路問題をダイクストラ法で解く - imHo
  • マージ・ソート : 巨大データのソート法

    はじめに まずはともあれ腕試し、この問題を解いてみてくださいな: 【問1】 デタラメな順序で並んだ文字列の集合がテキストファイル「input.txt」に収められています。この文字列群を辞書順(昇順)に並び換えたテキストファイル「sorted.txt」を作りなさい。 ※各文字列は改行で区切られています。 プログラミング教の練習問題、あるいは学校の課題で出てきそうな“お馴染み”の問題です。ソート(整列)アルゴリズムの実装には配列/代入/条件分岐/ループなどなどプログラミングの基中の基となる構文を総動員するため、練習問題としてよく使われますね。 早速解いてみましょう、ソート・アルゴリズムにはこれまたお馴染みのバブル・ソートを使います。C#、VB.NETC++/CLIの3まとめて一気にいきますよ: using System; using System.IO; using System.C

    マージ・ソート : 巨大データのソート法
  • 著名ソーシャルメディアが使っているアルゴリズムを大公開! | Moz - SEOとインバウンドマーケティングの実践情報

    “アルゴリズム”は、もっとも非人間的なものの代表だともいえる。ソーシャルメディアにとって、そのアルゴリズムが不可欠だというのは、実に皮肉めいている。 僕はこの間、グーグルがどうやってユーザーデータを集めているかについて書いた記事を掲載した(前編、後編)。今回は、著名なソーシャルメディアサイトが、ユーザーデータを活用する上でどのようにアルゴリズムを用いているのか、白日の下にさらそう。 ソーシャルメディアを成り立たせているのは人間の力だが、ユーザーが入力したデータを利用できる状態にする仕組みは、アルゴリズムによって作られている。現在活動している無数のソーシャルメディアサイトで実証済みのことだが、ユーザーの関与とアルゴリズムによる処理ルールの上手いバランスを見出すことは、とても難しくなりがちだ。これから紹介するアルゴリズムは、悪意のないユーザーと結びついて初めてうまくいくものだ。 人気ソーシャル

    著名ソーシャルメディアが使っているアルゴリズムを大公開! | Moz - SEOとインバウンドマーケティングの実践情報
  • Welcome to Furuhashi Group : Research

  • Kikker の学習の仕組みと Rocchio アルゴリズム - naoyaのはてなダイアリー

    先日のソーシャルブックマーク研究会では id:kanbayashi さんによる発表がありました。id:kanbayashi さんは Kikker や はてブまわりのひと などの開発をされている方です。最近情報検索理論に入門した自分にとっては、非常に面白い発表でした。 発表の中で Kikker の学習の仕組みについての解説もありました。Kikker は Cosine similarity で推薦するドキュメントを検索しているそうですが、ユーザーのクリックデータを使って、ユーザーごとに推薦対象を最適化するようにしているそうです。この学習は、ユーザーが見たページのベクトルを、そのユーザーの趣向ベクトルに足し込むことで実現している、とのことでした。 SBM研究会で発表した"私がチャレンジしたSBMデータマイニング"のスライド - Ryoの開発日記 Neo! 発表ではベクトルを加算することについて「

    Kikker の学習の仕組みと Rocchio アルゴリズム - naoyaのはてなダイアリー
  • JavaでTrieデータ構造を実装する

    WEB+DB PRESS vol.42の特集「アルゴリズム&データ構造」でもとりあげられていたTrie(とらい; p34-37)について調べてみたので、忘れないようにメモです。 Trie(s)というのは単語を辞書のなかから見つけ出すときに人がふつうに行っている探し方のアルゴリズムです。例えば、poolならまず、pのところに行って、次にoのところに行って、、、つまり、p -> o -> o -> lと探していきます。続いてprizeを見つけるとしたら、p -> r -> i -> z -> eですが、先頭の文字が同じpなので、pの付近からはずれたところから始めたりはしません。この二つの単語の場合pをprefixと見なすのがTrieです。poolとpoleだったらprefixはpoにのびていきます。prefixがのびていけばいくほど候補は減っていきます。ちょうどIDEのメソッド補完機能のように

    JavaでTrieデータ構造を実装する
  • 秋元@サイボウズラボ・プログラマー・ブログ: 各ソート技法をアニメーションで表示するAnimated Sorting Algorithm Demo

    ソートアルゴリズムのアニメーションデモでは、様々なソート手法(挿入、選択、バブル、シェル、マージ、ヒープ、クイック、三分割クイック)について、ソート対象のデータが完全ランダムの場合、ほぼソートされている状態、逆順にソートされている場合、同じ値のものが多数ある場合のデータをソートする様子を、Javascriptを使ったアニメーションで見せてくれる。 それぞれのソートアルゴリズムがどのようなものか見せるというだけでなく、ソートのアルゴリズムに「常にこれが最適」というものはない、というのを示すのも目的、ということだ。 各アルゴリズムのリンクからは、そのアルゴリズムのコード、特徴や計算量が解説されたページに飛ぶ。 このようなソートアルゴリズムの可視化というテーマ、Javaベースではこういうのやこういうの、こういうのも過去にあった。 via del.icio.us/popular

    秋元@サイボウズラボ・プログラマー・ブログ: 各ソート技法をアニメーションで表示するAnimated Sorting Algorithm Demo
  • クラスタリングによる迷路作成アルゴリズム

    はじめに クラスタリングアルゴリズムにより、解くと絵が浮かび上がる 迷路を作成する方法を紹介する。 クラスタリングとは ウェブのリンク情報や、mixiの友人関係など、ネットワークの性質を 知りたいことがよくある。このとき、ネットワークの性質として このネットワークにおいて任意に選んだ要素Aと要素Bはつながっているか? このネットワークは全体がつながっているか? つながっていないとしたらいくつのグループに分かれるか? 要素数最大のグループはどれか? などの情報が欲しくなる。このような解析をするときに 必要となるのがクラスタリングである。 クラスタリングとは、同値関係のリストが与えられたときにグループ分けを することである。たとえば、 友達友達友達である と定義すると、友人関係は同値関係を作る。 その上で、 A君とB君は友達 C君とE君は友達 B君とD

  • Google

    Praise for Programming Collective Intelligence “I review a few books each year, and naturally, I read a fair number during the course of my work. And I have to admit that I have never had quite as much fun reading a preprint of a book as I have in reading this. Bravo! I cannot think of a better way for a developer to first learn these algorithms and methods, nor can I think of a better way for me

    YasSo
    YasSo 2008/06/18
    授業で使おうと思ってた本。PDFで公開されたのか!
  • Cuckoo Hashing - Radium Software

    ハッシュテーブルからエントリーを検索する処理は,一般に定数時間で済むとされている。つまり,どんなにエントリーが増えても検索の速さは変わらない,ということ。データ構造の教科書には必ず載っていることだね。 でも実際には,ハッシュの衝突が起こった場合に,速度の低下が発生する可能性がある。例えば,一般的なチェイン法(オープンハッシュ)だと,衝突したエントリーに関して線形検索を行うことになるから,衝突が多ければ多いほど,定数時間からは遠のいてしまう。 この速度低下を防ぐ方法はいろいろある。なかでも cuckoo hashing (カッコウ・ハッシング)は仕組みが面白い。こいつは,エントリーの検索を必ず定数時間で済ませてくれるという優れものなんだ。 Cuckoo hashing では,2つのハッシュ関数と,2つのテーブルを用いる。ここでは,2つのハッシュ関数をそれぞれ h1, h2 として,2つのテー

    Cuckoo Hashing - Radium Software
  • 力試しにナベアツのような判定をするプログラムを作ろうとしたところ、問題が発生しました。…

    力試しにナベアツのような判定をするプログラムを作ろうとしたところ、問題が発生しました。 3の倍数や5の倍数は考えるまでもないんですが、3のつく数字をどう判定したらいいのかわかりません。 どのように判定させればよいのでしょうか?

  • garcinia cambogia reviews

    Ufabet เว็บตรงเว็บตรง Ufabet คือเว็บไซต์อย่างเป็นทางการของ Ufabet ซึ่งเป็นผู้ให้บริการเดิมพันกีฬาและคาสิโนออนไลน์ที่ใหญ่ที่สุดในโลก เว็บไซต์นี้เปิดโอกาสให้ผู้ใช้เข้าถึงตัวเลือกการพนันที่หลากหลาย รวมถึงการเดิมพันกีฬา เช่น ฟุตบอล บาสเกตบอล เทนนิส และกีฬาอื่นๆ รวมถึงเกมคาสิโนยอดนิยมอย่าง โป๊กเกอร์ สล็อต บาคาร่า และรูเล็ต เว็บแม่ของ Ufabet เป็นแหล่งที่มาหลักของบริการเดิมพันออนไลน์ หรือเป็นเว็บไซต์หลัก

  • miscellaneous

    排他制御を考慮していない並列処理 次のプログラムは、Workerクラスのdo_something()内で"*"を10個印字した後、改行している。ただし、別なスレッドが"+"を印字するinterrupt()を呼び出しているため、"*"と"+"が混じってしまう。 #include <iostream> #include <boost/thread.hpp> class Worker{ public: void do_something(){ while(true){ for(int i = 0 ; i < 10 ; i++){ boost::this_thread::sleep(boost::posix_time::milliseconds(100)); std::cout << "*" ; } std::cout << std::endl; } } void interrupt(){ std

  • Visual Turing Machine (びじゅある・ちゅーりんぐ・ましーん) - 関心空間

  • 【第4回】レコメンデーションの虚実(4)〜ベイジアンは「Amazonを超えた」のか? (1/2) - ITmedia アンカーデスク

    レコメンデーションの虚実(4)~ベイジアンは「Amazonを超えた」のか?:ソーシャルメディア セカンドステージ(1/2 ページ) Amazonを超えるレコメンデーションエンジン 今年8月6日・13日号の『日経ビジネス』誌に、「王子とニート 若者を浪費する日社会」という特集が掲載された。この特集の中で紹介されていたのが、ライブドアのCTO(最高技術責任者)や代表取締役を経てゼロスタートコミュニケーションズを設立したzakiさんこと山崎徳之氏。この記事で、彼の登場する場面はなんとも凄い。次のような書き出しだ。 天才プログラマーの腕はさび付いていなかった。 「よし、とりあえずアマゾンは超えたかな」 東京・渋谷の小さなオフィスで、ゼロスタートコミュニケーションズ社長の山崎徳之はキーボードから手を離すと、小さく伸びをした。 この記事のことを聞いてみると、彼は苦笑しながらこう言った。「いやあ、さす

    【第4回】レコメンデーションの虚実(4)〜ベイジアンは「Amazonを超えた」のか? (1/2) - ITmedia アンカーデスク
    YasSo
    YasSo 2007/10/14
    協調フィルタリングだけじゃなくてベイズ理論も使って推薦。>id:delicious
  • okamoto7の日記 Online Computation and Competitive Analysis

    オンラインアルゴリズムとストリームアルゴリズム (アルゴリズム・サイエンスシリーズ―数理技法編) 作者: 徳山豪出版社/メーカー: 共立出版発売日: 2007/08/10メディア: 単行購入: 2人 クリック: 38回この商品を含むブログ (11件) を見る ようやく目にすることができました. 今年度は既にいろんなところに行き過ぎで,書籍すら買う余裕がなさそうなので未購入だけど,何とかして読みたいです. ぱらぱら立ち読みしたところ,論と関係ないあとがきやまえがきや補足のところが個人的には好きです. まぁ,論はぱらぱら読んだだけでは分からないので仕方ないですが. ちなみに,オンラインアルゴリズムとは一言でいうなら「分からない未来に対するアルゴリズム」で,それを統計的に扱おうとすると予測理論になるのですが,そうではない形で理論展開するところが面白いわけです. 一方,ストリームアルゴリズム

    okamoto7の日記 Online Computation and Competitive Analysis
    YasSo
    YasSo 2007/10/05
    オンラインアルゴリズム、ストリームアルゴリズム
  • カイ二乗値で単語間の関連の強さを調べる

    カイ二乗値で単語間の関連の強さを調べる 2007-09-19-1 [Algorithm][Programming] カイ2乗値を使って単語間の関連度を調べる方法。 つまり、関連語を探すときに、χ二乗値を関連度として使う。 perl によるサンプルコード (chiword.pl)。昔、勉強がてら作ったコード。 #!/usr/bin/perl use strict; use warnings; my %cnt; my $pair_num; while (<>) { chomp; next if /^\s*$/; my @list = sort split(/,/, $_); for (my $i = 0; $i < @list; $i++) { for (my $j = $i + 1; $j < @list; $j++) { next if $list[$i] eq $list[$j]; $c

    カイ二乗値で単語間の関連の強さを調べる
  • http://www.neurosci.aist.go.jp/~kurita/thesis/thesis/node23.html