1
マイモデルのTicketBuyerカラムには、購入したticket_buyer名とnumber_of_ticketsが含まれています。私は無作為に勝ちのチケットを選択したいと思います。私は、購入したnumber_of_ticketsに等しい行数にわたって複製されたticket_buyerの名前を持つ別のモデル(SelectTable)を作成し、それによって各レコードに等しい重みを与えることを好みます。私は単純なソートを実行し、新しいテーブルの最初のレコードを選択することができます。私は各ticket_buyerの行数が正しい表を自動作成するのに問題があります。もちろん、これを行うためのより雄弁な/効率的な方法があるかもしれません。アドバイスをいただければ幸いです。加重アイテムのランダム選択
私はそれが好き!名前を付けましょう:[拒否サンプリング](https://en.wikipedia.org/wiki/Rejection_sampling)のようなものです。代替案(より複雑なもの)は、[wiki(part:有限離散分布)](https://en.wikipedia.org/wiki/Pseudo-random_number_sampling)に掲載されています。[alias-method]速度が重要な場合は、https://en.wikipedia.org/wiki/Alias_methodを参照してください。しかし、これは追加作業が必要になります。 – sascha
ありがとうございます。私は前にこのアプローチを見ていないが、よく見える。どのようなサンプルコードでも大歓迎です。 – Tkendall
私はこれをRailsに書いていることに言及しませんでした。 – Tkendall