タグ

関連タグで絞り込む (1)

タグの絞り込みを解除

randomとLINQに関するSnowCaitのブックマーク (2)

  • LINQでIE<T>からランダムに要素を取り出す - Qiita

    を実装すると便利ですね。 今回は3種類のRandom()の実装を要素数100000の整数の列挙に対して1000回行った実行時間でパフォーマンスを比較しますが、IE<T>の内部実装によって挙動が変わるかもしれないので、サンプルの方も、 IE<T>型、配列型、List<T>型の3種類を用意しました。最終的なコードがこちら using System; using System.Collections.Generic; using System.Diagnostics; using System.Linq; using System.Text; namespace RandomPerformance { class Program { static void Main(string[] args) { var sw = new Stopwatch(); //IE<int> var sample1

    LINQでIE<T>からランダムに要素を取り出す - Qiita
  • 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); しかしこの方法では全体をソートするので,デ

  • 1