2013年12月14日土曜日

とりとめのない休日

学生は平日も楽だから良い、とよくいわれますが、なんだかんだ授業の予習復習だとかバイトだとかで気にしなきゃいけないことが全くないわけではないわけで、何も予定のない休日がないとやっぱりやってられないのです。

いつもは休日は家で休むためにある!とかたくなに家から出ようとしない(家から出るのが面倒なわけではない)のですが、今日は学校で出た課題の資料探しを兼ねて本屋に出かけるついで、ダイレクトに最寄りまで電車で行かずに2駅ほど隣の駅で降りてちょこっと散歩をしてきました。
 


わざわざ京都に行かなくとも、東京にもこういう雰囲気のいい神社があるんですね。案外近場にあったのでまた機会があれば行きたいです


今日の収穫。(結局課題の参考資料は買いませんでした。長いこと立ち読みはしてたんですがなんかこうピンとくるものがなかったので…)
ベイズ統計の本とあとは乙一っていうひとの本読んだことなかったので一個ぐらいは読むかということで新刊を一つと、長いことよもう読もうと思ってていまだ読めていなかった恩田陸の6番目の小夜子を買いました。本屋に行って大量の本のなかから読みたい本を探すのはやっぱり楽しい。

2013年10月28日月曜日

シミュレーター(コンソール版)



この間のWindowsForm版の奴はあまりにも計算速度が遅いし、自分のコードがわけわからなくなったので(こっちがメインの理由)もっかい下地から作りなおして

・リーグ、チーム、プレイヤーの数を自由にユーザーが作成可能
・1チームだけだと試合と言えないので2チームで試合を可能
・誰が出塁しているのかを保存してランナーの個性をつける
・試合結果を年度ごとに保存してそのサマリーを書き出せる
・シミュレータのベースとなってるのはBattingRunsという考え方なのですが、その係数をいじっていろいろな条件でシミュレータを動かす
・一軍登録、二軍登録を作る

という機能を加えてみました。コンソールだけど。
その結果クラスがめちゃくちゃ大量に発生してしまって管理が大変です…
オブジェクト指向の設計の方法とかいう本をちょいちょい読みながら作ってるんですが、クラスの量が大量になってくるとオブジェクト指向の良さが生きてくる感じがします。
最初の頃に比べてだいぶC#の用語(メソッドとかプロパティとか)の意味もだいぶつかめてきました。C#の技術本読んだだけで理解したつもりになってたのが作ってる途中でどんどんわかってきて、前自分が書いたコードが汚くみえて書き直すことばっかりです。なんかこうやっていろいろわかっていくのが実感できるのは楽しいです。
これからオブジェクト指向も勉強しないといけないですね。

2013年10月24日木曜日

C#でデータベースを作る

野球シミュレーターで計算した値を何処かに保存しとくのに、いちいちCSVファイルで出力するの面倒臭いし毎回読み込まないといけないし…って悩んでいたんですが、いちいち書き込むんじゃなくデータベースを使えばええんでは?という助言をもらったので試すことに

まず、そもそもの問題としてデータベースが何者なのか全くわかってない(もちろん作り方も全くわからない)上にどうやってアクセスをすればよいのかもわからず、Googleにいろんな検索ワードをぶち込みながら色々なページを読みかじってましたが、数年前のちょっと古い記事がヒットすることも多くて今の自分の環境(VisualStudio2012)でも動くのかわからないし、やたらと僕からすると高度な内容がつらつら続いてて読むのが辛かったりとだいぶ時間をロストしました

おぼろげに

・SQL?とかいう形式でやりとりをするらしい
・データベースにアクセスするやり方(ライブラリ?)がいろいろあるらしい
・どうやらデータベースをサーバーに置いてそれにアクセスすることもできるらしい

とかいうことはわかったような気がしてるんですが、めっちゃとんちんかんなこと言ってる気がしてならないです(間違ってたらごめんなさい)
でまあ最終的にこの記事にあるSQLAerverCompactというのを使うことにしました。Microsoftがタダでくばってるアクセス用のライブラリらしいですね、Microsoft素晴らしい
http://hoshii-mono.com/features/subcategory-16.php

これで今のところうまく通信出来てるみたいなのでコイツ使いながらやってきたいと思います

2013年10月21日月曜日

C#で打線シミュレーターを作る

前にシミュレーターを作りかけで投げ出してたんですが、今度はWindowを出して普通のソフトっぽく動かせるようなやつを作ってみようかなと思いたって、ここ2日ぐらいこないだ作ってたコンソールアプリを流用しながら、Windowsフォームを使って(ようするに普通のソフトみたいな外観で)ユーザーがスタメンの選手とか選手の成績とかの設定をいじって、その時の打線の様子をシミュレートできるもんを作ってました。

スクリーンショットはこんな感じ。なんか適当に配置していたらやたらと横長になってしまいました



元々のシミュレーターは、プログラムの中身に誰をスタメンにするのかとかその選手がどのぐらい打てるのかっていう情報を埋め込まないといけないちょっと不便なものだったので追加の機能として

・今読み込まれている選手データを表示してその成績を表示する
・ユーザーが新しい選手データを登録できる
・スターティングメンバーを選手データから選択して配置する
・シミュレーター本体の処理がめっちゃ重いので、今どのぐらい処理が終わっているかを見れるようにする

