fc2ブログ

中の人の徒然草496 低レベルで進歩しない政治などにうんざりな毎日

 最近、セクハラ野次問題が取りざたされています。その件で思ったのですが、セクハラは抜きにしても、議員がいまだに小学生レベル以下の行為をしている現実にうんざりしました。そもそも野次を飛ばすなんてことは、社会人からしてみれば、小学生レベルの行為です。野次を飛ばすという行為は、コミュニケーション力が低い証拠だとみなすのが普通の社会人です。それに加えて、「まだレベルが低い」のかとあきれ返りました。
 というのも、昭和初期のあたりで、経営の神様松下幸之助が「本当はあんなものには関わり合いたくないのだが、余りにも経済の足を引っ張るから政治家のレベルを上げる方法を考えねばならない」といっていたからです。松下政経塾はそのために作られたものです。政治家は事あるごとに、日本を世界第三位の経済国家にしたといっていますが、実際は政治が足を引っ張った結果第三位にしかなれなかったというのが事実なのです。政治が一流ならば日本は世界一の経済国家になったでしょう。
 この件からもわかるように、日本の政治は国民の足を引っ張る程度のレベルでしかないのです。それにも関わらず、政治家は自らを「偉い」と錯覚している節があります。そもそも、地位としての「偉い」は、近代日本国家では、天皇家の方々だけであり、そのほかは全て平民であり平等です。そして、人としての「偉い」は、他人が判断するものであり、足を引っ張る程度のレベルでしかない人たちが、自分たちを「偉い人」だと思い込んでいる現状は呆れるほかありません。
 いまさら、高度なレベルは望みませんが、国民の足を引っ張るのだけはやめてほしいものです。それは彼らにとって過剰な要求かもしれないので、少なくとも小学生レベルの行為は恥ずかしいのでやめてほしいです。
 ただし、政治家のレベルがそこまで低いのを見逃していた、我々国民にも責任はあると思います。私が思うに、彼らの報酬が実力評価制ではなく、定額制であるのが大きな要因だと思います。仕事の成果と報酬が無関係であれば、何もしないほうが得になりますし、能力の向上にも無関心になるのは目に見えています。現に戦後70年ほどたった今でも、そのレベルが低いことは証明されているので、セクハラをしたと騒いでいないで、「政治が足をひっぱる」という根本的な問題を考えなくてはならないと私は思います。

 それはそうと、サッカーの結果は残念でした。しかしながら、スポーツは結果がすべてではないと思っているので、日本チームについては、よくやってくれたと感謝しています。負けたことについて酷評して居る人がいますが、なんで高望みしているのだろうと思えてなりません。そもそも、日本のサッカーのレベルは、歴史が浅いゆえに他国よりも低いのは明白であって、優勝できないのは初めから明らかでした。従って、問題となるのは「やる気」であって、見るからに日本のチームは頑張っていました。ですから、頑張ったことについて、素直に褒めたり、感謝したりするのが普通であって、酷評するのはあり得ないと思います。彼らは日本最強レベルの人達であって、その人達で勝てないものは勝てません。酷評している人たちは、彼らに勝てる自信があるのでしょうか?なければ、彼らに託したという事を意味しているので、酷評するのは筋違いです。それでも酷評するのであれば、自分が試合に出て、ブラジルなどの強豪国に勝てる事を証明しなくてはなりません。そうして初めて、酷評する正当性があると思います。

 それはそうと、今は良いニュースがないですよね・・・日本の報道は誰かへの悪口で構成されているので、気分が滅入ります。日本は誹謗中傷で構成されているという気すらしてきます。とにかく、現実を直視して、問題を一つ一つ解決していかねば日本は滅びます。いまだに小学生レベルなんですから、日本の状況は深刻です。サッカーの代表選手に文句を言ったり、小学生レベルの問題を低レベルな次元で報道したりしている時間なんて日本に残されていないと思うんだけどな・・・
 日本社会どうも、現実を無視して現状維持していれば幸せになれると錯覚しているという気がしてなりません。しかしながら、世の中は諸行無常です。現状維持という甘えをして、厳しい世の中を生き残れるとは思えません。それにも関わらず、多くの日本人は、なぜ現実を直視して現状の不備を直さないのか、不思議でなりません。どうしてなんだろう?私にとって、この問題が一番難しいです。
スポンサーサイト



