2012年10月30日火曜日

ゼロからトースターつくってみた




っていう本ですが、これめちゃくちゃおもしろいです。


トースターを鉱物から作っていくっていうドキュメンタリー本です。
こういう好奇心に対応できる行動力って必要だと思います。

2012年10月28日日曜日

オートポイエーシス(またか)



うーーーむ、やはり気になるオートポイエーシスww
この本は比較的読みやすい(らしい)ので、これからトライしてみようかな…。

2012年10月27日土曜日

周期のはなし 2

周期が、
T = (t-p)^2 + q
と、二次関数になるときの位相を求めてみよう。
ここで、p,q>0とする。
この前の記事を見れば、計算だけの話ですので、解ける方は解いてみて下さい。





位相の周期の話 1

とりとめないです。備忘録的な記事。

sin(θ(t)) と、位相θがtの関数となっているときの”周期”を求めたい。
このような状態で周期という言葉を使うのは変な気がするのは承知の上で、
「そのtの時点のような状態が続いたときの周期」ということです。

普通、周期は、sin(2πt/T) のTとして定義されていて、
角振動数、ω、つまるところ、単位時間あたりの位相の進みを使えば
T=2π/ω とできます。
このωは、位相がたかだか1次関数であればtの係数ですが、
一般的な位相に関しては、「瞬間角振動数」(「平均の速さ」「瞬間の速さ」と対比できる)を

ω = dθ/dt

とできましょう。

このωを用いれば、”周期”は、
T = 2π/ω
と、普通の場合と同じような形として求められます。

ここで、Tとωはtの関数ですので、与えられたTについて、積分すれば








とできるのは難しくないですね。
ここでちょっとした疑問として、





となるときの、周期T(t)はいくらになるだろうか。
この位相は『sin(2πt/T)』という定数のTに「そのまま」関数を挿入してしまうと出てきます。
角振動数ωは





結果、周期T(t)は






となり、彼が予想していた周期とはえらい変わってきますね。



2012年10月19日金曜日

質量保存の法則からみた体重増減

カロリーじゃなくてもっとシンプルな目安としてグラムでものを見てみようw

調べてみると、

ご飯中盛り 150g
ご飯パック(サトウのご飯とか) 200g だそう。

そして、
一回あたりの尿 約200ml ≒ 200g (比重1.0計算)
一回あたりの便 約200g

一晩寝ると、人はコップ一杯(200g)の汗をかくそう。

そう考えると、たとえば僕の友だちHくんの1日の献立を見てみると、


パスタ(250g)


なし(朝と兼用?)


寿司10皿+うどん+雪見大福


寿司一皿大体100gとすれば、

摂取重量 = 250 + 100*10 + 200 + 100 + 水分 = 1550g + α
水分は摂取と排出が平衡状態としましょうか
(一晩でかく汗とか、日中でかく汗の量とちょうど同じだけ摂取している)

そうすれば、1日で、おしっこもうんこもしないと1550g増えます。
運動したら減るのか?と言われると、違うよね。カロリーじゃないもん。

この重量は、


排泄物
としてのみ減るんじゃないかな?

まあ、おしっこは1日5回(3時間に1回ほど)とすると、
1500-200*5 = 500g
うんこは1日1回出るとして、
結局1日300g太ります。

実際彼は昼飯抜いてるし、3食食べるともっと増える。

ということは、ダイエット中の±250gほどは誤差と考えていいかな。

あれ?じゃあ運動でなんで痩せるんだろ。

最低限イングリッシュ

ベーシックイングリッシュの動詞(いんみ~の部屋)から引用

ベーシック・イングリッシュには動詞が16個しかない。
動詞が表す内容は究極的には16個に集約できる。
他の動詞の表す内容はこれらの動詞と動詞以外の語の組
み合わせで表現可能である。
例えば walk は go on footで表現する。

日本語でも「する」と「させる」の2つの動詞があれば、
名詞との組み合わせでなんでも表現できるのと似ている。
例えば「歩く」は「歩行」+「する」で表現できる。

次の表は16語を分類したものである。


           する    させる