をできるようにしました。
といっても、読み込むデータに制限が多すぎたりちょっと不便なことも多いので改良しなくちゃいけないことも多いので、もうちょっと柔軟性をもたせたプログラムに変更していかないと、っていう状態です。

それにまだ外部からCSVで選手データを読み込んだり、シミュレーターを動かした結果を保存したりとか、結果をグラフでわかりやすく(できればかっこよく)表示する、みたいな基本的な機能もできていないので当分はそれを実装するのを目標にちょいちょい改良できればなぁと思ってます。

2013年10月14日月曜日

遂に

カープが遂にAクラス&CSファーストステージ全勝通過!素晴らしきことです

CSファイナル二戦目のチケットを運良く手に入れることができてたのでもしかしたらカープ戦が見れるかも…とは思ってましたがまさか本当に来るとは!

張り切って応援してきたいと思います!このまま日本一行ってしまえ!

2013年9月4日水曜日

距離感

2週間ほどの帰省からの帰還.終わってみると案外あっけないような長かったような不思議な二週間でありました。勝手にご飯が用意され掃除が行き届くという天国の様な環境に甘えた結果、体重がえらいことになっている以外は久々の地元の空気がなかなか新鮮で楽しく過ごせました。

長いこと会えていなかった高3の担任が寂しがってるという情報をキャッチしていたので母校へ行ったのですが,なんだか周りがわっかい高校生中学生ばかりで(当たり前)、ちょっと前までこの空間に自分が居たことが信じられませんでした。あの空気に僕はもう馴染めません。完全アウェーです。

帰りに寄った部活でマウンドに久々に経った時もホームとの距離がやたらと遠くて、数年前はここで平気で投げていた事が実感を伴って思い出せず、ちょっとさみしい思いをしました。

よく久しぶりに会う友達にも変わってないなぁと言われる事が多かったり、自分でも高校から大学にかけて対して変わっていないつもりではあるにしても、ちょっとづつ変わっているようです。

ちなみに担任は一ミリも全く変わっておらず、「なんで来たんだなんか精神でも病んでるのか? そうじゃないなら早く東京で彼女でも作れ、とりあえずはサークルだサークルに入れそして遊べこんな田舎から早く帰れ」とありがたい助言を頂きました。彼はあのままで死ぬまで突き通してほしいです。

2013年8月16日金曜日

打線シュミレーターを作ろうとする

using System;
class Player
{
    public string name;
    public int pa, ab, hit, single, two, three, hr, bb;
    public double avg, obp, slg, ops;

    public void data(string name, int pa, int hit, int two, int three, int hr, int bb)
    {
        this.name = name;
        this.pa = pa;
        this.ab = pa - bb;
        this.hit = hit;
        this.single = hit-two-three-hr;
        this.two = two;
        this.three = three;
        this.hr = hr;
        this.bb = bb;
        this.avg = (double)(single + two + three + hr) / this.ab;
        this.obp = (double)(hit + bb) / this.pa;
        this.slg = (double)(single + two * 2 + three * 3 + hr * 4) / this.ab;
        this.ops = this.obp + this.slg;
        Console.Write("Name: {0}, Avg: {1}, OBP: {2}, SLG: {3}, OPS: {4}\n", this.name, (avg).ToString("#.###"), (obp).ToString("#.###"), (slg).ToString("#.###"),(ops).ToString("#.###"));
    }

    public void data(){
        Console.Write("Name: {0}, Avg: {1}, OBP: {2}, SLG: {3}, OPS: {4}\n", this.name, (this.avg).ToString("#.###"), (this.obp).ToString("#.###"), (this.slg).ToString("#.###"),(this.ops).ToString("#.###"));
    }
}

class StartingMenber : Player
{
    public int l_pa, l_ab, l_hit, l_single, l_two, l_three, l_hr, l_bb, l_daten;
    public double l_avg,l_obp,l_slg,l_ops;

    public StartingMenber()
    {
        this.l_pa = 0;
        this.l_ab = 0;
        this.l_hit = 0;
        this.l_single= 0;
        this.l_two = 0;
        this.l_hr = 0;
        this.l_bb = 0;
        this.l_three = 0;
        this.l_daten = 0;
    }
    public void ShowLogData()
    {
        this.l_ab = this.l_pa - this.l_bb;
        this.l_avg = (double)(this.l_single + this.l_two + this.l_three + this.l_hr) / this.l_ab;
        this.l_obp = (double)(this.l_single + this.l_two + this.l_three + this.l_hr + this.l_bb) / this.l_pa;
        this.l_slg = (double)(this.l_single + this.l_two * 2 + this.l_three * 3 + this.l_hr * 4) / this.l_ab;
        this.l_ops = this.l_obp + this.l_slg;
        Console.Write("Name: {0:0.000}, Avg: {1}, OBP: {2}, SLG: {3}, OPS: {4} 打点: {5}\n", this.name, (this.l_avg).ToString("#.###"), (this.l_obp).ToString("#.###"), (this.l_slg).ToString("#.###"), (this.l_ops).ToString("#.###"),this.l_daten);
    }
     
}

