■
歩きながらトーナメントビルダー(仮)の妄想を色々
金曜に話をするので、その後考えてもいいのだけど
今からある程度はイメージを持ちたい。妄想は楽しい。
(トーナメント雛形作成ページ)
↓
受付ページ
↓
登録リスト&30分前出席確認ページ
↓
トーナメント表
流れはこんな感じと予想。
トーナメント表は昨日CGI書いてみたらできてしまったので
変な計算が必要な部分はもうないはず。
トーナメントの上から順1,2,3,…,nと並んでいる場合のnの優先順位mは
n-1をビット列に直してリバースすると得られることが判明した(大袈裟)。
どういうことかというと
1、2、3、4
というスロットの並びに大して
欲しい結果は
1、3、2、4
関数で例えると
F(1)=1
F(2)=3
F(3)=2
F(4)=4
みたいなFが分かればいい。
ここでスロット番号から1を引いて二進数で表記すると
00、01、10、11
これを2桁でリバースかけて
00、10、01、11
最後に1を足してあげれば
01、11、10、100
10進にすると
1、3、2、4
桁数はトーナメントが何Roundかに依存する。
まとめると
上からn番目のスロットの優先順位mはXroundのトーナメントだと
「n-1をX桁のビット列にしたものをリバースして1を足したもの」
になる。Xが自然数なら上手くいくはず。