テーマ : 日記
ジャンル : 日記

ネタつつき219  - 当たり前は存在しない。思考し続けよう。

 情報技術者としての私の信念は「当たり前など存在しない」です。この考え方は、非常に重要だと思いますので、今回はそれについて書きます。
 例えば、5×0=0. 4×0=0.は当たり前でしょうか?多くの人は良く考えもせずに、当たり前だとか、そう決まっているなどと考えるようです。通常はこれでよいとされておりますが、そのような考えでは技術者は務まりません。暗黙の了解で済ましたり、思考停止したりして、思考を巡らせないのでは、何も想像できませんし、細部に潜む髪を見出すことができなくなります。「当たり前」に疑問を呈し、深く物事を考えるのが技術者です。
 先ほどの例でいうと、「零の定義」「掛け算の定義」「等号の定義」の3つの定義をよく考えるのがよいでしょう。これから一緒に考えましょう。
 零の定義は意外と複雑です。零の歴史は長く、深い意味合いがあります。存在がない事を表す働きと、位取り記数法の役割の2つの役割を持ち、思想的には無限と深く結びついています。この奥深く多面的な零をよく捉えない限り、真実に到達することはありえません。しかし、これ以上思考を進めるには、他の定義を考える必要があります。
 掛け算の定義は、土地の面積計算から端を発しています。また、足し算を効率よく行うためのものでもあります。この2つの行為は単純に見えますが、微分積分とも結びつており、意外と複雑です。何故ならば、面積計算は線を積分するものだと捉えることができるからです。
 等号の定義についても油断できません。等価を意味すると考えられますし、掛け算アルゴリズムの結果と考えることもできるからです。この両者は同じだと思われるかもしれませんが、微妙に異なります。何故ならば、等価を意味するのであれば、何をもって等価なのかを深く考えねばならないからです。すなわち、零とは何かについて明確な答えを出さねばならないのです。
 これで定義が出そろったので、再び思考を進めましょう。そもそも零とは何でしょうか?零を積分するとは何を意味するのでしょうか?零と等価とはどんな状態なのでしょうか?・・・色々な疑問が浮かびます。どうやら、これらの問いの答えは、「零とは何か」にあるようです。
 再び零とは何かについて考えましょう。零は無であり、無限でもあります。そして、記数法の道具でもあります。また、同じ数同士を引けるという特徴も持ちます。これらを統一する零の定義とは何でしょうか?この問いは難題です。過去、多くの人が考え続けました。絶対的な答えは導き出されていないので、正解はないと思います。ここで技術者としての姿勢が問われます。貴方は答えがないからといって諦めますか?
 私は技術者を「思考を止めない人」だと考えています。ですから、答えがないからといって思考を止めません。いかなる時も何らかの答えを出します。先ほどに例の零についても私なりの答えを出しました。
 私が考えるに、零とは「制約を定めていない集合」です。何故ならば、零は無でもあり無限でもあるからです。この2つの性質の両方を満たすには、この答えしかないと思います。制約がない状態だと考えれば、定義がないので無であり、制約を考えられるので無限でもあると考えることが可能となります。また、記数法としての零と、同じ数同士の零についても、「定めていない部分についての対応」だと考えられるからです。この考え方が、日記で書いた作用数につながります。
 カントールは無限を数える事を可能としました。その方法とは、自然数との1対1対応です。ならば、零についても対応を考えればよいという事になります。すなわち、5×0、4×0…についても対応として考えれば、「無制限を制限することが可能」となります。
 先ほど言ったように、カントールの考えを適用し、片方の値が零の掛け算の組を、0を加えた自然数に対応してみます。そうすると、以前は区別できなかった零に形をあたることができます。
 もし、当たり前だとか、答えがないだと考え、思考停止していたならば、このように新しいものを創造できなくなるのは明白です。想像できない技術者に何の価値があるのでしょうか?それを考えると、私が言っている意味が分かると思います。
 この世の中には、答えがない問いが沢山あります。それら無数の問いに対して、思考放棄で臨む人生は楽しいでしょうか?それを楽しいと言い切れる人がいればそれでよいのですが、そうでないならば考えるしかありません。人間は考える葦です。たとえ技術者でなくても、物事を深く考えるのは大切な事だと私は思います。

テーマ : 文明・文化&思想
ジャンル : 学問・文化・芸術

