タグ

ブックマーク / blog.recyclebin.jp (2)

  • LINQ で重複なしのランダムサンプリング - 捨てられたブログ

    LINQ で重複なしのランダムサンプリング[A]を行うもっとも単純な方法は,おそらくランダムに並び替えて先頭から所望の数だけ要素を取り出す方法でしょう。 var random = new Random(); source.OrderBy(_ => random.NextDouble()).Take(n); 重み付きでサンプリングしたい場合は乱数に重みを与えて大きい順に取り出します。 source.Zip(weight, (x, w) => new { Value = x, Weight = w }) .OrderByDescending(x => { var u = random.NextDouble(); return Math.Pow(u, 1.0 / x.Weight); }) .Take(n) .Select(x => x.Value); しかしこの方法では全体をソートするので,デ

    unarist
    unarist 2015/02/13
    取り出したい量のバッファにランダム挿入していって、溢れた分は無視。OrderByで全体をソートするよりも計算量とメモリ効率が良い。
  • Nemerle の C# や F# との比較 - 捨てられたブログ

    この付録では Nemerle 以外のプログラミング言語として C# や F# を取り上げ, Nemerle との比較を行います。 目次 言語比較 まとめ,あるいは言語選択の指針 プログラミングスタイル 型 メタプログラミング 開発環境 文法比較 (未完成) 型パラメーターの制約 言語比較 まとめ,あるいは言語選択の指針 以下でそれぞれの言語の違いについて気の向くままに述べて行きますが,先に結論を述べておくと,いずれの言語を選ぶかは概ね次のようになると思います。 Visual Studio のサポートを最大限に活かしてインテリセンス指向のコーディングを行いたい場合は C# を選びます。これは C# の最大の強みです。特に言語の礎となる .NET Framework との相性は抜群です。 型安全指向で,堅牢なプログラミングを行いたい場合は F# を選びます。型の定義が容易で,静的型付け言語のメ

    unarist
    unarist 2015/02/13
    いつの記事だこれ
  • 1