タグ

JavaScriptとmathに関するOooのブックマーク (2)

  • JavascriptのMath.random()でユーザートラッキングができるという話 - kogelab::memo

    表題の件について。 地味な話ですが、javascript(というかECMAの仕様)にあるMath.random()には、乱数のシードを与える方法が無いようです。 そんなわけで、われわれ一般市民は各ブラウザが独自に実装している、謎のシードで初期化された謎のアルゴリズムで作られた乱数を通常使うわけですが。 Mozillaからこんなの出てた。 曰く、Math.random()のシードによる初期化は、ブラウジングセッションごとに1度しか行われないと。 で、シードはまあ、かぶる率そんなに高くなさそうなので、そのシードをUSERの(擬似的な)ID代わりにしてしまえば、ユーザーのトラッキングができるよーん、とのこと。 はじめ読んだとき、「おおー、かっけー!」と思ったんですが、ちょっと待て。 シードって外から取れんのか。 というわけで、色々調べたところ、各ブラウザは(多分IEも)線形合同法による擬似乱数を

    JavascriptのMath.random()でユーザートラッキングができるという話 - kogelab::memo
  • Mathクラスでよくやる高速化備忘録 « nulldesign

    最近高速化に興味津々です。そんな中、Mathクラス遅いよね、遅くね?。ってことで、高速エンジン書くときによく使う最適化の一部(Mathクラス中心)を備忘録的に。ちょこっとだけ検証もしました。 内容的には既に既出のものばかりですが、備忘録ということで。 検証方法ですが、単純な式を1,000,000回繰り返し、そのタイムを10回計測。 平均値をもとにパフェーマンスを時間ベースで評価しています。 Math.max var k:Number = Math.max( a, b ); var k:Number = ( a > b )? a : b; // 46.4ms -> 3.5ms Math.min var k:Number = Math.min( a, b ); var k:Number = ( a 3.5ms Math.round var k:Number = Math.round( a

  • 1