class Baseball
{
    public static int[] baseph = { 0, 0, 0, 0 };
    public static int outcount = 0;
    public static int gamenum = 200;
    public static bool kai = true;
    static void Main()
    {
        Player kikuchi = new Player();
        kikuchi.data("廣瀬", 252, 62, 8, 1, 7, 41);
        Console.Write("試合数を入力してください :");
        gamenum = int.Parse(Console.ReadLine());
     
        StartingMenber[] team1 = new StartingMenber[9];
        for (int i = 0; i < 9; i++)
        {
            team1[i] = new StartingMenber();
            Console.Write("{0}番", i + 1);
            team1[i].data("廣瀬", 252, 62, 8, 1, 7, 41);
        }
        int seed = Environment.TickCount;
        for (int k = 0; k < gamenum; k++)
        {
            outcount = 0;
            seed +=2;
            for (int num = 0; outcount < 27; num++)
            {
                if (kai)
                {
                    Console.Write("{0}回の攻撃\n", outcount / 3 + 1);
                    kai = false;
                }
                getdageki(ref team1[num % 9], ref baseph, seed++);
            }
        }
        Console.Write("得点:{0} 平均得点{1}\n", baseph[3], ((double)baseph[3] / gamenum).ToString("#.000"));
        for (int i = 0; i < 9; i++)
        {
            team1[i].ShowLogData();
        }
     
    }

    public static void getdageki(ref StartingMenber batter, ref int[] b, int seed)
    {
        Random r = new Random(seed);
        int d_kekka = r.Next(batter.pa);
        int t = 0;
        batter.l_pa++;
        if (d_kekka <= batter.bb)
        {
            Console.Write("フォアボール\n");
            batter.l_bb++;
            if(b[0]==0){
                b[0] = 1;
            }
            else if (b[1] == 0)
            {
                b[1] = 1;
            }
            else if (b[2] == 0)
            {
                b[2] = 1;
            }
            else
            {
                t++;
            }
        }
        else if (d_kekka <= batter.bb + batter.hr)
        {
            Console.Write("ホームラン!\n");
            batter.l_hr++;
            t += b[0] + b[1] + b[2] + 1;
            for (int k = 0; k < 3; k++)
            {
                b[k] = 0;
            }
        }
        else if (d_kekka <= batter.bb + batter.hr + batter.three)
        {
            Console.Write("スリーベース!\n");
            batter.l_three++;
            t += b[0] + b[1] + b[2];
            b[0] = 0;
            b[1] = 0;
            b[2] = 1;
        }
        else if (d_kekka <= batter.bb + batter.hr + batter.three + batter.two)
        {
            Console.Write("ツーベス\n");
            batter.l_two++;
            t += b[1] + b[2];
            if (b[0] == 0)
            {
                b[1] = 1;
                b[2] = 0;
                b[0] = 0;
            }
            else if (b[0] == 1)
            {
                b[2] = 1;
                b[1] = 1;
                b[0] = 0;
                int rand2 = r.Next(100);
                if (outcount % 3 == 0 && rand2 <= 15)
                {
                    t++;
                    b[2] = 0;
                }
                else if (outcount % 3 == 1 && rand2 <= 25)
                {
                    t++;
                    b[2] = 0;
                }
                else if (outcount % 3 == 2 && rand2 <= 50)
                {
                    t++;
                    b[2] = 0;
                }
            }
        }
        else if (d_kekka <= batter.bb + batter.hit)
        {
            Console.Write("ヒット\n");
            batter.l_single++;
            t += b[2];
            b[2] = b[1];
            b[1] = b[0];
            b[0] = 1;
            int rand1 = r.Next(100);
            if (b[2] == 1)
            {
                if (outcount % 3 == 0 && rand1 <= 30)
                {
                    t++;
                    b[2] = 0;
                }
                else if (outcount % 3 == 1 && rand1 <= 50)
                {
                    t++;
                    b[2] = 0;
                }
                else if (outcount % 3 == 2 && rand1 <= 70)
                {
                    t++;
                    b[2] = 0;
                }
            }
            else if (b[1] == 1 && b[2] == 0 && rand1 <= 20)
            {
                b[2] = 1;
                b[1] = 0;
            }
        }
        else
        {
            outcount++;
            Console.Write("凡打\n");
            if (outcount % 3 == 0)
            {
                if (outcount != 27)
                {
                    Console.Write("チェンジ\n");
                    Console.Write("{0}回の攻撃\n", outcount / 3 + 1);
                }
                else { Console.Write("GameSet\n"); }
                b[0] = b[1] = b[2] = 0;
            }
            else if (b[2] == 1 && r.Next(100) >= 50)
            {
                t++;
                b[2] = 0;
            }
            else if (b[2] == 0 && b[1] == 1 && r.Next(100) <= 25)
            {
                b[2] = 1;
                b[1] = 0;
            }
            else if (b[1] == 0 && b[0] == 1 && r.Next(100) < 5)
            {
                b[1] = 1;
                b[0] = 0;
            }
        }
        tokuten(ref b[3], ref batter.l_daten, t);
    }

    public static void tokuten(ref int g_tokuten, ref int b_daten, int t)
    {
        g_tokuten += t;
        b_daten += t;
        if (t > 0)
        {
            Console.Write("{0}点得点!\n", t);
        }
    }
}

なんかいやってもゴミ2割打者廣瀬と3割後半神廣瀬が交互に並ぶ打線になってシュミレーターの意味を成さない!
おそらくrandomつくってるところがおかしいんだけど,何がおかしいのかさっぱりわからないから困ったぞ~

2013年8月11日日曜日

WHIPの扱い

WHIPの解釈と応用
http://baseballconcrete.web.fc2.com/alacarte/whip.html