存在         be
  存在の発生    come    make
属性         be,seem
  属性の発生    get     make
位置         be
  位置の発生    come    put
移動         go     send
所有         have    
  所有の発生    take    give
  所有の継続    keep    
情報       
  情報の発信    say     
  情報の受信    see     
行為         do     have,make,let


・動詞は「存在」「属性」「位置」「移動」「所有」「情報」「行為」
 に分類される。
・それぞれに「する」「させる」がある。
・存在
  ・be は「存在している」→「ある」
  ・come は「発生する」→「起こる」
  ・make は「発生させる」→「作る」
・属性
  ・be は「ある属性がある」→「~である」
  ・seem は「ある属性のようにある」→「~のようだ」
  ・get は「ある属性が発生する」→「~になる」
  ・make は「ある属性を発生させる」→「~にする」
・位置
  ・be は「ある場所に位置している」→「~にある」
  ・come は「ある場所に位置する」→「~に来る」
  ・put は「ある場所に位置させる」→「~に置く」
・移動
  ・go は「ある場所へ移動する」→「~へ行く」
  ・send は「ある場所へ移動させる」→「~へ送る」
・所有
  ・have は「自分の場所に所有している」→「~を持つ」
  ・take は「自分の場所に所有する」→「~を取る」
  ・give は「相手の場所に所有させる」→「~を与える」
・情報
  ・say は「自分の中から情報を出す」
    音声以外にも使える。
    例)newspaper says ...
  ・see は「自分の中へ情報を入れる」
    見ること以外にも使える。
    例)会う meet 分かる understand
・行為
  ・do は「行為をする」→「~する」
  ・have は「行為をさせる」→「~させる」
  ・make は「行為をさせる」→「~させる」
  ・let は「自由に行為をさせる」→「~のままにする」

すべての動詞は上記のどれかの概念の中に入る。
例えば write という行為は、紙の上に文字を位置させる(put)と
考えることができる。
return は、もとの位置に移動する(go)である。


こういうの面白いですね。

2012年10月18日木曜日

BASIC800

BASIC800で書ける! 理系英文

 BASIC800とは、米国のキャタピラ・トラクタ社が1970年代に開発した、技術英文を書くために開発した言語システムで、イギリスの言語学者チャールズ・ケイ・オグデンが1930年に発表した「BASIC English」をベースにしたものだそう。

もうちょっと情報収集してみる。

心身症

この機会に。

心身症とは(wikipedia)

定義としては、
心身症とは身体疾患の中で、その発症や経過に心理社会的な因子が密接に関与。器質的ないし機能的障害がみとめられる病態をいう。
だそう。

心身相関とよく言われますが、
それの心→身という関係のもので悪性のものが心身症ですな。


さらにwikipediaの引用ですが、
主な心身症として以下のものがあるそう:


下記のような疾患は、心身症としての要素を持っていることがある(注意:これらの疾患に罹患している患者すべてが心身症であるわけではない)。

へー、リウマチも心身症として発症することがあるんだな。

で、ここには無いですが、過換気症候群についても。

いわゆる過呼吸ですが、精神ストレスからくる過呼吸は過換気というそうです。



みなさん楽しく生きましょう!←

ダイエット薬

こんなツイートがとんできた。

これ一粒飲んだだけで猛烈な吐き気と頭痛めまい、で大量に嘔吐しました。
もし娘が早く寝てくれてなかったら、救急車呼ぶとこでした。
ネットで調べたら同じ症状出た人かなり居て怖すぎ。


これ(フォースコリー)

成分を調べてみると、どうやらコレウスフォルスコリなるハーブが原料だとか。

コレウスフォルスコリとは (wikipedia)

google徘徊してるとありました。

コレウスフォルスコリについて(SANTREX)














主成分はフォルスコリンだそう。
cAMP量を上昇させて、脂肪分解を促すとか。
生化学でやったけど忘れてしまったぜ…!


で、根のほうにあるタンパク質が、消化酵素阻害を起こすらしい。
まあ流石にこれがサプリメントに入ってることはないだろうが…
もし入っていたら、消化不良を起こすのはありえないことではないな。

いや、何がだめって、DHCのサイトにはフォルスコリンの名前がぱっと見当たらなかった。
主成分くらいわかりやすいところに書いておけよと思う。





2012年10月14日日曜日

溶ける氷の問題










高校物理の問題集(諸事情ありまして見ました)にあった問題です。
以下gは重力加速度です。

「M[kg]の氷を平らな摩擦のある地面に置き、L[m]引きずると、
 m[kg]だけ溶けていた。この地面の動摩擦係数μ'を求めよ。
 ただし、氷1kgの溶ける熱量をd[J/kg]とする。」


 実際の問題はM = 50, m = 0.03, L = 30 でした。

この設定なら、m/M が非常に小さいとみなせるので、
引きずる間、氷の質量はM[kg]と一定にして考えられる。
よって、μ'MgL/d = m より、μ' = md/MgL と出ます。
まあそんな難しくはないです。

ここからが本題です。

「mがそこまで小さくなかったときはどうなるの??」

ここで、溶けたら普通地面は濡れるので摩擦係数も下がりますが、
そこはご愛嬌で・・・。
もとから濡れている地面の上をずるずるしたとします。

x[m]ズラしたときの質量をM(x)とする。つまり、M(0) = Mである。
x から微小距離 Δxだけズラしたときに得られる仕事量ΔWは、





で、このとき質量変化ΔMは、





Δxを移項して、Δx →0 と極限をとれば、微分方程式、





これは変数分離法で簡単に解けて、x=0でMであることを考えれば、





となる。L引きずると、質量はM-mであったことから、








さて、ここでm<<Mとしてみます。
そうすると、ln(1+x) ≒ x と一次近似できるので、





となり、最初の高校生用の解き方とばっちり合います。
最後の、ln(1+x)とxのグラフを参考にして終わります。

















見た感じ、m/M = 0.2くらいまでなら、いい近似っぽいですね。
m=0.2Mですから、あの問題(M=50kg)だとm≦10kgまでなら、
無視できるとしても、いい値で求まります。
もう少し神経質になるなら、0.1×50 = 5kg くらいまでかな。

それでも5kgなら十分近似してもいいのはなかなか驚きですね。

2012年10月12日金曜日

情報の誤伝達5

今回は次のための準備みたいなものです。

伝えたい情報は{0 0 0 0 0 0 0 ..... 0}とします。
そして、今まではどれだけズレても±1か0かどう動くかは等確率1/3でした。

今回は、確率が「復元力」を持つと仮定しましょう。

この仮定は、
「ズレが大きくなく情報にある程度の常識があり、そこから伝達を類推できる。」
という状況を以ていい近似になりうります。

そして、復元力、確率は各々の情報要素で独立に振る舞うとします。
(次に話したいものはこの復元力によって隣の情報要素と相互作用させようというもの)

その復元力をどうするかですが、単純にズレの距離に比例にしてしまうと、
負の確率がでてきてしまうので、少し改変します。
おいおい話しますが、流れを切らないために、式を先に示します。







ここで、dはどういう値かというと、いわゆる「バネの伸びの限界」で、
「xがdになると、P(-1)とP(1)の比がほぼ10倍になる」としています。
つまりdが大きければ大きいほど、復元力は弱いということになります。

参考までに、d=1でのプロットを乗せておきます。青がP(-1),赤がP(+1)です。











これを用いて、Javaでシミュレーションしてみたいと思います。

この前のやつのr部分だけいじりたいと思います。



import java.util.*;

class InfoDest2 {

static double pneg (int x,double d){
return Math.exp(x/d)/3/Math.cosh(x/d);
}

static double ppos (int x,double d){
return Math.exp(-x/d)/3/Math.cosh(x/d);
}

public static void main(String[] args){
Scanner sc = new Scanner(System.in);
int data = sc.nextInt();
int k = sc.nextInt(); //情報数(配列の長さ)
int n = sc.nextInt(); //試行回数
double d = sc.nextDouble(); //バネ限界伸び
while(data>0){ calc(k,n,d); data--;}
}

static void calc(int k,int n,double d) {
int[] a = new int[10];
//最初の値は全部0なのでこのままでいきます。

for(int i=0; i<n; i++){
for(int j=0; j<k; j++){
double rd = Math.random();
int r;
if(rd<=pneg(a[j],d)) r=-1;
else if(rd>=ppos(a[j],d)) r=1;
else r=0;
a[j] = a[j] + r;
}
}

double avr=0; double var=0;
for(int i=0; i<k; i++){
System.out.print(a[i]+", ");
avr += Math.abs(a[i]);
var += a[i]*a[i];
}
System.out.printf("誤り距離平均: %.2f, 誤り分散: %.2f %n",avr/k,Math.sqrt(var));
}


}


ことさら変わったところもないので、ちっちゃくしときます。
入力にバネ限界伸びが追加されました。

5 5 100 1 で出力してみる。

2, 1, 3, 2, 2, 誤り距離平均: 2.00, 誤り分散: 4.69 
3, 3, 2, 0, 0, 誤り距離平均: 1.60, 誤り分散: 4.69 
-1, 3, -1, 0, 0, 誤り距離平均: 1.00, 誤り分散: 3.32 
0, 0, 2, -1, 1, 誤り距離平均: 0.80, 誤り分散: 2.45 
2, 6, 3, 1, 0, 誤り距離平均: 2.40, 誤り分散: 7.07 


ちなみに、復元力なしの場合(5 5 100)

10, 2, 0, 2, 7, 誤り距離平均: 4.20, 誤り分散: 12.53 
-5, -6, -16, 20, 6, 誤り距離平均: 10.60, 誤り分散: 27.44 
0, -5, -13, 8, 1, 誤り距離平均: 5.40, 誤り分散: 16.09 
2, 11, 15, 2, 12, 誤り距離平均: 8.40, 誤り分散: 22.32 
2, -8, -13, -1, 1, 誤り距離平均: 5.00, 誤り分散: 15.46 
となり、明らかに情報が上手く伝わっていますね。

5 5 1000 1としてみると効果が歴然で、
1, 1, 0, -1, -2, 誤り距離平均: 1.00, 誤り分散: 2.65 
-2, 3, 3, 1, -2, 誤り距離平均: 2.20, 誤り分散: 5.20 
0, 1, -2, 0, 2, 誤り距離平均: 1.00, 誤り分散: 3.00 
0, 0, 0, 0, 2, 誤り距離平均: 0.40, 誤り分散: 2.00 
0, 3, 2, 8, 0, 誤り距離平均: 2.60, 誤り分散: 8.77 
4つ目にいたってはほぼ正確に伝わってます。

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

気になることとしては、バネ限界伸びにどのように依存するか、ですね。
そこで、1 10 100 d として、dを1~10まで出力してみます。









たしかにdが大きくなるほど、誤り距離平均は大きくなっています。

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

最後に書き残していたP(-1)とP(+1)の求め方について説明しておきます。

まず、非負をとる関数で扱いが容易であるものとして
exp(kx)とexp(-kx)を考えます。
もちろん、
P(-1) ∝ exp(kx)
P(+1) ∝ exp(-kx)
となるだろうと思うわけですが、今回は確率を考えたいので、この両者の割合、







とします。ここでλは定数です。

λを決める。確率は1なのだから、
P(0) + P(+1) + P(-1) = 1
P(+1) + P(-1) = 2/3
で、計算すると、λ = 2/3となります。(まあそりゃそうだ)

最後に、ハイパボリックコサインの定義式:





を代入すれば、上の式に近い値が得られます。
最終的にkをバネ限界伸びdで表すのですが、これは簡単で、
P(+1)/P(-1) = exp(-2) ~ 0.1 として計算すればよいです。
なぜexp(-2)にするかですが、これは式が綺麗になるから以外に理由はないかな…。
ですがまあ大体10倍比であれば、ほぼそれ以上伸びないと思っていいだろう。

「指数関数でいいのか」と思うかもしれないですが、
dを大きくすれば、非常になめらかになるので、
一次関数の近似として十分扱えるんじゃないでしょうか。

読書の秋とはこのこと

今日もジュンク堂いってきました
なんでこんな気になる本がぼろぼろ出てくるのかなwww






タイトル通り、思考実験のお題が100個あります。秋の夜長に哲学、みたいな。






よくある英語の新書のフレーズ列挙っていう本ではなく、
日本語の性質と英語の性質をうまく理解しようという本。
買っちゃった



これ面白かった。漫画って書いてあるけど、コマ割りの漫画というわけでなく、
イラストがいっぱいあるってことだった。見てて楽しかった。





これもイラストがわんさかある。どの見開きにもイラストがあると思う。
無駄な萌えキャライラストってわけではなく、必要なイラストがわんさかです。
これは高校生に読ませたいとおもうわ。

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

てなかんじでした。
あと、制御理論について勉強したいなと思いながら本を模索中。
見つけたらまた報告します。





2012年10月11日木曜日

情報の誤伝達4

結局確率過程はマルコフ過程の手前まで頑張りましたが、そこで停滞中です…。

そこで、今ある知識でちょっとでもがんばろうと思いまして、
まず情報列のうちのひとつだけに着目したいと思います。
情報各列は独立に伝達されると仮定するわけです。
もちろん『わたしは』とかの情報列は独立ではないので、仮定から外れます。

「n回伝達された際、そこの情報がxだけずれている確率(x ≧ 0 の整数)」
を考えたいと思います。
明らかに確率は原点で対称になるはずですからxは非負の整数にします。

x≧0ですから、-1より1の方がx回多く出たということです。
動く量が0である回数をn-k回数とする。
そうした場合、k回の中で、1が-1よりx回多く出ればよい。
-1の出る回数をmとおけば、1の出る回数はm+xであるから
m + m + x =  k
これを解いて、 m = (k-x)/2 となる。
まず、mは整数でないといけないので、k ≡ x (mod 2)が条件。

そうして、1の出る回数はm+x = (k+x)/2であるから、
xずれる確率は、











となります。あとはほろほろと計算をすればいい。
簡単のため、伝達回数n = 5とします。
そうすると、xは0~5になるので、頑張って計算できそう…。
無論プログラミング組めよ!と思いますが、この記事ではペンを動かします。

P(0)=51/243 ~ 0.21
P(1)=45/243 ~ 0.19
P(2)=30/243 ~ 0.12
P(3)=15/243 ~ 0.06
P(4)=5 /243 ~ 0.02
P(5)=1 /243 ~ 0.0004

となりました。あら?ちゃんと減ってる・・・
実際は対称性があるので、グラフとしてはこうなります。















あら?綺麗なもんですね…

この確率分布の「距離」の期待値を考えると、
E ~ 1.44 となりました。なるほど、必ず間違えてしまうのか。

実際、この前のプログラミングでやってみます。
10 1 5で出力してみると、


-1, 2,1, -2, 1, -2, 0, 0, 1, 0, とデータが得られたので、
平均してみるとちょうど1になりますね、まあたしかに1.44ってのは妥当か

問題は、この前定義した「誤り平均」です。
それぞれが1.44でズレるはずなので、誤り平均もこれに相当したものになるはず。
それぞれが独立に振舞うので当たり前ですが・・・

10 5 5で出力してみます。


2, 1, 0, -4, 0, 誤り距離平均: 1.40, 誤り分散: 4.58
-1, 1, 2, 0, 1, 誤り距離平均: 1.00, 誤り分散: 2.65
2, 1, -1, 2, 2, 誤り距離平均: 1.60, 誤り分散: 3.74
-1, -1, -1, -1, 1, 誤り距離平均: 1.00, 誤り分散: 2.24
-1, 3, 2, -1, 3, 誤り距離平均: 2.00, 誤り分散: 4.90
-1, -3, -1, -2, -3, 誤り距離平均: 2.00, 誤り分散: 4.90
0, 1, 1, 2, 2, 誤り距離平均: 1.20, 誤り分散: 3.16
3, 2, -2, 1, 0, 誤り距離平均: 1.60, 誤り分散: 4.24
2, 0, -2, 1, -1, 誤り距離平均: 1.20, 誤り分散: 3.16
0, -1, 0, 2, -2, 誤り距離平均: 1.00, 誤り分散: 3.00


