Skip to content

WINNERS_NUMぴったりにならないときの調整方法 #265

@shino16

Description

@shino16

現在の挙動

抽選の際、まず複数人応募の当選/落選をさばいてから個人応募に移りますが、複数人応募の段階で以下の状態のチェックを行い、解決します。

  1. 当選者が少なすぎて個人応募をすべて当選にしてもWINNERS_NUMに達しない
    →落選グループをランダムに1つ選び、当選させる
  2. 当選者がWINNERS_NUMを超えてしまった
    →当選グループをランダムに1つ選び、落選させる

これら2つが解決されるまで 1. → 2. のループを繰り返しています。

※すでに全てのグループが当選判定になったにもかかわらず、1. が発生している場合は、そこで打ち切ります。

問題点

  1. 「ランダムに選ぶ」という過程で、確率変動が考慮されていません。
    こちらは現在作業中で、 グループの確率を乱択に反映させることができます。
    確率変動の幅を劇の倍率によって変える #258 の後にします。

  2. WINNERS_NUM = 5とし、3人グループ×2で応募すると、無限ループに陥ります。
    これに関しては、実際の運用では個人応募も多いため、考えなくてよいとして現在無視しています。

一応、実際の創作展での運用では、全員当選させるような、応募が少ないケースを除けば、個人応募の数が3を切ることはまずないでしょうから、1. と2. を行ったり来たりするとは考えられません。

Metadata

Metadata

Assignees

No one assigned

    Labels

    low priorityThis issue or pull request can be postponed

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions