spin on the RITZ -128ページ目

確率は限りなく低く

1988年の統計のよれば、同年における10万人あたりの交通事故死亡者数、交通事故死傷者数は次の通りであった。

北海道 東京 大阪 福岡
交通事故死亡者数 9.7 4.0 5.7 7.8
交通事故死傷者数 526.6 508.7 703.8 867.2

各都道府県において、人口10万人の都市を考えるとき、

(1),1年間の交通事故死亡者数が10人未満である確立を求めよ。

(2),1日の交通事故死傷者数が5人未満である確率を求めよ。



交通事故とかの分布は基本的にポアソン分布だったりするので、とりあえずポアソン分布で考えると




な式でもとまります。

つまり、求めたい確立をPとすると、(1)では、



っつーなるわけですよ。これをフツーに計算しても大変なので、コンピュータさんの力をかりることに。

ちなみに(2)も大体同じように解きます。

#include <stdio.h>
#include <math.h>

int fact(int i)
{
    if (i == 0 || i == 1)
        return 1;
    return fact(i-1) * i;
}

int main(void)
{
    double lam1[] = {9.7, 4.0, 5.7, 7.8};
    double lam2[] = {526.6, 508.7, 703.8, 867.2};
    char *city[] = {"北海道", "東京", "大阪", "福岡"};
    int i, k;
    double p;

    printf("1年間の交通事故死亡者数が10人未満である確率\n");
    for (i = 0;i < 4;i++) {
        p = 0.0;
        for (k = 0;k < 10;k++)
            p += exp(-lam1[i])*pow(lam1[i], k)/fact(k);
        printf("%-6s : %f\n", city[i], p);
    }

    printf("1日の交通事故死傷者数が5人未満である確率\n");
    for (i = 0;i < 4;i++) {
        lam2[i] /= 365;
        p = 0.0;
        for (k = 0;k < 5;k++)
            p += exp(-lam2[i])*pow(lam2[i], k)/fact(k);
        printf("%-6s : %f\n", city[i], p);
    }

    return 0;
}


出力:

1年間の交通事故死亡者数が10人未満である確率
北海道 : 0.495979
東京   : 0.991868
大阪   : 0.935183
福岡   : 0.741109
1日の交通事故死傷者数が5人未満である確率
北海道 : 0.983992
東京   : 0.985994
大阪   : 0.953591
福岡   : 0.907131



うん、巻末の解答と同じ結果が得られました。バンザイ。

でも、ポアソン分布だと気づかなければ解けません(普通は気づきますが)



ふぅ~、テストに出されたら困るタイプの問題だな。

無視するな

import java.io.*;
public class prac {
    public static void main(String args[]) {
        BufferedReader reader = 
            new BufferedReader(new InputStreamReader(System.in));
        try {
            System.out.print("なんか入力 -> ");
            String line = reader.readLine();
            System.out.println("入力されたのは "+line+" ですよ");
        } catch (IOException e) {
            System.out.println(e);
        }
    }
}


いかにも練習用のプログラム。練習中の身なのですよ。

クラスの名前とファイル名が違うだけでエラーが出るっていうのは驚いたw

上のプログラムなんですが・・・・・・

cygwin上で動かそうとすると、途中のreadLineが無視されてすぐに終わってしまう。



う~む、これはまずい。



調べてみたところ、Cygwin上の問題のようで、Javaの問題のようで、いや、Cygwin上の問題のようで

つまりはわからなかったりする。



きっとコマンドラインで入力したときに改行が残っちゃうタイプのエラーだと思うので、リターン押さずにそのまんまなんとかならねぇかこんちくしょうということで、コントロールキーとアルファベットを打ちまくっていたら出来ましたよ!


Ctrl + j


なんですよ!さすがJ!

これもリターンと同じ意味らしいんですが、これを使えば無視されないぞ!やったね!



見るソースによっては、例外処理を省いているのもあるんですが、例外処理を省くとエラーを出しやがってくれます。まぁ、とりあえず書いておこう。問題なさそうだし。



よし、とりあえず次に進めるぞ

当たれ!動け!バネろ!

バネろってなんだよバネろって・・・・


【問題】


3つの粒子の重さはm

そのうち2つはばね定数kのばねにつながっており、図のばねの左側の粒子の座標をx2、右側をx1とする

座標x2にある粒子に、速度vで粒子が完全弾性衝突した

vの矢印の向きが、x軸の正の向き


さて、粒子のある座標x1とx2は、衝突後にどのような変化をしていきますか?答えなさい



【解答】


x10とx20は初期の座標。ωは√(2k/m)





解くのフツーに厳しかった。大丈夫か俺!?


はじめのx10+v/2tまでが重心の運動で、残りが相対座標での動き。

重心は等速直線運動。相対座標では単振動。



これくらいなら高校生でも普通に解けるんじゃないかな

それが厳しかった自分は多分ダメ人間ですorz



あー、勉強不足か。。。

斬るに値しない

ブシドー兄さんカッコいいっす。ブシドーの中のブシドーっす。


噴出しそうになるのは多分ずっとだと思う。



なんつーか、今回は、娘さんを僕に下さい!的な内容だった。もう少し先にはなるだろうと思ってたけど、案外早かったね。
どうするんでしょうか、サポート役?MSには乗れなさそうだし。乗ってたのはソーマだし。
ガロードとティファみたいな?ダブルX的な?Gファルコンもつけちゃえ的な?

第7話でこれかよ。


強化人間的な話だと、エルピー・プルだったりプルツーだったり、フォウ・ムラサメだったり、ロザミア・バダムだったり。
まぁ、悲惨な最期をとげる人が多いわけですよ。


さて、どうなるやら

じゃばじゃば

適当にSDKをインストールして


適当に環境変数いじって


適当にソース書いて


適当にコンパイルしたけど




出来たぜイヤッホォォォォォウ!!!!!!!



アプレットは最初動かなかったけど、いろいろ調べたら動いた。javaのバージョンの問題だったりするらしい。まぁ、とりあえず遊ぶ分にはいいかね。後々問題は調べていこう



見慣れないコトバばっかりで全然わっかんねーけど、ちょっとのソースであれだけできるのは中々面白い。



いろいろソース拾って遊んでみよう