クソプログラマブル
Amebaでブログを始めよう!

箱根駅伝結果

さて、あんまり当たらなかった予想と結果です。


優勝 : 早稲田 (予想 早稲田)

二位 : 東洋 (予想 東洋)

三位 : 駒大 (予想 駒大)

四位 : 東海 (予想 明治)

五位 : 明治 (予想 拓大)

六位 : 中大 (予想 学連選抜)

七位 : 拓大 (予想 山梨)

八位 : 日体大 (予想 日体大)

九位 : 青学 (予想 東農大)

十位 : 國學院 (予想 城西)


あたったのは四校のみ・・・残念。


予想以上の東海大学、学連選抜は今年も駄目っだったし。

中大はなんかいつもどおりの順位だし、拓大以下は団子状態だったし。


早稲田は来年も期待できる感じがする。

東洋も柏原がいる限りは大丈夫そうな気がする。


やっぱりダントツのエースがいる高校は別として

出雲と全日本を参考に順位を決めたほうがいい感じの予想ができるとおもう。


来年はいっぱい当てるぞー!

もう少しで箱根駅伝!予想してみる

さて、箱根駅伝の季節がやってきました。


今年の出場校は以下です。


まずは前回のシード校です。()の中は以下での呼び方。


東洋大学(東洋)、駒沢大学(駒大)、山梨学院大学(山梨)、中央大学(中央)、東京農業大学(東農大)、城西大学(城西)、早稲田大学(早稲田)、青山学院大学(青学)、日本体育大学(日体大)、明治大学(明治)


次は予選突破した学校。


拓殖大学(拓大)、國學院大學(國學院)、帝京大学(帝京)、中央学院大学'(中学)、上武大学(上武)、東海大学(東海)、日本大学(日大)、神奈川大学(神大)、専修大学(専修)、学連選抜(学連選抜)


ざっくりと大まかに予想してみると


最強位

 早稲田、東洋、駒大、明治、拓大


上位

 学連選抜、山梨、日体大、東農大、城西


中位

 中央、帝京、東海、日大、中学


下位

 青学、國學院、上武、神大、専修


こんなところかなぁ・・・


優勝 : 早稲田は今年は強そう。ぶっちゃけ三冠取れると思う。

二位 : 東洋は柏原の出来次第。全日本みたいな感じなら上位クラスまで落ちちゃうかもしれない。

三位 : 駒大はやはり安定感がある。優勝ももちろん狙える。

四位 : 明治は鎧坂に期待。北も一年にしては期待できる器。

五位 : 拓大はマイナの力もあるが、チームとしてまとまっている感じ。予選会ダントツ一位に期待したい。

六位 : 学連選抜も期待。今までで一番の出来ってことで全員が区間賞狙いで行ってもらいたい。

七位 : 山梨はやはりコスマスか。

八位 : 日体大は安定している感じがする。全日本の時もそうだったけど中上位はいきそう。

九位 : 東農大は親父の出身校なので贔屓してみる。

十位 : 城西は千葉だし地元贔屓。


さてさて、何はともあれ一月頭は駅伝見ながらゆっくりします。

閏年計算を含んだ日数計算を簡単にやってみる

ども、またやってきたクソプログラムのお時間です。


本日はプログラムを組んでいるとよくある現象の日数計算についてです。


普通に組んでいればlocaltime関数とかであっという間に組めるのですが

組込み系の特殊なコンパイラだとたまーにtime関数とかが使えない時があります。


そういう場合通常はツェラーの公式の応用などを使うべきなのですが、

今回はもっとクソなアルゴリズムを考えてみます!!!



まずやることの定義をリストアップします。


・0000年1月1日からの経過総日数を入力する

・現在の年月日を出力する


さて、普通ならば手始めに年から扱います。(ここが一番めんどくさいので。)

年は閏年が絡むのでちょいと計算がめんどくさいです。


閏年の定義は

通常の年の年間日数は365日である。

しかし4の倍数の年に366日になる。