ほうほう、ということは擬似乱数はおかしくなかったということか…!

次の記事で、プログラミングで伝達回数に対する誤り平均のデータを集めて、
グラフ化してみたいと思います。

とりあえずのまとめとしては、
「期待値としては絶対に情報は隣半くらいまでズレる」ということです。




一般システム理論から

wikipediaから関連リンクで色々と飛んでましたところ、
興味深い記事をいくつかピックアップ。

群知能
ホーリズム
制御理論
オートポイエーシス
有機体論
創発


なんやねんこれ

一般システム理論の日本語Wikipediaみてるけど、なんだこれ
下手な英訳だな、というか
否定的なエントロピーってなんだよwwww
negative entropyのことだろうけど
これは負のエントロピーでしょ。

英語版読んだほうがいいかもしんないな





システムズシンキング

システムズシンキングとは

wikipediaで調べてきました。

システムズシンキングSystems thinking)とは、 物事をシステムとして捉え、その要素間の因果関係をグラフとして表し、その構造を利用して振舞の特徴把握や定性的分析を行う考え方。


あと、一般システム理論についても調べるとこれはこれは面白そうな・・・!

一般システム理論とは

ちょっと読んできたいと思います。



ここで、還元主義についても一応引用しておくと、

還元主義(かんげんしゅぎ、ReductionismReduktionismus)は、
日本で比較的定着している定義では
  • 考察・研究している対象の中に階層構造を見つけ出し、上位階層において成立する基本法則や基本概念が、「いつでも必ずそれよりひとつ下位の法則と概念で書き換えが可能」としてしまう考え方のこと[1]
  • 複雑な物事でも、それを構成する要素に分解し、それらの個別(一部)の要素だけを理解すれば、元の複雑な物事全体の性質や振る舞いもすべて理解できるはずだ、と想定する考え方
還元の英訳は「削減」を意味するreductionであるが、これは概念や法則の多様性を減らすという意味で理解することができる[1]

二つ目が大事ですね。「パーツを理解すれば、組み合わせたものは分かるはずだ」
システムズシンキングでは、還元主義の逆の立場で、
「システムからパーツを取り出したら、そのパーツはシステム内でのそれとは違う挙動を示す」
だそうです。実際、生命現象ではごくごく尤もらしいことですね。



本屋さん物色

今日は大学の帰りにちょっとだけ大きい本屋さんに寄って物色してきました。
あまりその店をじっくりと物色したことはなかったのですが、
棚に並んでるもの、平積み本等々、絶妙に自分好みを置いていましたw

その中で気になったものをいくつか挙げます。



レイアウトが比較的見やすくてよかった。ライティングの練習用に欲しいかも。





著者が薬学系というところと、中身が程よくフランクで読みやすい。
中高生と対話しながら話を進めていくというスタンスをとってるんで、
話の途中で路頭に迷うことがなくて安心かな。

そして主題的に心の哲学の要素にも触れているので、ぐっときた。




ちょくちょく気になってるゲーム理論の入門書。






今日初めて知ったワードがこれ。一般システム思考。
システムの考え方を日常生活の思考過程にもしっかりと適用させようみたいな、
そんな感じだったはず。面白そうだから、名前だけピックアップ。
中身はちょっと古臭く厳しくて読みにくそうでした。他に探してみようと思う。

---------

とまあこんな感じでした。いずれ買うかもしれないし、図書館で借りてくるかも。








2012年10月7日日曜日

Quizlet

http://quizlet.com/

このサイト、ちょっと重いけどすごい良いかもしんない。
ネット上でいわゆる「単語カード」を作るサイトなんだけど、
他人のカードも使えるし、もちろん自分でも作れる。
なにより、印刷機能が優秀。いろんな形式で印刷できる。

あと、iphoneのアプリでもあるっぽい。パソコンでガシガシ書いて
外でぽちぽち覚えられる!英語だとちゃんと音声も自動でつけてくれる。

