Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

タグ

algorithmに関するJ138のブックマーク (45)

  • 複数の予定から空き時間を算出するプログラム(bit演算利用)

    [2019.6.23追記: スケジュール調整のイメージ画像挿入] スケジュールなどの時間を幅で取扱う際に、複数のカレンダーから共通して空いている時間帯を抽出したい時があると思います。Googleカレンダーや営業の会社で使われているようなカレンダー、イベント管理システムであれば、複数のカレンダーを横に揃えて表示させることで、簡単に空き時間を見つけることができます。一方で、人間の認識ではいとも簡単にできるこの空き時間帯を抽出する作業ですが、コードに落とし込むとなると「時間」というデータの特殊性からすんなりとはコードが書けなかったりします。というか私の場合、冗長なコードで強引に進める以外の方法が思い浮かばず、その強引なコードでさえ完成させるのに4日程かかりました。それまで徐々に悪くなっていった調子がこのコード作成作業のせいで完全に悪くなり、シャレにならないくらいの状況になってしまいました。笑(今

    複数の予定から空き時間を算出するプログラム(bit演算利用)
  • 計算量と僕とWeb開発 / computational complexity and I and Web

    TiDBは銀の弾丸になるのか? ~ レバテックの課題と新たな挑戦 ~ TiDB User Day 2024

    計算量と僕とWeb開発 / computational complexity and I and Web
  • Looks Like It - The Hacker Factor Blog

    For the last few months, I have had a nearly constant stream of queries asking how TinEye works and, more generally, how to find similar pictures. The truth is, I don't know how the TinEye image search engine works. They don't disclose the specifics of the algorithm(s) that they use. However, based on the type of results it returns, it appears to me to be some variation of a perceptual hash algori

  • A/Bテストよりすごい?バンディットアルゴリズムとは一体何者か - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? オバマ大統領の再選に大きく寄与したことで大きな注目を集めているA/Bテスト。A/Bテストを導入した、することを検討している、という開発現場も多いのではないだろうか。 そんな中、Web上で次のような議論を見つけた。 20 lines of code that will beat A/B testing every time Why multi-armed bandit algorithm is not “better” than A/B testing 一言でまとめると「A/Bテストよりバンディットアルゴリズムの方がすごいよ」「いやいやA

    A/Bテストよりすごい?バンディットアルゴリズムとは一体何者か - Qiita
  • クラスタリングの定番アルゴリズム「K-means法」をビジュアライズしてみた

    集合知プログラミング を読んでいたら、K-means 法(K平均法)の説明が出てきました。 K-means 法はクラスタリングを行うための定番のアルゴリズムらしいです。存在は知っていたんだけどいまいちピンときていなかったので、動作を理解するためにサンプルを作ってみました。 クリックすると1ステップずつ動かすことができます。クラスタの数や点の数を変更して、Restart を押すと好きなパラメータで試すことができます。 こうやって1ステップずつ確認しながら動かしてみると、意外に単純な仕組みなのが実感できました。 (追記) HTML5 版の K-means 法を D3.js でビジュアライズしてみた も作成しました。Flash を表示できない環境ではそちらをご覧ください。 K-means 法とは K平均法 - Wikipedia に詳しく書いてあるけど、もうすこしザックリと書くとこんなイメージに

    クラスタリングの定番アルゴリズム「K-means法」をビジュアライズしてみた
  • モンテカルロ法 - Wikipedia

    モンテカルロ法(モンテカルロほう、(英: Monte Carlo method、MC)とはシミュレーションや数値計算を乱数を用いて行う手法の総称。元々は、中性子が物質中を動き回る様子を探るためにスタニスワフ・ウラムが考案しジョン・フォン・ノイマンにより命名された手法。カジノで有名な国家モナコ公国の4つの地区(カルティ)の1つであるモンテカルロから名付けられた。ランダム法とも呼ばれる。 計算理論の分野において、モンテカルロ法とは誤答する確率の上界が与えられる乱択アルゴリズム(ランダム・アルゴリズム)と定義される[1]。一例として素数判定問題におけるミラー-ラビン素数判定法がある。このアルゴリズムは与えられた数値が素数の場合は確実に Yes と答えるが、合成数の場合は非常に少ない確率ではあるが No と答えるべきところを Yes と答える場合がある。一般にモンテカルロ法は独立な乱択を用いて繰り

    モンテカルロ法 - Wikipedia
  • バンディットアルゴリズム入門と実践

    39. 実際の使用イメージ 試行数 アーム1期待値 アーム2期待値 アーム3期待値 活用or探索 0(0/0) 0(0/0) 1 1(1/1) 0(0/0) 2 1(1/1) 0(0/1) 3 1(1/1) 0(0/1) 4 1(2/2) 0(0/1) 5 1(2/2) 0.5(1/2) 6 1(2/2) 0.5(1/2) 7 8 0.66(2/3) 0.5(1/2) 9 0.5(2/4) 0.5(1/2) 10 0.4(2/5) 0.5(1/2) 0(0/0) 0(0/0) 0(0/0) 0(0/1) 0(0/0) 0(0/0) 0(0/2) 0(0/2) 0(0/2) 0(0/2) ・・・最も期待値の高いアーム 39 探索 探索 探索 探索 探索 探索 活用 活用 活用 活用 ランダム選択 引くアーム 結果 1 2 3 1 2 3 - アーム1 アーム2 アーム3 アーム1 アーム2

    バンディットアルゴリズム入門と実践
  • 線形合同法 - Wikipedia

    線形合同法(せんけいごうどうほう、英: Linear congruential generators, LCGs)とは、擬似乱数列の生成式の一つ。 漸化式 によって与えられる。A、B、Mは定数で、M>A、M>B、A>0、B≥0である。 上の式で、が、乱数の種であり、これに数を代入すると、が得られる。さらにを生成する場合には、を使う。以後、同様に行う。 例えば、定数をそれぞれ、A=3、B=5、M=13、乱数の種=8とすると、(上の式においてはXn+1を左辺に置いたが、今回は便宜上、右辺に置く) 次に乱数を生成する際は前回生成された乱数(今回は3)を使って、 以下、同じように、 となる。 生成される乱数列は周期性を持ち、上の例では8→3→1→8→3→……、を繰り返す。この周期は最大でMであり、以下の条件が満たされたときに最大周期Mをもつ。 BとMが互いに素である。 A-1が、Mの持つ全ての素因

  • プログラミングコンテストでの乱択アルゴリズム

    1. 2012/06/12 ディー・エヌ・エー 渋谷オフィス (TopCoder Meetup in Japan) プログラミングコンテストでの 乱択アルゴリズム 東京大学情報理工学系研究科 秋葉 拓哉 / [[iwi]] 1 2. 自己紹介 • 秋葉 拓哉 / [[iwi]] – Twitter: @iwiwi • 東京大学 情報理工学系研究科 コンピュータ科学専攻 • プログラミングコンテスト凄い好き – 世界大会の常連をやっています – ここ 1 年で 3 回,来月も行きます • プログラミングコンテストチャレンジブック共著 2 3. 今日の話 「乱択アルゴリズム」 • 既存の乱択アルゴリズムの紹介を延々とはしません – そういうアルゴリズム解説は一杯あります • コンテストに焦点を絞り,乱択アルゴリズムを設計 できるようにする,ということを目指す (簡単めの話になります,中上級者の

    プログラミングコンテストでの乱択アルゴリズム
  • ループをたくさん回す処理を高速化する初歩の初歩。 - このブログは証明できない。

    テキスト処理を中心にやっていましたが、画像処理に興味が出てきて、さっそくアプリを作りました。もともと下の記事のあたりでユーザーとして画像処理に興味を持って、当然の流れながら、自分でもつくってみようと。 Color Splash + TiltShift Generator + Instagramの写真加工が面白い。 - このブログは証明できない。 で、何かを間違えて、普通の画像処理ではなく、カメラの映像をリアルタイムに加工しはじめました。そうすると、パフォーマンスがかなりシビアなんですね。 iPhoneでカメラの映像をリアルタイム画像処理してみる。 - このブログは証明できない。 全ピクセルを操作しなければなりませんから、ループをたくさん回す必要があります。なんとか高速化できないかと考えてみたところ、あっさり高速化に成功しました。私が気づくぐらいですから、初歩の初歩なんだと思います。 追記:

  • メモ化 - Wikipedia

    メモ化(英: memorization)とは、プログラムの高速化のための最適化技法の一種であり、サブルーチン呼び出しの結果を後で再利用するために保持し、そのサブルーチン(関数)の呼び出し毎の再計算を防ぐ手法である。メモ化は構文解析などでも使われる(必ずしも高速化のためだけとは限らない)。キャッシュはより広範な用語であり、メモ化はキャッシュの限定的な形態を指す用語である。 メモ化という用語は1968年にドナルド・ミッキーがラテン語の memorandum(覚えておく)から作った造語である[1]。memorization(記憶、暗記)は同根語であってよく似ているが、メモ化という言葉は情報工学では特別な意味を持つ。 メモ化された関数は、以前の呼び出しの際の結果をそのときの引数と共に記憶しておき、後で同じ引数で呼び出されたとき、計算せずにその格納されている結果を返す。メモ化可能な関数は参照透過性を

  • Algorithm - 連想配列の実装としてのハッシュはオワコン? : 404 Blog Not Found

    2012年01月17日11:45 カテゴリアルゴリズム百選Tips Algorithm - 連想配列の実装としてのハッシュはオワコン? 珠玉のプログラミング Jon Bentley / 小林健一郎訳 つまり「終わったコンテナ」。 以前からうすぼんやりと考えて来た危惧が、すこしはっきりと見えてきた。 徳丸浩の日記: Webアプリケーションに対する広範なDoS攻撃手法(hashdos)の影響と対策 もうそろそろハッシュ(テーブル)以外の手段の連想配列の実装手段を格的に模索するべきではないか、と。 そのデータ構造は、君の魂を差し出すに足るものかい? 連想配列(Associative array)がコレクション(Collection)、すなわち数多のデータ構造をまとめるデータ構造としての覇者となったのはもはや疑いようがない事実でしょう「配列で実装されるデータ構造ではなくて、配列を実装するデータ構

    Algorithm - 連想配列の実装としてのハッシュはオワコン? : 404 Blog Not Found
  • アマゾン、440億円の大型買収へ。ベゾスも恐れるダイパーズ、驚異的成長の秘密:In the looop:オルタナティブ・ブログ

    Amazonが、Quidsiを買収すると複数のブログメディアが報じた。買収額は540百万ドル(約440億円)だ。 Quidsi(以下、運用サイトDiapers[ダイパーズ]と略する)は、創業2005年。ベビー用品コマース Diapers.com を中心に、Soap.com、BeautyBar.com を運営している急成長ベンチャーだ。特にDiapers.comの成長は驚異的で、わずか創業4年にもかかわらず、2009年売上で180百万ドル(約146億円)、2010年売上は300百万ドル(約244億円)は達すると見込まれている。 【急成長ベビー用品コマース Diapers.com】 ちなみに、Amazonの大型買収は、900百万ドル(約732億円)を投入したZappos以来だ。 ・ アマゾンが800億かけても買収したかった「ザッポスの奇跡」 (12/7) このZapposとDiapersは、巨

    アマゾン、440億円の大型買収へ。ベゾスも恐れるダイパーズ、驚異的成長の秘密:In the looop:オルタナティブ・ブログ
  • http://local.joelonsoftware.com/mediawiki/index.php/Java

  • スペル修正プログラムはどう書くか

    Peter Norvig / 青木靖 訳 先週、2人の友人(ディーンとビル)がそれぞれ別個にGoogleが極めて早く正確にスペル修正できるのには驚くばかりだと私に言った。たとえば speling のような語でGoogleを検索すると、0.1秒くらいで答えが返ってきて、もしかして: spelling じゃないかと言ってくる(YahooMicrosoftのものにも同様の機能がある)。ディーンとビルが高い実績を持ったエンジニアであり数学者であることを思えば、スペル修正のような統計的言語処理についてもっと知っていて良さそうなものなのにと私は驚いた。しかし彼らは知らなかった。よく考えてみれば、 別に彼らが知っているべき理由はないのだった。 間違っていたのは彼らの知識ではなく、私の仮定の方だ。 このことについてちゃんとした説明を書いておけば、彼らばかりでなく多くの人に有益かもしれない。Google

  • C - で私も素数を数えてみた : 404 Blog Not Found

    2010年07月26日18:30 カテゴリMath C - で私も素数を数えてみた 世間は夏休みだそうだし、連日の猛暑で体調も底だし、というわけで私も素数を数えてみた。 10兆までの素数のリストを作ってみませんか? - 記者の眼:ITpro もしあなたがプログラマだったら、プログラムを書いて10兆までの素数のリストを作ってみてほしい。情報システムの開発に携わる人であれば、10兆までの素数のリストを出力するシステムの見積もりを考えてみてほしい。費用はどれくらいかかるか、納期はどれくらいか、あなたはどんな答を出すだろうか。仕様書はうまく書けるだろうか。 プライムナンバーズ David Wells / 伊知地宏監訳 / さかいなおみ訳 [原著:Prime Numbers: The Most Mysterious Figures In Math] といっても原田記者と同じように書いても芸がないので

    C - で私も素数を数えてみた : 404 Blog Not Found
  • Variable Byte Code と UTF-8、またはUTF-24が存在しないわけ : 404 Blog Not Found

    2009年08月05日00:30 カテゴリLightweight Languages Variable Byte Code と UTF-8、またはUTF-24が存在しないわけ 実は、これに非常に良く似た符号化を、我々は日々目にしています。 γ符号、δ符号、ゴロム符号による圧縮効果 - naoyaのはてなダイアリー 通常の整数は 32 ビットは 4 バイトの固定長によるバイナリ符号ですが、小さな数字がたくさん出現し、大きな数字はほとんど出現しないという確率分布のもとでは無駄なビットが目立ちます。 UTF-8です。 UTF-8は、0x0から0x10FFFFまでの整数を、以下のようにしてバイト列に変換します。 Range/Offset0123 0x00-0x7F0xxxxxxx 0x80-0x3FF110xxxxx10xxxxxx 0x400-0xFFFF1110xxxx10xxxxxx10xx

    Variable Byte Code と UTF-8、またはUTF-24が存在しないわけ : 404 Blog Not Found
  • MOONGIFT: » パズルも自動生成の時代へ「ナンプレ自動生成」:オープンソースを毎日紹介

    Open Tech Press | タイムインターメディア、ナンプレ自動生成アルゴリズムをGPLで公開より ナンプレ、他の言い方をすると数独と言うパズルがある。3×3の升目がさらに3×3集まって、その中に3×3の中、縦、横に重ならない1~9の数字を入れていくものだ。単純で分かりやすく、そして難しく筆者も好きなパズルだ。 そんなナンプレであるが、自分でも作りたいと思った事はないだろうか。少なくとも手軽に作成できればいつでもどこでも楽しめるようになる。 今回紹介するフリーウェアはナンプレ自動生成、ナンプレ自動作成ソフトウェアだ。 ナンプレ自動生成は特許に出願中のナンプレ生成アルゴリズムを利用したソフトウェアで、ナンプレを簡単に生成してくれるものだ。パズルを自分で生成できるようになるとは凄い。公式サイトではJavaアプレットによる操作もできるので、ぜひ一度試してみて欲しい。 パズルの中で表示する

    MOONGIFT: » パズルも自動生成の時代へ「ナンプレ自動生成」:オープンソースを毎日紹介
  • YAPC::Asia 2009 1日目 「Perlで圧縮」の資料 - naoyaのはてなダイアリー

    1日目の発表を終えました。資料を公開します。 Perlで圧縮View more presentations from Naoya Ito. 発表の方は少し駆け足になってしまいました。明日ははてなブックマークのシステム事例の話をしたいと思います。 発表の様子 via: http://yapcasia2009.ficia.com/

  • mixi Engineers’ Blog javascript