しかし100の倍数の年は365日となる。

しかし400の倍数の年は366日である。


この条件をif文などで組むのは普通ですが、ここを考えなおしてみたいと思います。


つまり結果だけ見れば西暦10年1月1日の経過日数は

(365 * 8) + (366 * 2) = 3652日となります。


この場合は閏年が2回だけ出現しているので、4の倍数の年だけを考慮して考えてみます。


つまり1年の日数を


( (365 * 4) + 1) / 4) = 365.25


として計算します。


西暦10年1月1日の経過日数は


365.25 * 10 = 3652.5


となるので、小数点以下切り捨てで正確な日数が表現できます。



つまり複雑な閏年も平均値を求めれば簡単に日数が出せるはず!


平均値を計算すると

( ( ( ( ( ( ( (365 * 4) + 1) / 4) * 100) - 1) / 100) * 400) + 1) / 400 = 365.2425

となるので、これをもとに計算してみます。


とりあえず暫定で総経過日数734256日の計算結果は・・・


734256 / 365.2425 = 2010.3246473233536622928602230025

となり、西暦2010年と1/3くらいというのがわかります。
(多分合ってると思います)

ここで次は月計算なのですが、先に端数を計算しておきます。

2010年の総経過日数は365.2425 * 2010 = 734137.425ですので、

734256 - 734137 = 119ということで年開始から119日後ということになります。

続きはまたこんど・・・

とある変数内に2bit以上のビットが立っているかどうかを判定する

さて、クソプログラムのお時間です。


今日は適当にとある変数内に2bit以上のビットが

立っているかどうかを判定する処理について考えてみたので説明します。


ちなみに普通にクソプログラムを組むなら以下のようになるような気がします。


-------------------------------------------------------


/* とある変数(ビットが立っているか探したい変数) */

int toaru_hensu;


/* 1個目見つけたフラグ */

bool ikkome_mituketa = false;


/* ビットが2個立ってたフラグ */
bool bit_2ko_tatteta = false;


/* ビットが2個以上立ってるかどうかの判定処理 */

for (int i = 0; i < 32; i++) {

    if (toaru_hensu & (1 << i) ) {

        if (ikkome_mituketa == true) {

            bit_2ko_tatteta = true;

            break;

        }

        ikkome_mituketa = true;
    }
}


if (bit_2ko_tatteta == true) {

    /* ビットが2個立ってた時の処理 */
}


-------------------------------------------------------


・・・見事にクソプログラムが多分完成しました。(コンパイル通してないのでわかりません)


えてしてこのような感じの処理はループの内側で呼ばれることが多いです。

そこでこんな重そうな処理を呼ぶのはアホくさいです。


次がちょっとだけ考えて最適化してみたクソプログラムです。


-------------------------------------------------------


/* とある変数(ビットが立っているか探したい変数) */

int toaru_hensu;


/* ビットが2個立ってたフラグ */
bool bit_2ko_tatteta = true;


/* ビットが2個以上立ってるかどうかの判定処理 */

for (int i = 0; i < 32; i++) {

    if (toaru_hensu == (1 << i) ) {

        bit_2ko_tatteta = false;

    }
}


/* 値が0だったらスルーな可能性があるので。 */

if (toaru_hensu == 0) {

    bit_2ko_tatteta = false;
}


if (bit_2ko_tatteta == true) {

    /* ビットが2個立ってた時の処理 */
}


-------------------------------------------------------


・・・あんまり変わってない。


やっぱりクソプログラムなのでしょうがないです。

そしてやっぱりコンパイル通してないので動くかわからないです。


んでもって最後に今日考えてみた処理を書いてみます。


-------------------------------------------------------


/* とある変数(ビットが立っているか探したい変数) */

int toaru_hensu;


if ( ( (toaru_hensu - 1) | toaru_hensu) == ( (toaru_hensu << 1) - 1) ) {
    /* ビットが2個立ってた時の処理 */
}


-------------------------------------------------------