中の人の徒然草495 零とサッカーに燃える

 FIFAワールドカップ熱いですよね。ここ最近は、サッカーに燃えています。日本が負けたのは残念ですが、積極的で熱く良いプレーをしていましたし、相手もよいチームなので、結果に納得しています。
 ところで、ブログに書くのを忘れていましたが、0に対してエラーを出さない新しい数を考えてみました。名前はまだ決めていないのですが、作用数とか、数の関数拡張と呼んでいます。この数は、数を集合としてとらえて、零を他の次元のものだと考えて生み出しました。
 基本となる考え方は、「個々の数もまた集合と写像である」というものです。この時、関数と数を別物として考えるのではなく、組で考えます。つまり、x * y = xy を2値関数の引数としてとらえるのではなく、「写像していく」として考えます。

 例 5 * 2 = 10
 +5という集合を*2という集合で写像する。その結果は+10という集合である。

 この考えを0に関する掛け算に適用すると・・・

 例 5 * 0 = *5
 +5という集合を*0という集合で写像する。これは0ではない。
何故ならば、5 * 0 の0と、4 * 0 の0は違う集合だからである。
同値とすると、対応関係がおかしくなるからである。
0を定値写像と考える方法もあるが、それではすべての要素が定値となり、使い道がない。
従って、*5などと区別するための記号を付けて、新しい集合とする必要がある。

 私はこんな具合に考えています。ところで、この新しい数は興味深い結果を生みます。それは、*5(零5?)などといった集合に対する、写像に興味深い性質が見られる点です。皆様も一緒に考えてみましょう。*5 に1を加算すれば何になるでしょうか?逆に1を減算すれば何になるでしょうか?

 *5 + 1 = *6 *5 - 1 = *4

理由:
 *5 は通常の5とは違う別の数である。
従って、通常の意味で加算と減算が成り立たないという考え方もできる。
しかしながら、そう考えると、数の抽象度が下がりが実用的なものでなくなる。
また、*5は掛け算と5の組であり、組が持つ要素を、一定のルールで操作できると考えるのが妥当である。
従って、普通に値を加算減算するのが妥当である。

 ここまでは普通の考え方ですよね?面白いのはここからです。加算と減算が許されるのであれば、その結果また0となって、他の数と掛けたらどうなるでしょうか?

 ( 5 * 0 ) - 5  ) * 5 = x 
 x = ( *5 - 5 ) * 5
  x = *0*5 

さて、xは何でしょうか?

 私はこの問題に直面したとき、基本に戻って、この数は「関数と値の組」だという点に注目しました。この考え方から言うと、組を拡張して、列と考えてもよいのではないでしょうか?つまり、( 零の数, 関数, 値 )となる数だと考えるのです。ですから、先ほどの例の答えは・・・ x = **5 だと私は考えています。記号の数を数えたら、零を掛けるというヘマをした回数がわかります。実に面白いです。ちなみに、割り算では*の数を減らします。そうすれば、*5 / 0 = 5 となり元に戻せるようになります。
 ところで、この考え方は新しい疑問を生みます。この数の幾何学的表現はどうなるのでしょうか?私は少し悩みましたが、直感で「3次元デカルト座標にしたら?」と思いました。つまり、先ほどと同様に、この数を列もしくは行列と考えて、3次元のものだと考えるのです。これにより私の中では、0は不可思議な無と無限ではなく、次元が変わるだけの存在となりました。
 少し詳しく言うと、0を掛けたときの値は「上の座標」。0を割った時の数は「下の座標」だとイメージしています。デカルト座標は普通に考えると2次元的なものですが、デカルト座標を1枚の紙として考えると、複数のページがあってもよいと思います。もしくは立方体と考えると合点がいきます。高さという概念を加えるのは、4次元(奥行き、幅、高さ、時間)に生きる私たちとしては普通の感覚なのではないでしょうか?
 通常の計算で0が出たらエラーになるのは、「次元が違う話になるから」だと考えると合点がいきます。私は思考停止が嫌いなので、「0で割ったら無限大だからエラーなんだよ」だとか「0をかけたら終わりなんだよ」という投げやりな態度ではなくではなく、「0を掛けたり割ったりしたら次元が変わるんだよ」の方が良いと思います。
 おそらく、数学者は私の考えが気に入らないでしょうが、私としては、たかが0を使っただけでエラーが出る、既存の仕様の醜さの方が気になります。0を現状のように扱うと、微分積分にも支障が生じており、科学にも影響があります。そんな負の影響を与えるぐらいならば、仕様を直したほうが断然よいです。
 きっと、私がシステム屋だからそう考えるのでしょう。お客様に対して、「0が出たら無理」などといえるはずがありません。システム屋のお仕事は、「無理を可能に」、「矛盾から答えを出す」、「不可能を可能にする」、「解決策を必ず出す」といった暗黙のルールがあります。そういったことから、駄目なものは駄目ではなく、無から有を生み出すのが私のお仕事であり、私の思想なのです。
 それにしても、零というオブジェクトは奥が深いです。今後は代数学的にも分析してみたいと思います。