最近良く聞くWHIP,あんまり有用じゃないっていうのを何処かで見たような気がしてたんだけど多分これですね.
めっちゃ綺麗にまとめられてる上に論理的ですっきり頭に入るのが良い.実験レポートでもこんな綺麗な文章書きたいね.
これを読んでると,野球の指標って人によって分かりやすさと正確さとどっちを求めるかが違うっていうのをちゃんと頭に入れて考えないといけないなって思う.
複雑すぎても一部のマニアックな人しかわからないし,かと言って打率とか出塁率,防御率みたいな簡単な指標だけで選手のすべてを判断できるかって言うとそうでもないし,正解は無いのかも.

2013年7月28日日曜日

後半戦に向けて

現在88試合消化済み

投手陣は中継ぎ先発の違いを除けばリーグ平均よりもちょっと良いぐらいのレベルで落ち着いてる.これを良い方に捉えることも出来るが,マエケンバリントン野村大竹を有して平均レベルに落ち込んでしまうというのはちょっと悲しい感じもする.

データを見ると,防御率その他指標を見ると投手陣は阪神巨人が圧倒,それから1点弱悪くなって広島中日,またそこから0.6点ほど悪くなって横浜ヤクルト.QS率53.8%は巨人と大差ないレベルというのを考えると,やはり中継ぎ陣が崩壊していることが伺える.
現状中継ぎでまともに投げれるのが久本>今村,小野ぐらいしか居ない.しかも,今村はもう去年の様なストレートが投げれておらず四死球ばかりで不安定,小野は四死球率が高い,奪三振率は低い,やたらと低い被BABIPと確変でなんとか保ってると言う感が否めないことを考慮すると,もうセットアッパーの前を任せられるのは久本という状態.しかも7月はその久本も打ち込まれはじめており,永川横山が奇跡的な復活をしない限り中継ぎ崩壊待ったなしである.

こんなことになってるのも,若手有望株の中村恭平,今井,中崎,中田廉,福井,ちょこっとブレイクして消えた篠田赤ハンカチあたりが仕事をしてない事が最大の原因であることを考えると二軍の育成力,ドラフト戦略が上手くいっていないことを如実に表している.

マエケンバリントン大竹がいるうちにこの中から一人ぐらいはまともに先発を任せられるのが出て来てほしいなと言う願望だけど現実は甘くなさそう.


打撃成績は相変わらず低調.去年何故か優秀な選球眼を持っているのにもかかわらず固定されなかった丸と,新加入のキラの両者が素晴らしい長打率と選球眼を発揮しているのは希望.廣瀬は連続出塁記録を作った後から右肩下がりではあるもののRX27は6.5を超える,もうひと踏ん張りしてほしいところ.しかし,この3人を除くと梵ルイスがリーグ平均程度の得点貢献をしているが,それ以外がどうにも振るわない.松山と岩本は表面上良い成績だが,二人共四死球を全く選ばないために得点貢献は大したレベルには至っていない.(松山4.87,岩本3.27) 守備の縛りも考えるとマイナスの方が大きいと推察される.
あとは菊池と堂林.この二人はそもそもヒットを打てていない.菊池は,セカンドは打撃貢献がもともと平均して低いポジションであるから,相対的にそれほどマイナス要素は無いし守備での貢献があるぶんまだ大丈夫とは言えるが,問題は堂林である.本来長打を期待されているはずなのに.IsoP(長打の割合を表す指標)がチーム平均を大きく割って中東と同等,菊池よりも大きく低いレベルである.去年の飛ばないボールで平均してXR27が5を超えていたのに打てなくなっているのは相手チームの研究かはたまたスランプか.一回二軍に落としてーとも考えたいがそんな余裕が無いのが辛いところ.


2013年6月6日木曜日

javascriptで遊ぶ

大学の講義でやれC言語だやれC#だクラスだオブジェクト指向だとうるさくなってきたので,ちょっと本腰をいれなあかんなと思い始めたってのは前書きました.

そこでLinuxだと楽にやれるよとアドバイスを頂いたので,Win8のDeveloper版を試した時以来HDDのゴミと化していたVirtualBoxを久しぶりに起動して,なれない仮想OSとにらめっこしながらなんとかUbuntuとかいうLinuxの一種?を入れることには成功しました.
なんですが,どうにもメモリの割り当てとかCPUのコア数の割り当てが上手く行かず,シングルコア512MBのメモリ上で動くクソPCが完成しました.なんで上手くいかんかなぁ…


そんで,まあとりあえずはブラウザで動く手頃なもんから始めてみようとjavascriptに手をつけてオブジェクト指向とやらの練習をしてます.昔htmlとcss2はちょっとかじってたので少しは入りやすいかなと.
色々やってるんですが,わかったようなわからんような不思議な感じです.直感的に操作できるのはええんですが,書いてる人が意味がわかってなくてもなんとなくで動いてしまう節があります.便利っちゃ便利なんだけどね.

html5のcanvasタグと組み合わせると,お絵かきが出来る~ってのをサーフィンしてたら見つけたので,色々見ながらボールが吹き出すだけのよくわからんもんを作ってみました.
http://yakyuzuki.blogspot.jp/p/var-namea-0-window.html

本当はブラウザ上で重力定数いじったりボールの数いじったり色の分布をいじったりするボタン的なものを用意しようと思ってたんですが,なーんかこれも上手くいかないのでちょっと心折れてます.プログラムムズい.


2013年5月29日水曜日

Word-数式エディタメモ