バジルかあ


友達とバジルいいよなって話をしてまして、
育てるの簡単なのかなと調べてみると、土すらいらないキットがありました。

これは買うか迷うなあ。もし買ったら、育て状況アップする次第


~追記~
っぶねえええええええええええええ
送料めっちゃかかるやんけこれ、危うくポチりよった

2012年10月6日土曜日

書くことないからポル語

確率過程はしばしお待ちを…
一応マルコフ過程の頭までは読みました、
ただここから集合の証明ががんがん入ってきててんてこまいなんですよ。
推移にグラフっぽいのでてくるしね。有向グラフね。


ポルトガル・ポルトガル語とブラジル・ポルトガル語がありまして、
日本はポルトガルよりブラジルとの親交が深いのもあって、
ポルトガル・ポルトガル語の日本語でのテキストがほぼゼロという圧倒的絶望感。
ウェブサイトで探すもやっぱりブラジルの方ですねえ。
やっぱり英語で探すしかなさそうなわけですな。

そこで、探してきて読んでるのが



ただ、まあ、初めて学ぶぞ!って人にはコンパクトすぎるかもしれない。
良くも悪くもハンドブックって感じ。
重要語句とか活用表とか乗ってるので、そこはすごい便利で助かる…。

ポルトガル語で素敵なのは、「主語が省略できる」ことかなと思います。
もちろんそのために、動詞の活用にしわ寄せがきてるんですけど…
それでもドイツ語は動詞の活用ありーの、主語いりーのなんで
全然いいと思います!
聞いたところだと、口語(仲いい同士かな)では主語つけないほうがむしろ自然らしいです。

ポルトガル・ポルトガル語は、「シュ」の音がめちゃくちゃ多いです。
しゅっしゅしゅっしゅ言います。それが可愛いという人もいるとかいないとか。

ある程度まとまったら、ポルトガル・ポルトガル語についてまとめてもいいかな。
なにせ、ブラジル・ポルトガル語しかないのです。

2012年10月4日木曜日

そういえば

あれ?これってもしかしてブラウン運動の話だよね


情報の誤伝達3

誤り分散について、少し考えてみると、どうもこんな感じで近似できそうだ。





ここから幾分かはもちろんズレるが、分散の平均値とでもいえばいいのかな。
実際、
n = 10 で 5
n = 100 で 20
n = 1000 で 45とここまでは近い値を出してくれる。
n = 10000になると差がひどくなる気はするが。

もちろんこれは情報数が5の話。


んー・・・これは擬似乱数のせいなんだろうか?
確率過程学んでからリベンジしたほうがよさそうですね。

情報の誤伝達2



import java.util.*;

class InfoDest {

public static void main(String[] args){
Scanner sc = new Scanner(System.in);
int data = sc.nextInt();
int k = sc.nextInt(); //情報数(配列の長さ)
int n = sc.nextInt(); //試行回数
while(data>0){ calc(k,n); data--;}
}

static void calc(int k,int n) {
Random rand = new Random();
int[] a = new int[10];
//最初の値は全部0なのでこのままでいきます。
for(int i=0; i<n; i++){
for(int j=0; j<k; j++){
int r = rand.nextInt(3)-1;
a[j] = a[j] + r;
}
}

double avr=0; double var=0;
for(int i=0; i<k; i++){
System.out.print(a[i]+", ");
avr += Math.abs(a[i]);
var += a[i]*a[i];
}
System.out.printf("誤り距離平均: %.2f, 誤り分散: %.2f %n",avr/k,Math.sqrt(var));
}


}

てな感じでざっくり書いてみました。
入力としては、3つあって、
データ数 情報数(配列の長さ) 伝達回数 です。

試しに、
データ数を5, 情報数を5, 伝達回数を100とすると

5 5 100とすると、
3, 1, 2, -15, 4, 誤り距離平均: 5.00, 誤り分散: 15.97
23, 1, 0, 5, 14, 誤り距離平均: 8.60, 誤り分散: 27.40
7, 16, 5, 6, -8, 誤り距離平均: 8.40, 誤り分散: 20.74
-2, 12, 11, 6, 5, 誤り距離平均: 7.20, 誤り分散: 18.17
4, 7, 6, 3, -3, 誤り距離平均: 4.60, 誤り分散: 10.91

