枠番のアルゴリズム

| Comment(4)

。。。カテゴリへの突っ込みはなしで。

競馬では、枠(brackets)が8つあり、その中に馬が入る。
馬は最大18頭出走し、それぞれに馬番がついている。(過去はもっと多かったらしいけど)
出走馬の数が9頭以上の場合、外枠(8枠)から頭数が増える。

例:10頭立ての場合
枠 - 馬
1 - 1
2 - 2
3 - 3
4 - 4
5 - 5
6 - 6
7 - 7
7 - 8
8 - 9
8 - 10

さて、ここで。
馬番iの枠番を求める関数brackets(i)を書きなさい。

。。。多少問題を変更。

頭数Nが与えられたときに、馬番 0 < i < = N で枠番を求める関数brackets(i)を作成しなさい。

思いついたら追記される予定。
つか誰か考えて。

いまのところ、逆からスタック積むといいんじゃね?という気持ち。

コメント(4)

θ関数(ヘビサイド関数)は使ってもいいんでしょうか。

大丈夫です。何でもありです。
見た目に美しいことが最大のポイントです。

美しいとはとても言いがたいのですが・・・。
N=8p+r(0=<r<8)とします。r=mod(N,8)とも書けます。
0<i<=p(8-r)のとき、
b(i)=1+{(i-1)-mod(i-1,p)}/p
p(8-r)<i<=Nのとき、
b(i)=1+[(i-1)+(8-r)-mod{(i-1)+(8-r),p+1}]/(p+1)
でとりあえずはOKかと。
両式を統合するのにθ関数を使えばできなくはないですが、見苦しいのでやめました。
もっとエレガントにできんもんかなあ。。。

なんかたまに検索に引っかかってるようなので、貰った回答の一覧はこちらで
http://www.yr-gamblers.net/notes/2006/07/22195225.html

コメントする

Recent entries

GW中にサーバ移転予定
coreserverに移動するつもり。…
weightsとequipment
現在完了って結局今やってんのかやってない…
ああ、エイプリルフールだったのに
まだ嘘ついてないよ。 今日の曲 【UTA…