数式エディタについて色々調べてたら結構便利そうな機能があったのでメモ

・場合分けを入力する
"\eqarray"+"(式1@式2@式3@…)"+"<space>"

ex). \eqarray(x=3@y=2)<space>

・&を加えることで上下の式の位置を整えれる.
式1,2,3…の各々に&を入れると、&が入っているところを上下で揃えてくれる.

ex).\eqarray(x&+&y&+&z&=&20@5x&+11&y&+7&z&=&2)<space>

ex2). \eqarray(左辺&=lim_(n->\infty)1/n\sum_(k=1)^n f(k/n)@&=\int_0^1f(x)dx)<space>

Word の行形式の数式と数式オートコレクト(Microsoft)
http://office.microsoft.com/ja-jp/word-help/HA101861025.aspx
http://www.unicode.org/notes/tn28/UTN28-PlainTextMath-v2.pdf

Word で楽に数式を作る
http://www.eml.ele.cst.nihon-u.ac.jp/~momma/other/WordEqn3x.pdf

WordとTexって結局どっちがええのんか

実験のレポートをやってると、文章中に数式を打ちこみまくります.その時にWordよりもTexのほうが数式は綺麗に出力できるから便利~ってのをよく聞くので、Texwikiってとこを参考にして、TexエディタのTexmakerっていうのを入れてみました.
http://oku.edu.mie-u.ac.jp/~okumura/texwiki/?Texmaker

・Texmaker公式
http://www.xm1math.net/texmaker/

まだTexを入れたことがないって人は、まず最初にW32Texっていうのをインストールする必要があるので、先にそれをインストールします.
http://oku.edu.mie-u.ac.jp/~okumura/texwiki/?W32TeXを参照)
パッケージまるごと自動でインストールしてくれるソフトを作ってくれている人がいるので、それを動かせば勝手にやってくれるので便利です.さっきの頁の「簡易インストーラー」のところにあります


このTexmakerなにやら日本語出力だかに問題があるらしいので、環境設定のところを

Texmakerの設定(win)
http://blog.livedoor.jp/kobakeiichi_exe/archives/65783993.htm

とかを見ながらちょいちょい変えると、とりあえずそれっぽいものを出力出来るようになりました.やったね!

EditaでTexをいじってみて思ったことをつらつらと
・オートコンプリートって素晴らしい
今までTexを使って文章を打つときはTerapadみたいなテキストエディタしか使ってませんでした.そのときはコマンド打ち込むのやたら面倒臭いしWordのが100倍楽じゃん…とか思ってましたが、エディタにはオートコンプリートがあるので案外楽にうてます.\begぐらいまで打ち込むと、勝手に予測変換で\begin{equation}まで打ってくれるのはかなりのストレス軽減.まあちょっと考えればTex用のオートコンプリートのついたエディタがあるぐらい想像つきそうですがそれに2年以上気づかなかったのが情けない

・思ったように数式を出力できる
当たり前っちゃ当たり前ですがちょっと感動.Word2010の数式エディタはtexっぽい入力の仕方で数式を打ち込めるので、それを覚えてからはまあまあ入力が早くなってはいたんですが、あれはどうにも二次形式と行形式が思ったように行かない事がままあって面倒なんです.特に一行分の高さで表示したいところで分数を打ち込むときとか.まず一回入力して行形式に変えて、そっから添字と定数だけは二次形式に…とまあ手数も増えて面倒臭い.
それに対して、Texだと分数はひとつの関数になってます.(\frac{a}{b}でa/bを二次形式で出力します)なので、自分が二次形式分数として出したいところだけ分数として出力できるので、これはええなと思いました.

逆にWordとくらべて面倒臭いなと思ったこと
・画像貼っつけるのにタグいじらないといけない
直感的に行かないのはうざったい.Excelから表とかグラフをはっつけるのもちょっと大変
・ソースを作るのにいちいち英半角に直すのがうっとうしい
慣れれば早いんだろうけどね.こういう時英語圏の人がうらやましいなって思う
・数式のリファレンスを見ながらの作業になる
Wordだと最終手段「マウスで選択!」がある分ちょっと面倒.あとWordだとわからない文字を見つけてきてHoverすると、それの入力方法がポップアップされるからリファレンスもそんなに見なくても大丈夫、っていうのも大きな差かな.

あ、これなんて読むんだろうっていうときにポップアップは結構便利


2013年5月28日火曜日

ぼくのかんがえたさいきょうのやきゅうちーむ

今年も遂にオールスター投票の時期です.

マツダオールスターゲーム2013
http://allstargame.npb.or.jp/index.html

とりあえず一発目の投票かましてきました.

セリーグはカープ中心で.恐らくマエケンはどうせ通るだろうと見て今年に入って更に頑張ってる大竹を先発にしてみました.ミコライオ石原は他のメンバーの豪華さからしてまあムズいとして、堂林菊池今村は成績さえよけりゃ全然可能性あったのにあれじゃあちょっときつよね正直…とは思いつつも、メンバーから外すのも可哀想だったので無理やり押し込みました.その代わりノリさんがレフトです.

パ・リーグはこないだカープ戦でいい球投げてた則本君を先発で.あとはホント知ってる人を適当に並べたって感じです.井口、里崎、松井稼あたりは小学校時代から知ってるだけに、ぜひ出てほしいな~

2013年5月22日水曜日

何故人は眠って良い時に目が冴えて起きていないといけないときに眠くなるのか

