N = 4k
各メンバーが 1 つのクランに所属できるように、プレイヤー、k
テーブル、および多数のクランを検討してください。クランには最大で 1人のk
プレイヤーを含めることができます。
ゲームの 3 ラウンドを編成して、ちょうど 4 人のプレイヤーが着席するテーブルごとに、そこに座っている 2 人のプレイヤーが同じクランのメンバーになることはなく、後のラウンドでは、そこに座っている 2 人のプレイヤーが同じ場所に座ることがないようにします。前のテーブル。すべてのプレイヤーがすべてのラウンドをプレイします。
これを効率的に行うにはどうすればN
よい~80
でしょうか。
私はこれについて考えました:
for each table T:
repeat until 4 players have been seated at T:
pick a random player X that is not currently seated anywhere
if X has not sat at the same table as anyone currently at T AND
X is not from the same clan as anyone currently at T
seat X at T
break
これが常に終了するのか、それとも有効な割り当てがあってもスタックする可能性があるのか はわかりません。これが機能する場合でも、それを行うためのより良い方法はありますか?