タグ

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

  • コンペア・アンド・スワップ - Wikipedia

    コンペア・アンド・スワップ(Compare-and-Swap、CAS)は、CPUの特別な命令の一種。不可分操作として、あるメモリ位置の内容と指定された値を比較し、等しければそのメモリ位置に別の指定された値を格納する。この操作の結果、置換が行われたかどうかを示す必要があり、単純な真理値を返すか、そのメモリ位置から読み込んだ内容(書き込んだ内容ではない)を返す。 CAS命令は、マルチプロセッサシステムでセマフォなどを実装するのに使われる。マルチプロセッサシステムでLock-freeとWait-freeアルゴリズムを実装するのにも使われる。 Maurice Herlihy (1993年) は、CAS命令が単なるリード、ライトやテスト・アンド・セットでは実装できないことを示した[1]。 応用[編集] CAS命令を利用したアルゴリズムは、一般にあるキーとなるメモリ位置を読み取り、その古い値を記憶して

  • TechCrunch | Startup and Technology News

    Finbourne, founded out of London’s financial center, has built a platform to help financial companies organize and use more of their data in AI and other models. Even as quick commerce startups are retreating, consolidating or shutting down in many parts of the world, the model is showing encouraging signs in India. Consumers in urban cities are embracing the convenience of having groceries delive

    TechCrunch | Startup and Technology News
  • 文字列探索アルゴリズム談義

    Ryoma Sin'ya @sinya8282 電通大の大山先生の講義で 「BVMD(BitVisorの拡張[VMM])ではI/OをClamAVのシグネチャを元にAho-Corasick 法でマッチングしてマルウェアを検出してます.」と聞いた. http://t.co/hsfm11xg 2012-01-12 01:11:54 Ryoma Sin'ya @sinya8282 「Aho-Corasickは文字列スキップしない探索アルゴリズム. 複数文字列探索でもスキップを行うCommentz-Walter法やWu-Manber法の方が高速ですよー」と教えたら知らなかったらしく喜んでた. 2012-01-12 01:15:53

    文字列探索アルゴリズム談義
  • SMART | smart

    String Matching Algorithms Research Tool SMART SMART (String Matching Algorithm Research Tool) is a tool which provides a standard framework for researchers in string matching. It helps users to test, design, evaluate and understand existing solutions for the exact string matching problem. Moreover it provides the implementation of (almost) all string matching algorithms and a wide corpus of text

  • FizzBuzzができない人について

    chokudai(高橋 直大)@AtCoder社長 @chokudai 「アルゴリズムなんて業務で要らないでしょ?別に業務で問題解くわけじゃないんだし」「では、御社で働いているプログラマが、FizzBuzzとか出来なくても、業務では3で割り切れるかどうかなんて判定しないから、必要ないとおっしゃられるつもりですか?」「うん」「・・・え?」「いらない」 2011-10-07 23:01:05

    FizzBuzzができない人について
  • 頻出典型アルゴリズムの演習問題としてよさげなやつ - 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

  • ランポートのパン屋のアルゴリズム - Wikipedia

    この記事は検証可能な参考文献や出典が全く示されていないか、不十分です。出典を追加して記事の信頼性向上にご協力ください。(このテンプレートの使い方) 出典検索?: "ランポートのパン屋のアルゴリズム" – ニュース · 書籍 · スカラー · CiNii · J-STAGE · NDL · dlib.jp · ジャパンサーチ · TWL(2021年12月) ランポートのパン屋のアルゴリズム(ランポートのパンやのアルゴリズム)とは、レスリー・ランポートが考案した相互排他のためのアルゴリズムである。マルチスレッド処理などのロバストさを相互排他(ミューテックス)によって強化することを目的としている。 マルチスレッドなシステムにおいて、2つ以上のスレッドから同時に同一のリソースにアクセスすることがしばしば起きる。しかし例えば、2つ以上のスレッドがそれぞれ「リード・モディファイ・ライト」を同一の対象に

  • 小学生が学ぶビジュアル言語ビスケットがすごい - A Successful Failure

    情報処理10月号では、『特集 未来のコンピュータ好きを育てる』としてコンピュータに魅力を感じる人材を育成する試みを紹介している。とても面白い特集となっているので、送付されてきたまま袋から出さずに放置してある人は是非一読する事を薦めたい。 小中学校における情報科学教育は世界的に重要視されつつある。ACMのモデルカリキュラムでは、第8学年(中学2年生)までにコンピュータ操作、デジタル化、情報の表現、問題解決などを履修し、第9-10学年で、コンピュータの構成、アルゴリズム、抽象化、数学との関連などの情報科学を学ぶ事を提言している。 ところが、現在の日の情報教育は文字入力やWeb情報探索など、コンピュータの利用法に関する教育に終始し、情報科学をはじめとする情報技術の原理・仕組みに関してはほとんど重要視されていない。一方、韓国の情報教育 ━初・中等学校情報通信技術(ICT)教育運営指針と改訂中・高

    小学生が学ぶビジュアル言語ビスケットがすごい - A Successful Failure
  • アルゴリズムの紹介

    ここでは、プログラムなどでよく使用されるアルゴリズムについて紹介したいと思います。 元々は、自分の頭の中を整理することを目的にこのコーナーを開設してみたのですが、最近は継続させることを目的に新しいネタを探すようになってきました。まだまだ面白いテーマがいろいろと残っているので、気力の続く限りは更新していきたいと思います。 今までに紹介したテーマに関しても、新しい内容や変更したい箇所などがたくさんあるため、新規テーマと同時進行で修正作業も行なっています。 アルゴリズムのコーナーで紹介してきたサンプル・プログラムをいくつか公開しています。「ライン・ルーチン」「円弧描画」「ペイント・ルーチン」「グラフィック・パターンの処理」「多角形の塗りつぶし」を一つにまとめた GraphicLibrary と、「確率・統計」より「一般化線形モデル」までを一つにまとめた Statistics を現在は用意していま

  • algorithm

    奥村晴彦さんの「C言語による最新アルゴリズム事典」技術評論社、1991年、の C 言語プログラムの Ruby への翻訳に挑戦します。プログラムの説明は同書を読んでください。変換はできるだけ逐語的に行っています。プログラムの動作は原作の C プログラムのそれと比較してチェックしていますが、うまく動作しないときは C から Ruby への変換のさいに起きたものです。バグレポートは tnomura@mnet.ne.jp までお願いします。 この Ruby 翻訳版はできるだけレイアウトも含めて原作の C プログラムを変更しないようにしたため、必ずしもRuby らしいコーディングスタイルとは言えないかもしれませんが、プログラムがきちんと動作することを優先しました。C から Ruby への翻訳の著作権に関しては Ruby のライセンスに準じます。配布、改変は自由です。ただし、プログラム体には原作者の

  • 「1000のアルゴリズムを持つ男」vs.「やわらか頭脳」

    「1000のアルゴリズムを持つ男」vs.「やわらか頭脳」:最強最速アルゴリズマー養成講座(1/3 ページ) 典型的なアルゴリズムをたくさん知っている人間が最強か――? いいえ、典型的なアルゴリズムを知らなくても、違ったアプローチで答えに迫る方法はいくらでも存在します。短い実行時間で正確な答えを導き出せるかを考える習慣をつけましょう。 アルゴリズマー養成講座と銘打ってスタートした連載。もしかすると読者の方の興味は、はやりのアルゴリズムや汎用的なアルゴリズムを知ることにあるのかもしれません。しかし、今回は、いわゆる「典型的なアルゴリズム」を用いずに進めていきたいと思います。 なぜ典型的なアルゴリズムを用いないのか。それは、典型的なアルゴリズムばかりを先に覚え、それだけでTopCoderなどを戦っていこうとした場合、それに少しでもそぐわない問題が出た場合に、まったく太刀打ちできなくなってしまう

    「1000のアルゴリズムを持つ男」vs.「やわらか頭脳」
  • イントロソート - Wikipedia

    イントロソート(英: introsort)は、David Musser(英語版) が1997年に設計した、クイックソートとヒープソートを組み合わせたソートアルゴリズムである。 最初はクイックソートを行い、再帰のレベルがソートされた要素数(の対数)を超えるとヒープソートに切り替える。時間計算量は最悪でも O(n log n) であり、同時に典型的なデータに対するソートではクイックソートに匹敵する性能を示す。 イントロソートは、クイックソートやヒープソートと同様、比較ソートである。 クイックソートは、性能がピボット(データ列を分割する境界値)の選択に強く依存するという欠点があった。 例えばデータ列の先頭や最後尾をピボットに選ぶと、ほぼソートされた入力について最悪の性能を示す。 ニクラウス・ヴィルトはこれを避けるため、データ列の中央の要素をピボットに選ぶようにしたが、工夫をこらした並びに対しては

  • あなたが一番好きなアルゴリズムを教えてください。 また、その理由やどんな点が好きなのかも教えてください。 - 人力検索はてな

    あなたが一番好きなアルゴリズムを教えてください。 また、その理由やどんな点が好きなのかも教えてください。

  • 最強最速アルゴリズマー養成講座:あなたの論理的思考とコーディング力は3倍高められる (1/2) - ITmedia エンタープライズ

    全世界で20万人を超える凄腕のコーダーが集うプログラミングコンテスト「TopCoder」。稿では、アルゴリズム部門のSRMで取り上げられる問題を考えながら、論理的思考力およびコーディングのテクニックを養っていきます。 はじめに はじめまして。高橋直大です。連載「最強最速アルゴリズマー養成講座」では、全世界で20万人を超える凄腕のコーダーが集うプログラミングコンテスト「TopCoder」について、そこで出題される数学・アルゴリズムのパズルを考えることで、コーディングのテクニックおよび論理的思考力を磨くことを目的に開始するものです。ここで扱う技法は主にアルゴリズムのそれですが、その根底にはロジカルな思考術が存在します。そうした能力を養いたい方にとって少しでも役に立てれば幸いです。 なお、稿は必要に応じてコーディング例も紹介しますが、TopCoderで出題される問題の中から比較的やさしい問

    最強最速アルゴリズマー養成講座:あなたの論理的思考とコーディング力は3倍高められる (1/2) - ITmedia エンタープライズ
  • 珠玉のプログラミング - マイナーアニメ好き

    少し前に「珠玉のプログラミング」というを買って読んでみた。研究室にも置いてあるのでちょくちょく見ていたのだけれど、いいだと思ったので購入。 このの中に配列要素のローテートを効率的にするアルゴリズムの解説がある。 一つは「お手玉の方法」。これはローテートさせる要素数をnとして、x[n]の要素をx[0]に、x[2n]の要素をx[n]に……という風に進めていくアルゴリズムのことである。最初はよく分からなかったが、短い配列を考えて自分の手でやってみるとちゃんとうまくいくことが分かった。ただ、このアルゴリズムの実装は非常に面倒だった。 void otedama(char[] array, final int n) { char temp; int agcd = gcd(array.length, n); for(int i = 0; i < agcd; i++) { temp = array[

    珠玉のプログラミング - マイナーアニメ好き
    Hoshi-KN
    Hoshi-KN 2009/06/16
    固定長の配列だから「逆転法」の意味がある。Lispの場合、リストを二つに分けてappendで逆に結合するだけ。
  • 配列の要素を回転移動する-C/C++-水無瀬の部屋

  • イマジン アカデミー: テクノロジースキル & 認定資格 | Microsoft Education

    コースおよび認定資格 Microsoft Imagine Academy は、学生と教育者がテクノロジー志向の経済において成功できるように導くカリキュラムや認定を提供します。

    イマジン アカデミー: テクノロジースキル & 認定資格 | Microsoft Education
    Hoshi-KN
    Hoshi-KN 2009/05/07
    文字列処理、画像処理、遺伝的アルゴリズムなど
  • 1