最近の生活を一文で、と言われるとこれに尽きる。なんだかどうにも日々の生活サイクルが狂ってしまって戻らない。
いつの間にか、家に帰ると急激に眠くなり飯も食わずに寝る、2,3時間で復帰して飯を食う、そこから寝れずに気づいたら朝になる、とりあえず学校には行く、が昼ごろから死ぬほど眠くなり少し寝る、アルバイトの時間の直前に必死こいて起きて仕事をする、かえってくると異様に目が冴えてまた朝まで起きる…(以下エンドレス)が完全にルーティン化してしまっている。
今ももう2時でそろそろ寝ねばならないのはわかっているのに眠くない。如何せん。

しょうがないので昨日の野球の結果を見る。マエケン完投で負けている。
噂によると、新外国人のルイスが審判の判定に文句を言ってバットを投げ、侮辱行為で退場になった煽りで、広島のストライクゾーンが広くなったとかならなかったとか。自分の結果が伴わないからと言ってチームに迷惑をかけるような退場の仕方はやめていただきたい。バットを投げたいのはこっちだよ。

無駄に起きるのも癪なので、メカトロニクスとかいう基盤にむき出しで、CPUが載ったいかにも電子工作っぽいコンピュータもどきを色々弄くり回す授業の課題をやってみる。
とりあえず、教授から配られた課題の文章を読む。当然ながら2年間C言語から逃げ続けた結果、何を言っているのかわからず、しょうがなくグーグル先生に聞く。

「~はペリフェラルをリセットします」
「タイマ・キャプチャ・コンペア・レジスタ1の値をセットします」
「TIMxのカウンタ・レジスタの値をゲットします。」

ちょっとは日本語で書いてくれないものか。いったいペリフェラルとはなにもんなんだ。

今度こそ腹をくくってCを勉強せにゃアカンなと思い、初心者向けC言語勉強サイトで勉強しようとVisualstudioをたちあげて、コピペしたプログラムを走らせていると、何故かウイルススキャンソフトに”お前のソフト、ウイルス入ってるかもしれないから動かせないわ”と突然の警告。
それ唯1~10を足し算して表示するだけのプログラムだぞ。ほんとに調べたのかお前

しまいにはVisual Studioも”そのファイル、スキャンソフトでだめって言われてるから書き込みできないんだよごめんね”と仕事放棄。これだからパソコンは嫌いだ

2013年5月19日日曜日

プロスピ2013のバランス感(投手編)

プロスピ2013、それなりに試合こなしてペナントは70試合ぐらいが終わったところまで来ました。
ので、また例によってどんな感じの数字が出てくるのかまとめて見ようかなとおもいます。これデータ取ってくるのに毎回ぽちぽちExcelに打ち込まないといけないので、前回は打撃をやったので今回は投手のスタッツから(しかしPS3なんだからCSVファイルで全部出力とか搭載してくれてもええのに…)
そうするとこんな感じになります。打撃レベルは変動制ではありますが基本99です。

防御率 FIP LOB%
BABIP
WHIP K/9 BB/9 K/BB 被本率 右被率 左被率
広島 2.79 2.74 77.6% .320 1.17 8.43 1.59 5.31 0.66 .249 .275
読売 3.07 3.31 74.1% .282 1.26 7.02 2.89 2.43 0.48 .245 .236
中日 3.28 3.29 72.6% .284 1.28 6.15 2.72 2.26 0.38 .256 .243
阪神 3.78 3.72 72.2% .284 1.33 6.56 2.99 2.19 0.63 .247 .256
東京 4.19 3.87 69.7% .292 1.36 6.36 2.95 2.16 0.75 .262 .257
横浜 4.31 4.41 70.0% .273 1.39 5.49 3.40 1.61 0.90 .256 .257
*FIP=(13*HR+2*四死球-3*奪三振)/イニング数+3.12で計算.最後の足し算の数字3.12のところには本来防御率と数字のオーダーを合わせるための係数がはいるらしいんですが、計算が煩雑になることこの上ないのでヌルデータの数字と同じ3.12を使ってます.
*LOB%,被BABIPの計算には本当は犠牲フライとバントの数が必要なんですがプロスピにその表示がないのでそこら辺はぼやっと雰囲気で計算してます.もっというと塁打系も全くわからないので被長打率もわからないので出せていません。大した手間じゃないだろうにどっかに書いといてくれよ…

今作、投球に関しては、コントロールの部分が大幅に変わって、指定したところにピッタリ収まる様なボールはよほどコントロールが無いと出来ないようになっています。
具体的に言うと、今までだと、普通に操作すればピッチャーが永川とか岸本とかハンカチ(赤)とか江草みたいなコントロールがゴミだけど球威はそこそこな投手を使っても、それなりにはストライクがとれるので、現実と乖離した活躍(要は無四死球)が当たり前だったのに対して
2013では、ベストピッチを投げてもそれなりに制球がブレるので、際どいところに連投すると結構フォアボールが出ます。
かと言って真ん中周辺に集めると簡単にボコボコ打たれるので、球威はあるけどコントロール悪いピッチャーが現実みたいに非常に不安定な投球をします。