中の人の徒然草494 掛け算と割り算の定義がおかしい事が気になって仕方がない

 ここ最近、また仕事が大量に発生して、ブログが書けない・・・。仕事中毒の私としては嬉しいけども、ブログも書かなきゃ。やっぱり、一度やり始めたことはちゃんとしないと気持ちが悪いです。という事で、技術記事を書く時間がない(あれは全体像を決めているが、個々の記事として分割して研ぐのが面倒。エラーを考えるのは意外と大変。)から、最近の出来事を書きます。
 最近私がこだわっているのは、掛け算と割り算の定義です。小さいころから思っていたのですが、やっぱりおかしいです。プログラミング的に考えても、このような仕様は気持ちが悪いです。というのも・・・
 1 + 0 = 1というふうに足し算では、 0を足しても相棒を覚えています。しかし、掛け算では、1 * 0 = 0、 2 * 0 = 0・・・というふうに「相棒」を忘れてしまいます。割り算に至っては、1 ÷ 0 = エラー(無限)です。この仕様は、プログラミング的に考えて実に不可解です。対応関係が保持されていません。
 0を使用すると1対1対応でなくなるのは頂けません。また、処理的に考えても、加算処理を包含する乗算処理が、0を引数として指定すると0を返すのはおかしいです。どういうことかというと・・・
 足し算はインクリメント(1増加)を引数回数行う演算です。この時の0は引数がない状態だと考えられます。つまり・・・

