タグ

algorithmに関するkuyのブックマーク (7)

  • DM's Esoteric Programming Languages

    Esoterica I have Written Esoteric Languages BIT - a language that treats all data like C treats strings. Chef - a language where the programs produce magnificent meals. Haifu - a language based on Eastern philosopy and artistic values. HQ9++ - a language which extends the elegance of HQ9+ to the object-oriented paradigm. Ook! - a language designed for orang-utans. Piet - a language where the progr

  • 一から学ぶベジェ曲線 | POSTD

    (編注:SVGアニメーションを元記事にならい追加しました。リクエストありがとうございました。) 皆さんは線分のことをどう表現しますか? 線分は、端点によって考えられるかもしれません。その端点を P0 、 P1 と呼ぶことにしましょう。 線分を厳密に定義するならば、「 P0 と P1 を結ぶ直線において、 P0 と P1 の間にある全ての点の集合」と言えるかもしれません。これは以下のように表せるでしょう。 便利なことに、上記の定義から、その線分上のどこにある点の座標でも簡単に求めることができます。例えば、中点は L(0.5) にあります。 実は、2点間のどんな値でも、任意の精度で 線形補間する ことが可能です。そのため、時間関数 L(t) の t で線をたどるといった、より複雑なことができるのです。 ここまで来ると、「それが曲線と何の関係があるのか?」と不思議に思うかもしれません。2つの点だ

    一から学ぶベジェ曲線 | POSTD
  • React Fiberアーキテクチャについて | POSTD

    初めに React Fiberは、現在進行形で進められているReactのコアアルゴリズムの再実装であり、Reactチームの2年以上にわたる研究の成果です。 React Fiberは、アニメーション、レイアウト、ジェスチャーといった領域に対する適性を向上させることを目指しています。React Fiberの目玉となる インクリメンタルレンダリング は、レンダリング作業を分割して、複数のフレームに分散させることができる機能です。 他には主に、新たな更新があった際に作業を休止・強制終了・再利用できる機能、更新の種類別に優先順位をつけられる機能、新しい並行プリミティブなどが挙げられます。 このドキュメントについて Fiberは、コードを見ただけでは分かりにくい斬新な概念をいくつも導入します。このドキュメントはそもそも、ReactプロジェクトにおけるFiberの実装に伴って私が取っていたメモを集めたも

    React Fiberアーキテクチャについて | POSTD
  • Scalable Bloom Filtersとは一体....? - Qiita

    Wikipediaを漁っていたところScalable Bloom Filters(SBF)というデータ構造を発見してしまったので紹介します1。 参照した論文 http://haslab.uminho.pt/cbm/publications/scalable-bloom-filters SBFの説明に入る前に、Bloom Filterについて簡単に紹介します。もっとも、日語のWikipediaでも十分詳しい説明が載っていたりするのですが……。 ささっと説明 Bloom Filterはちょっと不思議な性質を持つデータ構造の一種です2。 いわゆるSetと同じ操作を提供する 要素を入れる操作と、ある要素が入っているかを調べる操作 どちらも時間計算量O(1)で実現できる ハッシュテーブルなどを用いて実装される同種のデータ型と比して、とても空間効率が良い その代わりに、ある要素が入っているかの判定を

    Scalable Bloom Filtersとは一体....? - Qiita
  • Create Regular Expression Engine - (rudolph-miller)

    正規表現エンジンの作り方 (と形式言語とオートマトン). (数式多めなのでPCでの閲覧を推奨.) Regular Expression History Math Regular Language & Regular Expression Ring Semi-ring Idempotent semi-ring Kleene algebra Language Regular Language Pure Regular Expression Regular Expression => Regular Language Regular Language => Regular Expression Regular Language <=> Regular Expression Regular Language & Finite Automaton Abstract machine Finite au

    Create Regular Expression Engine - (rudolph-miller)
  • BitCoinとBlockChainにまつわる誤解ーそんなことはできない - Qiita

    言いたいことを一行で BlockChainはいろいろと面倒な制約がありますので,KISSの原則を忘れないようにしましょう.権力分立の原理をどうやっても守りたいという政治的な主張がない限り,BlockChainを応用するのはナンセンスです. はじめに BitCoinの中核をなすBlockChainと呼ばれる技術が今ホットですね,いろんなところで耳にします.BlockChainとはようは皆で合意(AさんがBさんにXを渡したという取引記録)を形成していく分散型合意形成アルゴリズムです.ボランティアで参加したコンピュータ全員で協力して改ざんが困難な取引記録を作っていこうというアルゴリズムです. BlockChainアルゴリズムを銀の弾丸,あるいは魔法の杖か何かだと勘違いしている人がたくさんいて,音楽電子書籍のデジタルライツ,はたまたマイナンバー制度の管理に使えると主張している方々をちらほら見かけ

    BitCoinとBlockChainにまつわる誤解ーそんなことはできない - Qiita
    kuy
    kuy 2016/01/20
    BlockChainは分散型合意形成アルゴリズム。
  • Google Chromeが採用した、擬似乱数生成アルゴリズム「xorshift」の数理

    2015年12月17日、Google ChromeJavaScript エンジン(処理系)である V8 の公式ブログにて、 JavaScript の標準的な乱数生成APIである Math.random() の背後で使われているアルゴリズムの変更がアナウンスされました。 Math.random() 関数は JavaScript を利用する際には比較的よく使われる関数ですので、親しみのある方も多いのではないかと思います。 新たなバグの発見や、従来より優秀なアルゴリズムの発見によってアルゴリズムが変更されること自体はそれほど珍しくはないものの、 技術的には枯れていると思われる Math.random() のような基的な処理の背後のアルゴリズムが変更されたことに驚きを感じる方も少なくないかと思いますが、 それ以上に注目すべきはその変更後のアルゴリズムです。 実際に採用されたアルゴリズムの原

    Google Chromeが採用した、擬似乱数生成アルゴリズム「xorshift」の数理
  • 1