とても短くなったクソプログラムです。


・・・頭の中だけで考えてたので実際に動かしてみるとバグってるかもしれません・・・。


一応理屈では、左辺値の計算と右辺値の計算は単一bitであればおなじになります。


[左辺値の計算]

(toaru_hensu - 1)でもし一つのbitのみ立ってる状態とすると

最上位ビット未満のbitが全て立つ状態になります。

それと現在のbitをorすれば

最上位bit以下のbit全てが立っている状態になるはずです。

もし複数bitが立っている状態でも

最悪現在の最上位bit以下のbitが立っている状態になるはずです。

(この計算は入力値の最上位bit以下全bitが立っている値を超えなければよい)


[右辺値の計算]

左辺値計算に似ていますが、(toaru_hensu << 1) - 1の計算のみで

最上位ビット以下のビットが全て立つ状態になります。

(一つのビットのみ立っている状態であれば。)

これでもし複数ビットが立っているとすると最上位ビット+1ビット目が落ちない状態になるはずです。

(つまり複数bitが立っていると入力値の最上位bit以下全bitが立っている値より大きい値になる)


この計算で等号比較を行えば、

とある変数内に2bit以上のビットが立っているかどうかを判定することが可能になるはずです!






たぶん!


実は調べたらとっくに誰か考えてたりして・・・。

でもググってもいろいろ出すぎてわからないんだもん。



以上クソプログラムの時間でした。

(バグってる可能性は否めません)

決勝戦。

○興南   ─┐

       ├興南

☓東海大相模─┘


大方の予想通り、興南が優勝となりました。

今年の甲子園は本当に興南のための甲子園だった気がします。


特に興南は打線が強かった。


序盤に点数を取られても10点差くらいなら

ひっくり返せるくらいの実力があったと思う。


あと島袋が尻上がりに調子を上げていくのも

チームとしてのペースにあっていた。


そんなわけで興南、優勝おめでとうございます!


準決勝。

☓成田   ─┐

       ├東海大相模

○東海大相模─┘


成田快進撃もここまで。

打線は悪くなかったけど、中川が不調だったのが問題だった。

こうなったら東海大相模にはぜひ優勝してもらいたい!!!



○興南  ─┐

      ├興南

☓報徳学園─┘


興南強し!

いや、ほんとうに強い。

報徳学園もものすごく頑張ってたけど

もうほんと全員でプロチーム作れば

いいとこ行くんじゃないかと思うくらい興南が強い。



■いよいよ次は決勝戦!

東海大相模と興南なんだけど実力は圧倒的に興南が有利。

そういう状況だと逆転劇を期待するのが世の常なんだけど。

今回は難しい気がするなぁ。

準々決勝。

○成田 ─┐

     ├成田

☓関東一─┘


順当に成田勝利。

だんだん中川に疲れが見えてきた感じがする。

打線に助けられてる部分もある。



○興南  ─┐

      ├興南

☓聖光学院─┘


聖光にはかなり期待をしていたのだが準々決勝でいきなり興南と当たるとは。

打線が同じくらいの実力なら聖光にも分があると思うんだけど

今年の興南は強すぎる気がする。

一発勝負なら興南vsプロでも勝てるんじゃないかしら。


○東海大相模─┐

       ├東海大相模

☓九州学院──┘


勢いに乗ってた九州学院を倒した東海大相模。

正直今年は二年生の投手がいいだけに三年でのいい投手が少ない気がする。

一二三は安定さえすれば今大会最高峰の投手と思う。

この調子で行けば優勝も狙えるかな。


☓新潟明訓─┐

      ├報徳学園

○報徳学園─┘


報徳学園が強い。

確かに報徳のブロックはトーナメント的にかなり安定してると思ったけど

もしかしたら激戦区でも生き残れる実力くらいは軽くあるのかもしれない。

新潟明訓もいいチームなだけに残念。



■予想が今まで当たっていた3校が2校に減ってしまった。

抽選とはいえ、聖光は残念。