これはかなりいい変更だと思います。コントロールクソで現実でフォアボールフォアボール&ホームランみたいな事やってるピッチャーがゲームは無双してしまうのはやっぱりどうなんだ、という疑問は前々からありました。今までのパワプロ系列の野球ゲームは、(いいかえればコナミ製の野球ゲームは)基本的にミット周辺には収まって逆玉はほとんど無い、のが当たり前でした(ど真ん中への失投はありましたが)。それを敢えて壊して、クソはクソにしてやろうというリアリティを追求しようとするスタンスはとても良いです。
強いて言うならもうちょっと激しくコントロール悪いやつの制球をクソにしても良いかなとは思いますが、あんまやりすぎたらゲームとして面白くなくなりそうだしまあしょうがないかな。

というようなゲームやってる時の印象が、広島のBB/9:1.59に出ています。(BB/9は一試合あたりの四死球数の期待値のことです)
この数字は、無四球試合の安売りからの脱却という意味では画期的です。

あと気づいたことを羅列すると
・やっぱりゲームでも投手力が高いチームほど上に来るようになってる:
ガンバレばんてふ

・被本塁打のところ見るとしっかりナゴヤドーム補正と神宮ハマスタ補正がかかってる:
燃える神宮&ハマスタ。パークファクター的な概念がちゃんと組み込まれてるみたい。東京ドームのホームランが少なそうなのは恐らく巨人の投手陣が優秀だからなんでしょう。

・被本塁打の表示が何故かゲーム内だと1打席あたりの本塁打確率として表示される:
ちょっとゲームバランスとは関係無いですが、ちょっと気になったので。普通は1試合あたりで考えるもんなので、最初に見た時ちょっと戸惑いました。間違ってるとは言わないけど不思議。

・謎の対左の弱さ:
対右と比べて3分も上回るのはちょっと不思議。他球団の左バッターがやたらと強いと考えるのが普通だけど、他球団の対左右はどちらかと言うと右に弱いとこのが多いし疑問が残ります。広島のまともなピッチャー陣がみんな右投げなせいなのだろうか。

2013年5月7日火曜日

媒介変数表示と必要十分条件

この間「「軌跡の問題で、媒介変数表示されているものを解く時にはそれが必要条件だけしか満たしていないことに注意しないといけない」って教科書に書いてるんですけどこれはどういう意味ですか?」という質問を受けました。
いままで”軌跡の問題は必要条件が関わるから~しないといけない”っていうふうに考えたことがなかったためにちょっと困惑してしまい、おい大丈夫かお前一応先生やろ的な視線で見られちょっと焦りと辛さを感じた一幕でした、なんだか自分で書いてて情けないですね。
どうもこの必要条件とか十分条件っていう概念が苦手で、センター試験数学も右から左が必要条件で左から右が十分条件や!の丸暗記一本で乗り切ったというひどさ。貴方理系かほんとに。
毎回二重丸みたいなベン図を書いていろいろこねくり回して理解しようとはしてたんですがどうも正答率が50%から変化しない。確率に次ぐ苦手ジャンルです。

本題の媒介変数表示における必要条件の必要性、どうやら調べてみるとx^2=1→x=1としてはいけない様に、媒介変数がある範囲で動くという条件を、そのtで表しているx,yが果たして満たすのかどうか、を調べないといけない事であるらしい。
x=1+t/1+t^2,みたいな形してる奴の問題でよく見るアレですね。詳しくは覚えてないけど

やり方を聞けば問題を解くときに毎回自然と(まあそうやらないとバツになるから自然とそうなるんだろうけど)やってることだったので、こうやれば解けるってなんとなく当たり前と思ってることでも、ちょっと考えると難しいというか自分がしっかりと説明できないことが混ざっていたりするんじゃないかなぁとふと思いました。特に僕は雰囲気だけで理解できた気になることが多いというのは経験上わかってるので、絶対いろんな範囲にこういう雑な議論が混ざってそう。

問題を見すぎてブラックボックス化してしまうようなことが、軌跡の問題に限らず結構出来てしまってるんでは無いかなという不安ですね言い換えると。まあそれは置いといてとけりゃあええだろっていえなくもないですが、一度ちょっと込み入った物理の範囲に行ってしまうと、特にちょっと最近かじってる原子物理系統の話になると、もうやってることがほとんど数学に近いお話になってくるので、少しは必要やしなぁとも思うわけです。

結論:漏れ無く議論をするっていうのは難しいなぁ!なむなむ!

2013年4月21日日曜日

サヨナラ勝ち!!

1 2 3 4 5 6 7 8 9 10 11
巨人 0 0 1 0 0 0 3 0 0 0 0 4 9 0
広島 1 0 0 0 0 0 3 0 0 0 1X 5 9 2
http://baseball.yahoo.co.jp/npb/game/2013042103/top