今回、rの値は-1,0,1で等確率としています。
ということは、伝達回数が多くなれば、『上手い具合に』元に戻りそうな気がします。
実際は戻ってないですね。

5 5 1000をしてみます。
-45, -4, 27, 10, 38, 誤り距離平均: 24.80, 誤り分散: 65.68
14, 5, -4, 18, 14, 誤り距離平均: 11.00, 誤り分散: 27.51
-21, -16, 41, -4, 50, 誤り距離平均: 26.40, 誤り分散: 69.96
-7, 47, 43, -6, -5, 誤り距離平均: 21.60, 誤り分散: 64.56
25, -19, -14, 18, 0, 誤り距離平均: 15.20, 誤り分散: 38.81

むう、やはり戻らないな。
5 5 10000だと、
-18, -9, 51, -64, -84, 誤り距離平均: 45.20, 誤り分散: 118.99
42, 30, -59, 240, -126, 誤り距離平均: 99.40, 誤り分散: 282.17
24, -22, -5, 25, 22, 誤り距離平均: 19.60, 誤り分散: 46.84
-28, -27, 8, 104, -101, 誤り距離平均: 53.60, 誤り分散: 150.31
-29, 125, -38, 90, 112, 誤り距離平均: 78.80, 誤り分散: 196.35



情報の誤伝達1

情報はどれだけ間違えて伝わるかについて考えようみたいな。

あるk列の数列があるとする。(この際の数字は整数であればどんなものでも構わない)
たとえば、5列の数列であれば、
1 2 3 4 5でも、1200 20 54 -87 132でもよいとする。

仮定は、こういったものにしたい:

伝達の際、その数字列の±1もしくは0だけ不安定になる。
たとえば、50を伝える際に、49,50,51に揺らいでしまう。
それをすべての数字について彼は行い、そして伝達する。

最も簡単なものとして、1列の数字を与える。a0=10としよう。
次に伝わった情報をa1と置けば、
a1=9,10,11のどれかになる。そしてa2=8,9,10,11,12のいずれかになる。

結局、漸化式としては、
a(n) = a(n-1) + r
ただし、r = 0, -1 , +1 (各々の確率は1/3)とする。

どれだけ間違えたかについては、二種類の量がありますね。










nはn回伝達後の情報。
Vは考えている列の集合。要は最初の文字、次の文字…と足していく。
n(V)は集合Vの要素の個数。情報の長さです。
前者については、いわゆる平均です。
「それぞれについて、基準との”距離”を測り、その平均をみる」ということです。
後者については、いわゆる分散です。
「蓄積された情報の誤り具合」といえばいいかな。


で、これは多分確率過程の話なんだろうw
しかしまだ確率過程は勉強してませんので、javaさんに頼みます。
初期値、つまり、伝えたい情報は0 0 0 0 0 0 0......0にします。
すると評価も簡単になりますから。

というわけで、ここで一旦終わります。つまり、続きものです。

2012年10月3日水曜日

力学系入門

スメールの力学系入門の邦訳を読んでます。
非線形の取り扱いは難しいネー
にしても、数学の命題の書き方ってすっごい数学らしいよね・・・
なんつうんだろ、数学文法とでもいいのかな。
イプシロン-デルタ論法もそんな感じ。

2012年10月1日月曜日

ArrayList オートボクシング

使っているテキストには書いてなかったので、Allaboutの記事で勉強中。
なるほど、ラッパクラスって必要だね・・・!

にしても、Eclipseってほんと便利なんだなあ。
今日はアプレット作ってみたんですけど、アプレットも表示できるんですね。
HTMLファイルを別途作らないとだめと思ってた…
まさかEclipseにブラウザが搭載されてるなんて。

Eclipseのおかげですごく捗るんですけど、
Eclipseのない環境だとプログラミングできない頭になりそうだ。少しだけ危機意識…・w