2009年9月28日月曜日
Yawdba開発談(4)
2009年9月26日土曜日
ASP.NETでボタンなどのオブジェクト位置が指定できなくなりました。
2009年9月25日金曜日
米国Sunへの出張
20年くらい前に、SunViewの日本語化(JLE)プロジェクトのお手伝いで米国Sunへ出張に行ったことがあります。私たちは、Sun社より前からSunView日本語化を行っていましたので、米国Sunでの日本語化に関する技術支援で出張しました。右の写真は、お世話になった米国Sunインターコム部門(インターコンチネンタルの略)のビルです。私たちは、あくまでSunでのプロジェクトのお手伝いでしたので、毎日、食事のお誘いなどを受けて、歓待して頂きました。開発では、米国Sunと日本Sunが共同で行っていましたが、プロジェクトが遅れていたので、日本Sunのメンバーが徹夜で仕事していたことに、米国Sunのメンバーが大変驚いていたことを覚えています。また、11月の感謝祭を過ぎると、ウィンターバケーションで1カ月程度休み人がいることも驚きました。アメリカ人はあまりにも仕事をしないのか、日本人はあまりにも働き過ぎなのかどちらでしょうか?
2009年9月22日火曜日
「アキレスと亀」のパラドックスについて
スタート後、アキレスが地点 A に達した時には亀はアキレスがそこに達するまでの時間分先に進んでいます。(地点 B)。アキレスが今度は地点 B に達したときには亀はまたその時間分先へ進みます。(地点 C)。同様にアキレスが地点 C の時には亀はさらにその先にいることになります。この考えはいくらでも続けることができ、結果、いつまでたってもアキレスは亀に追いつけないことになるというのがゼノンのパラドックスです。
即ち、アキレスは永久に亀に追いつけないことになります。
でも実際には、アキレスは、亀に追いつくことは可能です。それでは、どうしてこのような結論になるのでしょうか?。これをグラフに描くと良く分かります。下の図は、横軸がアキレスが居た地点を原点とた距離を示しています。また、縦軸が時間となります。赤がアキレス、青が亀を示しています。
ゼノンが指摘したアキレスが追いつくまでに亀も先に行くという距離は、追いつくまでの時間に近づくにつれて、0に近づき、収束した時間で追いつくくとになります。ゼノンが行っていることは、追いつくまでの時間を無限回に分割して見せてるだけであり、無限回の操作であっても、時間が無限でないことを示しています。
これら無限回の操作を足した時間が追いつく時間となります。各ステージの時間を計算して、各項をΣを使って足し算することになりますが、このときの各項は、無限等比級数であることが分かります。このため、Σの時間も一定の時間が計算され、これが追いつく時間となります。
例えば、アキレスの速度が毎秒αm、亀の速度が毎秒βm、最初に亀がアキレスからγmは離れていたとします。
アキレスが亀が居た地点Aまでにかかる時間は、γ/α秒となります。
次に、A地点からB地点までの時間は、 アキレスからA地点に付くまでに亀の歩いた距離をアキレスが歩く時間ですから、(γ/α×β) /α秒となります。
次にB地点からA地点までの時間は、アキレスがA地点からB地点までに付くまでに亀が歩いた距離をアキレスが歩く時間ですから((γ/α×β) /α)×β/α秒となります。
以降は、その直前の移動秒数にβ/αを掛けた値が、移動時間となります。
これらの時間を足し合わせたのが、アキレスが亀に追いつく時間Sですから
S = γ/α + (γ/α×β) /α + ((γ/α×β) /α)×β/α + .....
= γ/α + γ/α×(β/α) + γ/α×(β/α)2 + γ/α×(β/α)3 + .....
となります。これは、高校の数学で習った無限等比級数列となります。
この両辺に(β/α)を掛け合わせます。
(β/α)×S = γ/α×(β/α) + γ/α×(β/α)2 + γ/α×(β/α)3 + .....
となります。0<(β/α)<1でnが無限の場合、(β/α)n=0であるので
上の式は、次のように変形することができます。
(β/α)×S = - γ/α + γ/α + γ/α×(β/α) + γ/α×(β/α)2 + .....
= -γ/α + S
となります。
したがって、S - (β/α)×S = γ/αとなります。
この式は次のように変形され、
(1-(β/α))×S =((α-β)/α)×S = γ/α
S = γ / (α-β)
となり、これが、アキレスが亀に追いつく時間となります。
★ これを通常の算数を使って解くことにしてみましょう。アキレスが亀に追いつく時間とT秒とします。アキレスが追いかけ始めた原点を基点にすると、アキレスが歩いた距離は、αTmとなります。亀が歩いた距離は、βTmとなりますが、亀が先行して進んでいた距離γmを足すと、アキレスの歩いた距離となります。すなわち、
αT = βT + γ
T = γ / (α-β)
となり、無限等比級数による解と合致します。
Yawdba開発談(3)
設計にあたっては、こららのクラスが、今後、別のツールとしても利用できるよう中核部分は、利用環境が変わってもそのまま利用できるように設計したつもりです。
こうしたら良いなどのご意見がありましたら、コメント頂けると助かります。