ago=begin係数レベルの性能には私も大して興味ないんですが、オーダが違うとなるとさすがに気になります。実装できないよう制約してしまおうという話ですから。記述性の話もよくわかるので、悩ましいところですが。側で累積分布を再計算しなければならず、逆に遅くなる状況もありえます。総合的に見て、ご提案のインタフェースが有利な状況は限られており、汎用性に欠けるのではないかと考えます。いやいや、簡単に書けないからといって片っ端から機能追加で解決していくわけには行かないでしょう。何の議論もなしに追加してくれというつもりはありませんけども。同様のインタフェースにすることで両方使う人が便利であること等のメリットが整理されれば、まつもとさんの判断も違ってくる可能性があるかと思います。ago=begin遠藤です。redmine@ruby-lang.org:係数レベルの性能には私も大して興味ないんですが、オーダが違うとなるとさすがに気になります。実装できないよう制約してしまおうという話ですから。記述性の話もよくわかるので、悩ましいところですが。側で累積分布を再計算しなければならず、逆に遅くなる状況もありえます。それこそ係数レベルの性能の話ですよね。総合的に見て、ご提案のインタフェースが有利な状況は限られており、汎用性に欠けるのではないかと考えます。「重みを変えずに繰り返し抽選したい」というユースケースで有利になるんですが、汎用性に欠けますかね。ありそうだと思うんですが。「頻繁に重みを変えて再抽選したい」というユースケースでも、オーダが悪くなるわけではないですし。同様のインタフェースにすることで両方使う人が便利であること等のメリットが整理されれば、まつもとさんの判断も違ってくる可能性があるかと思います。ago=begin「重みを変えずに繰り返し抽選したい」というユースケースで有利になるんですが、汎用性に欠けますかね。ありそうだと思うんですが。ほとんどの場合は一回の呼び出しで大量の抽出を行うことで代替可能ではないでしょうか。繰り返しになりますが、二分探索は最適なアルゴリズムではない(簡便性を犠牲にする割に半端にしか速くならない)というのも重要な点で、高速な細切れ抽出を本当に求めるのであれば、以下のサイトのコードのように専用のクラスを用意するのが適切だと思います。http://code.activestate.com/recipes/576564-walkers-alias-method-for-random-objects-with-diffe/しかしながら、これは組み込みライブラリでサポートすべき範疇ではないでしょう。yugui@yugui.jp:効率的な実装の可能な仕様であるべきです。Random.分布変換関数生成_分布の種類(パラメータ)とかが効率的なんじゃないかと思っています。}...とか、分布の指定のしかたがいろいろ欲しければ、そのぶんだけメソッドを作ればいいでしょう。いうのはあまりに生々しすぎるとは思いますが、原理としては。非復元抽出だと言うことです。非復元抽出の要望が入るとすれば、その要望と衝突せず、整合性を持つ仕様である必要があります。ここの記述は間違っていると思います。