嬉しい嬉しいサヨナラ勝ち。前田もタイムリー打つし中村恭平君はいいピッチングするしで素晴らしい試合やったね。7回まで中村を引っ張った采配はちょっとよくわからんけどまあ勝ったからよしとしましょう。あと丸を下げてルイスを先発させてしかも一番に起用してるのも意味がわからんな、単打しか打たない&大して守備もうまくないのなら思い切って中東先発起用でええんちゃうんけ、とも思えてくるんやけど、まあ今日は勝ったから(以下略

しっかし延長戦では19試合ぶりの勝ちってどんだけ延長に弱いんや……

2013年3月31日日曜日

プロスピ2013

出てたのは知ってはいたけど、引越しとか色々ばたばたすることが目に見えてたので買ってもどうせ積みゲーになるなー、と見越して少し様子見をしてたんですが、巨人広島開幕戦をテレビで見ていたら野球欲がついに我慢ならなくなって買ってしまいました。

私の住んでる下宿最寄りの駅の近くには、残念ながらゲーム販売してるお店がないので、今回もAmazonさんで頼みました。東京だというのに歩いていける範囲に本屋はないわゲーム屋はないわで困ったもんですが、Amazonお急ぎ便で翌日に届けてくれるのは素晴らしいですね。

最近はAmazonが値段を釣り上げてぼったくりをしようとしているとか、値段をしれっと上げてるとか不穏なニュースも聞くのでそういうのはちょっと気がかりです。こういう独占して競争相手がいなくなったところでの値上げパターンはEUの真似して日本もうるさく言いまくってやったらええのになー、といち消費者として思うので、Amazonが調子乗らないように消費者庁さん頼みます。

2013年3月1日金曜日

野球始まった!

やれ秋季キャンプだ、やれ春季キャンプだWBCだと言ってたらもうオープン戦が始まる季節、気づいたら春休みも大分過ぎてもう3月突入なのも不思議な感じで日々が過ぎる早さを改めて実感します。まだまだ寒すぎるのが困りもんやね。

さて、いよいよ明日WBC開幕です。
なんか野球大好き人間界隈以外の盛り上がりが前回と比べてかなりかけてる気がせんでもないですが、まあそんなんは知ったこっちゃない。こっちがおもしろければそれで良い。

第一戦は先発田中マー君とのことです。なんか前の試合の登板見てるとめっちゃ不安になるんですが大丈夫かね。正直おとなしく目下一番良さげな摂津牧田今村あたりで無難に勝ちに行ってもええとおもうんだけども。第一戦もし落としてしまうと取り返しがつかないしね。

打線も貧打貧打であえいでますがWBC球なら飛ぶと信じましょう。やっぱり統一球は飛ばんなって思わしてくれるような打線爆発を見たいです。個々のメンツとしてはトリターニと長野の二人がどうにも良くないのが気がかりです。あとはボールに当てに行ってばっかの糸井、ここへんが打つようになると日本代表の打線もそんな貧打で困るようなことはないと思うんだけど。メンバーはいうてめっちゃ豪華だし。

ブラジル前評判はめっちゃいいけど無難に4-1ぐらいで勝ってほしい


それと気になるのはオランダ。たしかバレンティンがいるのがオランダよね。初戦の韓国とどこまで張りえるのかちょっとこっちも楽しみです。

2013年1月23日水曜日

暇つぶし

いや実際はテストがもう2週間後に迫り、なおかつ実験のレポートもあるわ文系のレポートも仕上げなくてはいけないわであまり暇を潰している余裕などないのだが、どうしてパソコンを使って作業をすることが多いのでついついお遊びが多くなってしまう。
最近は頑張ってPS3を起動しないように、というよりも、一旦始めるとめっちゃ時間を食ってしまう遊びを余りしないように心がけているつもりでは合ったりするのだ、がしかしレポートの進み具合からするとあまり変わっていない気もする。

今日見つけた暇つぶしが、AdobeのKuler

Kuler : https://kuler.adobe.com/


やれることはひたすら5色の組み合わせを延々誰かがupしてるのを見たり、自分で適当にパレットから作ったりなんだけど、結構楽しいのが自分でアップした写真を元に色を決めてくれる機能。
こないだのアップデートからiTunesもこれに似たようなことをしてる気がする(ジャケット画像を元にして背景色と曲名のフォントカラーを決める奴)んだけど、これはそれが複数パターンから選べて、尚かつ自分でも色々といじれる。

書いてみるとただこれだけなんだけどもなかなか楽しい。



こんなふうにデスクトップの背景にしてるような画像でやってみてもなかなかおもしろいし

曲のジャケット画像とかでも、インパクトを残そうといろいろ考えでデザインしてるのがわかっておもしろかったり。




2013年1月21日月曜日



 久々に思い出したように書こうかと思ったんですが、特にこれといって何処かに旅行に行ったわけでもなく、何か刺激的な活動をやっているわけでもなく、ただのんびりと家でぐだぐだと時間の浪費を重ねているような大学生には、そうやってふと思い立った時に何か書く題材も当然なかったんで、こないだの成人式当たりで降った雪の写真は確かそれなりには綺麗だったなと思い経った次第。
 もう2週間ほど過ぎようとしているのにもかかわらず、いたるところに雪が固まった氷だらけで、寒さが一弾増して感じられるの、本当にやめていただきたい。特に夜中走るときにあの氷で転びそうでひやひやものです。早く溶けて消え欲しい。

 そういえば、去年もちょうどこの時期に突然雪が降って(当然天気予報では雪の予報が出ていたと思うのですが、いかんせん大学生はテレビもろくに見ないし当然新聞も見ないしで世の中の情報が入ってこないのです)、「おお!東京でも雪がふるのか!」と感動した覚えがあります。
 それも慣れてしまえば、只々道路が凍って歩いてる途中に滑るわ、坂道でトラックは動けなくなってるわでろくなことがないことが良くわかってきたので、昔ほどは嬉しくはないのですが。それでもやはり雪が積もらない地方出身者としては、どうしても雪に対するあこがれというか、好奇心があるわけです。なんか理系が好奇心で殺されるのがかいま見えますね。

なんかまた明日も吹雪になるみたいですね、こないだみたいに電車死ななければいいけど…