次は準決勝。やはり興南の優勝は堅いと思うけど

気持ち的には成田に優勝して欲しい。

三回戦。


○東海大相模─┐

       ├東海大相模

☓土岐商  ─┘


一回戦で水城が勝つと予想していたところだけど、

やはりというかこのブロック、実力では東海大相模が一歩抜きん出ている。

一二三の調子に左右されるところがかなりあるので、優勝は難しいと予想。



○聖光学院─┐

      ├聖光学院

☓履正社 ─┘


やはり来た聖光学院!県内51連勝は伊達じゃない。

西高東低の野球界で東北最強がどこまで頑張れるか見物。



☓西日本短大付─┐

        ├新潟明訓

○新潟明訓  ─┘


実力伯仲の一戦、予想では西日本短大付が少し上か?と思っていたけど

日本文理を倒した新潟明訓が勝ち上がった。



☓鹿児島実─┐

      ├九州学院

○九州学院─┘


大番狂わせの一戦。まさか鹿児島実がここで敗退するとは・・・。

9回裏で追いついたときには鹿児島実の実力が見れたと思ったのだけど

九州学院の安定感が上回った感じ。


○成田 ─┐

     ├成田

☓北大津─┘


成田勝利。打線もなかなかいい感じだし、これから先ももっと期待できそう。



○関東一─┐

     ├関東一

☓早実 ─┘


前回21点をとった早実、残念ながら敗退となった。



☓佐賀学園─┐

      ├報徳学園

○報徳学園─┘


順当に実力順で報徳学園の勝ち。



○興南  ─┐

      ├興南

☓仙台育英─┘


やはり今年は興南強い。

もはやどこが戦っても勝てる気がしない。



■3/8のあたり率。すでに敗退しているところが多いので的中率がどんどん減ってる。

 次回からは再抽選となるので、次回はだいぶ先。

二回戦。

○東海大相模─┐

       ├東海大相模

☓水城   ─┘


予想ははずれ、一二三も調子が良かったとは言えないが、

水城、来年こそはリベンジできるくらいに成長して欲しい。



○土岐商─┐

     ├土岐商

☓八頭 ─┘


ここもはずれ。

土岐商の打線を抑えられなかったのが敗因か。



○聖光学院─┐

      ├聖光学院

☓広陵  ─┘


優勝候補広陵を倒しての勝利。

今回の聖光の出来はは優勝筆頭に上げても問題ないと思う。



○履正社─┐

     ├履正社

☓天理 ─┘


履正社打線が爆発。まさかの天理初戦敗退。

そして予想ももちろん外れた。



☓日川    ─┐

        ├西日本短大付

○西日本短大付─┘


ここは実力順で妥当な感じ。



☓京都外大西─┐

       ├新潟明訓

○新潟明訓 ─┘


京都外大西初戦敗退。

日本文理を破って調子のいい新潟明訓。どこまですすめるか。



☓能代商 ─┐

      ├鹿児島実

○鹿児島実─┘


順当に勝ち上がった。



☓山形中央─┐

      ├九州学院

○九州学院─┘


九州学院強い。この調子の良さは鹿児島実との勝負でもそう簡単に負けないだろう。



○成田   ─┐

       ├成田

☓八戸工大一─┘


成田安定しながらの勝利。



○北大津─┐

     ├北大津

☓前橋商─┘


前橋商敗退。やはり群馬といえば桐生第一なのか・・・。



☓遊学館─┐

     ├関東一

○関東一─┘


今年の東京代表は強い!



☓中京大中京─┐

       ├早実

○早実   ─┘


一回戦目の中京大中京の成績はどうやら普通の実力だったようです・・・。

しかし早実が21点も取るとは!

鈴木がいい感じと思っていたが、打線もかなりいいものを持っている。



☓長崎日大─┐

      ├佐賀学園

○佐賀学園─┘


とてつもなく残念な長崎日大の負け。

実力は伯仲していて勝負はどちらにころんでもおかしくなかった。