inc() = 1、inc( inc() ) = 2。これを踏まえて、
add( inc( inc(), inc()  ) = 1という具合の演算子だと思われます。

という事は、mul( x, 0 ) = 0 というのはおかしいです。何故かって?加算処理では、引数がないときに、もう一つの指定されている値を返します。これにより、1対1対応が実現されています。という事は、乗算処理でも0を指定されたら違う引数の値を返さないと情報の整合性がありません。とはいえ・・・

 5 * 1 = 5、 5 * 0 = 5 となったら、2つの値が対応してしまうことになります。

 これはこれでおかしいのですが、だからといって「全部0にしちゃえ」というのは乱暴すぎます。だって、加算処理では0回処理しても違う引数の値を返しているのですから、初期値を変更しないという定義になります。それが、乗算処理になったからといって、加算処理を0回したら、初期値を忘れて全部0というのは、投げやりすぎませんか?
 多分職業病(システム屋病?)なのでしょうが、こういう定義は気持ちが悪くて仕方がありません。私ならば、数記号を増やして、符号付き数と同様の発想で・・・

 5 * 0 = *5、5 * 1 = 5、 5 / 0 = /5、*5 / 0  = 5 ・・・

という具合にします。その方が1対1対応になって、プログラミング的に美しいと思います。数学オブジェクトは、対称性にこそ、その美があるのですから、乗算ごときで美しさを放棄しないでほしいです。数学は一貫して、対称の美を守るべきだと私は思います。
 情報技術者から見たら、数学は「少数のオブジェクトを極める学問」です。その扱うオブジェクトの少なさ、シンプルさ、対称さ、明晰さ、といったものに心が惹かれるので、徹底的にやってほしいです。そういったことから、掛け算と割り算に拘らないで、一体どこに拘るんだと私は思います。数オブジェクトの2つのメソッドの仕様に問題があれば、数学全体の美しさも損なわれます。どうして数学者は気にしないんだろう・・・実に不思議です。おそらく、可換性と関係している思いますが、だからといって全て0は、やっぱり気持ちが悪いです。始めて算数を習った時から気になっていました。もし可換性の問題ならば、可換性も満たすような数記号を増やしたほうがいいと私は思うのです。
 私が日常的に考えているのは、こんな具合の事です。システム屋をしているからだと思うのですが、何でも分析して、プログラミング的に美しくしないと気がすみません。非技術者の人から「そんなこと気になる?」といわれますが、ものすごく気になります。何故かって?理由なんてありません。美しくないものは美しくないから気になる。ただ、それだけです。自然を見て、綺麗とか、汚いとか、そういったことを感じるのと同じ感覚です。それを言っても、わかってもらえないんだよね・・・

テーマ : 日記
ジャンル : 日記

プロフィール

インドリ

Author:インドリ
みなさん、はじめまして、
コンニチハ。

ボクは、無限の夢(infinity dream)を持つネタ好きな虹色の鳥インドリ(in dre)です。
色々な情報処理技術を啄ばむから楽しみにしてね。

http://twitter.com/indori
は別人による嫌がらせ行為です。
私とは関係ないので注意して下さい。
次はなりすましブログなどをするかもしれませんが、ここ以外でブログをするつもりがないので、ここ以外にインドリのブログがあったとしても無視してください。


何度言っても分からない人がいるので、ここにコメント欄へ書き込むときの注意事項を書きます。


一、社会人としてのマナーをわきまえましょう。
一、妄想に基づく書き込みを止めてください。
一、暴言の類は書かないで下さい。
一、某誹謗中傷サイトの書き込みは彼らの妄想に基づく書き込みですから無視して、ここへ書き込まないで下さい。
一、コメント書く前に他のコメントよく読んでから行って下さい。
一、言いがかかり等の行為を禁止します。
一、その他常識的に考えて迷惑なコメントはしないで下さい。


以上のルールを守れない人のコメントは削除します。



利用上の注意
ここに紹介してある文章およびプログラムコードは正確であるように心がけておりますが、内容を保証するものではありません。当サイトの内容によって生じた損害については、一切の責任を負いませんので御了承ください。


執筆したCodeZineの記事


【VB.NETで仮想CPUを作ろう】

  1. VB.NETで仮想CPUを作ろう
  2. レジスタの実装
  3. 仮想CPUのGUI化
  4. テストドライバの改良
  5. CPUの基礎動作の実装
  6. MOV命令の実装
  7. ADD命令実装
  8. SUB命令実装
  9. INC命令&DEC命令の実装と命令長
  10. MLU命令の実装とModR/Mについて
  11. DIV命令の実装とイベント設計について
  12. 機械語駆動式 関数電卓を作ろう!
  13. 機械語駆動式 関数電卓を作ろう! 解答編(前半)
  14. 機械語駆動式 関数電卓を作ろう! 解答編(後半)


【仮想ネットワーク実装でTCP/IPを学ぼう】
  1. TCP/IPの基礎と勘所
  2. ネットワークアクセス層の勘所
  3. インターネット層の勘所
  4. トランスポート層の勘所
  5. アプリケーション層の勘所
  6. セキュリティの基礎と仮想ネットワークの仕様
  7. GDI+と独自プロトコルの定義



【並列化】
インテル Parallel Studioを使って並列化プログラミングを試してみた
並列プログラミングの効率的なデバッグを実現する「Parallel Inspector」


【TBBシリーズ】
  1. インテル スレッディング・ビルディング・ブロックの概要
  2. インテルTBBから学ぶループの並列化
  3. スレッドセーフとインテルTBBのコンテナ
  4. インテルTBBのスレッドクラス


【OpenMPシリーズ】
  1. OpenMPの基礎構文
  2. OpenMPの実行時ライブラリと並列ループ
  3. OpenMPのメモリモデルとfork- joinモデル

最近の記事
最近のコメント
月別アーカイブ
カテゴリ
Ada (9)
COBOL (5)
C (9)
C++ (11)
C# (370)
D (25)
Java (8)
Perl (1)
Ruby (14)
PHP (2)
Boo (2)
Cobra (2)
LISP (6)
F# (33)
HTML (0)
XHTML (0)
CSS (0)
XML (0)
XSLT (0)
Scala (4)
WPF (0)
WF (2)
WCF (0)
LINQ (4)
MONO (5)
Linux (0)
MySQL (0)
ブログ内検索
リンク
最近のトラックバック
RSSフィード
ブロとも申請フォーム

この人とブロともになる

QRコード
FC2カウンター