本当に勝負は時の運と思える一戦。



○報徳学園─┐

      ├報徳学園

☓福井商 ─┘


順当に報徳学園の勝ち



☓明徳義塾─┐

      ├興南

○興南  ─┘


四国勢全滅となってしまった一戦。

しかし興南も島袋の調子はそこまでよくなさそう。

優勝筆頭だったが果たしてどうなることやら。



☓延岡学園─┐

      ├仙台育英

○仙台育英─┘


順当に戦隊育英勝利。

実力によるものとはいえ延岡学園にはもっと頑張って欲しかった・・・。


■10/16のあたりっぷり。

 半分以上だが予想通り行かないところが多い・・・。

一回戦。

○九州学院─┐

      ├九州学院

☓松本工 ─┘


九州勢やはり強し。

このまま勝ち進めば九州同士での戦いになるか。


○成田   ─┐

       ├成田

☓智弁和歌山─┘


成田強し。しかし一昔前の智弁ならば成田は勝てなかった気がする。

今はまだ智弁の監督が交代して日が浅い状態なので、

あと2-3年後にはまた強い智弁になっていると思う。


○八戸工大一─┐

       ├八戸工大一

☓英明   ─┘


青森を制覇した八戸が勝利した。

次戦は成田。このままいけるか?


○北大津─┐

     ├北大津

☓常葉橘─┘


期待の常葉橘まさか負ける。北大津強し、ここから先期待できそう。


○前橋商 ─┐

      ├前橋商

☓宇和島東─┘


初の完封負け宇和島東。

前橋商はどこまでいけるか楽しみ。



☓一関学院─┐

      ├遊学館

○遊学館 ─┘


まさかの遊学館圧勝。接戦になると思っていたのだが・・・。



☓佐野日大─┐

      ├関東一

○関東一 ─┘


関東勢強し。

本当なら今年は帝京が上がってきてもおかしくなかったはず。

興南島袋、帝京伊藤の投手戦を見てみたかったのだが・・・。

なにはともあれ関東一が勝った。此処から先も頑張れ!



○中京大中京─┐

       ├中京大中京

☓南陽工  ─┘


まさかの中京大中京苦戦。しかし接戦を制するのは実力なのかな。

というか実力でないと困る。



☓倉敷商─┐

     ├早実

○早実 ─┘


やはり早実、鈴木強い。このまま上に上がれるかどうかは鈴木次第と思う。



☓北照  ─┐

      ├長崎日大

○長崎日大─┘


選抜ベスト8北照敗れる。九州勢実力発揮。

北海道対決はこれで今年見ることはなくなってしまった。



☓旭川実 ─┐

      ├佐賀学園

○佐賀学園─┘


九州勢やはり強し。北海道勢無念の敗退。

2回戦目は九州勢同士での対決となる。


☓砺波工 ─┐

      ├佐賀学園

○報徳学園─┘


実力がそのまま出た感じ。報徳学園勝利。



☓いなべ総合─┐

       ├いなべ総合

○福井商  ─┘


無念いなべ総合初出場初戦突破ならず 初出場初敗退。無念。



○明徳義塾─┐

      ├明徳義塾

☓本庄一 ─┘


明徳義塾逆転勝利、四国勢最後の希望のひとり。


☓鳴門─┐

    ├興南

○興南─┘


予想道理、興南。次は明徳義塾戦。


 

○延岡学園─┐

      ├延岡学園

☓大分工 ─┘


予想は外れ。投手では大分工に分があると思ったのだけど・・・。

しかし勝ったからには延岡学園にガンバッテ欲しいところ。

予選は無観戦試合ばかりだったので本戦の雰囲気を十分味わってもらいたい。


☓開星  ─┐

      ├仙台育英

○仙台育英─┘


こちらの予想は当たった。

実力は五分五分と見てたけど、勝負は時の運。

開星には是非次回頑張って欲しい。



■14/17の確率で予想は当たり。

外したのは常葉橘、いなべ総合、大分工の3校。