雑記内検索 / 「統計で嘘をつく方法」で検索した結果
-
統計で嘘をつく方法
現在、報道・書籍・ネットなどメディアの充実により、情報だけは豊富に仕入れることができる時代となりました。 しかしながら、その情報も玉石混合といった感じなのは否めません。 転んでも泣かないためには、嘘を嘘と見抜ける能力が必要なわけです。 敵を知り己を知れば百戦して危うきなし。 そんなわけで、嘘をつかずに相手をだます方法をいくつか。 統計データで嘘をつく アンケートなどの統計結果の場合 該当アンケートの結果などを利用して嘘をつくのは常套手段です。 そのアンケート結果が信頼に値するかどうかは、ある程度以下で判断できます。 a.アンケート回答者が対象の事柄について十分な理解がある b.実施人数、有効回答数などが統計データとして十分である a.については、たとえば報道番組などで政治的なアンケートをとった場合、その対象となる政策について、その... -
メニュー
...優しいなんて大嘘 統計で嘘をつく方法 言葉について 言葉について 2 神が死んだということ 善悪の彼岸から、力への意思を目覚めさせるということ 本を読むということ 本を読むということ:2 絵を描く話 地図 地球儀 オカルトのお話 がんだむさん RPGソフトウェア 記紀神話の不思議 メニュー -
オブジェクト指向:2
グダグダ言っていてもしょうがないので、まじめにオブジェクト指向なお話。 オブジェクト指向の使いどころと学び方について。 オブジェクト指向とは、従来の構造化言語(C言語など)と異なって、「オブジェクト」という単位で考えよう、ということだ。 なんて簡単に済ませてしまうと怒られそう。。 でも、オブジェクト指向の話なんて、本屋に言ったらいっぱいあるから、あえてここで私が述べる必要のあることってあまりない。ほんとに。 ただ、「オブジェクト指向」というパラダイムと「オブジェクト指向言語」と「UML」は、区別したほうがいいと思う。どうも、ごっちゃになっている(あるいは故意にごっちゃにしている)本が多いような。。 前にも書いたけど、C言語でだってアセンブラでだってオブジェクト指向なプログラミングはできる。 JavaやC++は、オブジェクト指向でプロ... -
本を読むということ:2
本の読み方(特に技術書)について。 技術書(たとえばプログラミング本)を読むときは、たいてい技術を身につけるために読むわけですが。 漫然と読んでいても、やっぱり頭には入りません。やっぱり、読む「コツ」ってあると思うんです。 それは人それぞれだと思いますが、私の場合の話。 私の場合は、わかるかわからないかにかかわらず、とりあえず一気に最後まで目を通してしまいます。途中でわからないことがあっても、戻って見直したりはあまりしません。 とりあえず最後まで目を通してしまうことで、全体の雰囲気というか、つかみ所をつかんでしまうことができます。その後で理解が不十分だと感じたならば、再びその該当部分だけ読み直します。 こうすることで、最初に読んでわからなかった箇所も、割とすんなり理解できるようになることが多いです。 これは、本を書いている人は「わか... -
拡張性
プログラムって言うのは、現在実現しようとしている機能のみ実現できてしまえばいい、というものではないと思っている。 個人の趣味でやっている場合でも、後から機能を追加したくなったりすることはあるし、しばらくたってから自分のプログラムを見直すこともあるだろう。使ってるうちにバグを発見したりもするだろうし。 その為にも、何度も書いているけど、将来のメンテナンスと拡張性を考慮したつくりにするべきだ、と私は考えている。 ひとつは、可読性をよくすること。 ざっくりといくけど、 ①コーディングスタイルの統一 ②変数の命名方法の統一 ③コメントの充実 ④機能・処理ごとに関数を分ける ⑤即値を避け、極力定数を宣言する などがある。(他にもあるだろうけど) ①~③は今まで何度か書いているのでそちら参照 ④は異存のある方もいるかもしれない。関数呼び出... -
かっこつける話
C言語は、やたらと括弧を使う。 関数だけでなく、マクロにも、演算子にも、キーワードにも。 特に紛らわしいのは、演算子とキーワード。 sizeof()が、関数だと思って(あるいはそんなことすら考えずに)使ってる人、結構いる。 これは、演算子であって、+とか-とかと同じモノなのだ。 したがって、sizeof()でサイズを取得する処理は、基本的にコンパイラが行う。このレベルで行うからこそ、配列のサイズなんてものが取得できるのだ。前にも書いたように、C言語は「先っぽ」しか知らないのだから。 unsigned char ucaHoge[100] unsigned char* ucpPiyo = malloc((size_t)100); と宣言したとき、どちらも100バイトの領域の「先っぽ」をさしている。 決定的に違うのはucaHogeは1... -
もっと手を抜こう
作業対象のソースコードの解析を行っていたわけですが。 とりあえず、一通りの処理の流れは把握できたように思います。 doxygenのおかげでクラスの継承関係は把握できたので、流れは追いやすかったです。あとは、制御対象機器周りの細かい機器依存部のみ。 週明け月曜日にはなんとか、実務レベルの把握ができると思います。 ・・・正直、かなりほっとしているわけですが(笑) C++についてもだいぶ慣れてきました。 長らくC言語しかやってなかったから、それが一番しんどかったかも(笑) ソースの書き方もそうだけど、ソースの解析手法もC言語とC++では、効率のいいやり方はだいぶ違うと思います。 C言語の場合は関数単位で見ていけばいいので、特に気をつけるべきことはあまりないように思います。関数名もプロジェクト内でユニークなものなので、grepかけたら終わりで... -
100 × 200 =32?:変数のオーバーフローの話
変数には「型」があります。 この「型」って言うのは何なのかというと、 主に値を格納できるサイズの違いです。 C言語の場合、整数型の変数の型としては char、int、short int、long int、long long int がありますね。 (実数型も入れたらdouble、floatなどもありますが) それぞれ、1byte、2byte、4byte、8byteの領域を持っています。 1byteは8bitでした。なので、1byteで256通りの状態を表せるのでした。 ということは、 2byteなら256×256通り、 4byteなら256の4乗通り、 8byteなら256の8乗通りの状態が表せるわけです。 これは逆に言うと、ある型で表せる範囲が限定されているということでもあります。 u... -
言葉について
言葉のもつ力について:1 旧約聖書の記述では「『光あれ。』すると光があった。」 ヨハネによる福音書の冒頭では、「はじめに言葉ありき。言葉は神なり。」 などなど。それ以外にも言葉の持つマナ(魔力)についての考え方はさまざまな文献に見られる。 日本でも「言霊」などという考え方がある。 人間はものを考えるとき、「言葉」を使って考える。人間が世界を理解するためには言葉が必要不可欠だ。 「言葉」は人間が世界を切り取るための武器である。 プラトンが言った「イデア」とは言葉そのものであると考えることもできるだろう。 形のないもの、たとえば「人間」「男」「女」。 世の中誰一人として同じ人間などいない。ということは、これが「人間」という標準が存在しないにもかかわらず、私たちは「人間」という言葉を理解できる(あるいは理解できていると思っている)。「男」「女」など... -
かっこつける話2
C言語の、式の中の括弧は演算の優先順位を決定することができる。 ここらへんは、まあ、通常の算数なんかの式と同じ。 C言語には演算子の優先順位というものがある。 しかし、それに依存した書き方は、とても不親切で、ソースを読みにくくする要因となる。 例えば、if(A == B = C)なんて書くと、とても見にくい。 「BにCを代入して、Aと比較」なんだから、if(A == (B = C))と書くべきだ。 それこそ、かっこつけて「俺は演算子の優先順位なんて頭にはいっちゃってるから」なんて、括弧をつけないでコーディングしちゃうと後でそれを見直す自分も、後でそれをメンテする人も困ることになる。 だいたい、最近のコンパイラはちゃんとANSIなりISOなりに準拠しているけど、ちょっと前のコンパイラなんて「処理系依存」が当たり前にはびこっていた。当然、演算子の優先... -
タイミングの話
というわけで(どういうわけだか)タイミングの話。 趣味などで一人でプログラミングしていたりすると、なかなか判りづらいかも知れない。 マルチスレッドあるいはマルチタスク環境においてプログラミングする場合、同時並行的にいくつもの処理が走るため、同期というものに気を使う必要性が出てくる。 特に、システムの起動と終了のタイミングはシビア。 例えばファイル管理タスクが先に落ちた後で他のタスクがファイルを読み書きしたいと思うと、そこで処理ができなくてフリーズする。通信タスクが初期化完了する前に通信を行おうと思うと待たされ、その間他のタスクやシステムへの応答ができなくなる。 Windowsみたいにマウスが砂時計になっても許してもらえる環境ならそれでもいい(でもできたらやめてほしい・・・)けど、組み込みの場合はかなり致命傷である。家電で、「しばらくお待ちください」な... -
地球儀
今日、100円ショップで、地球儀を見かけた。おもわず買ってしまった。 手のひらサイズの、小さな地球儀。 地図も好きだが、地球儀はもっと好きだ。 メルカトル図法の世界地図だと、南北の極に近づくにつれてゆがみがでてしまう。 その点、地球儀ならほぼ正確な面積や位置関係をつかむことが出来る。国際線の飛行機がなぜ北まわりに迂回したような航路を取るのか、地球儀を見れば一発だ。 そもそもなぜ、地球は丸いのか? 物質は一定の質量を持つようになると、自分自身によって自分自身を引っ張った結果、もっとも表面積の小さい状態をとろうとする。 したがって、例えば今地球と同じくらいの大きさの惑星を持ってきて地球とくっつけたとしても、団子を二つ重ねたような姿にはならない。それぞれの星がお互いの重力によって崩壊して、徐々に大きなひとつの球体を形づくるのである。 地球... -
地図
私が小学生のころ(もう何年前か、何年生のときかも思い出せないけど)、新学期に教科書と一緒に地図帳をもらいました。 最初は、地図を見ているだけでわくわくしました。地図帳は最初に日本の詳細な地図、後半に世界の各地の地図、そして最後の見開きに全体の世界地図が載っていました。 私はまず、自分の住んでいるあたりの地図、そしてそこが日本のどのあたりか、最後にそれが世界全体のどこらあたりかを、確認しました。 順に追っていくことで、世界、というものがいかに広いのか、目も眩むような思いでした。 想像もできないくらい、世界は広いと思ったのを覚えています。 地理は苦手で、産業がどうだとか工場ベルトがなんだとか、そういうのはてんで苦手だったのですが、地図を眺めるのは大好きでした。 そのうち、私は地図に私だけの世界を書き加えるようになりました。 今の地図帳はわから... -
プログラムを学ぶということの補足
素朴に、疑問に思うことがあるわけです。 私は大学も文系で、大学で手からもおよそ技術とはかけ離れた仕事に従事していたりしました。 偉そうかつ生意気な言い方になってしまうでしょうが、そんな私ですら、とりあえず今まで日記と称して垂れ流してきたあたりの知識は身につくわけです。 実際、業務としてC言語を扱うようになってから1年もたってないです。 その前にOS無し8bitマイコン&アセンブラで基礎的なことはひととおり実装を経験しているのですが。 でも、それを入れてもほぼ1年と2ヶ月。それだけの期間があれば、単純にC言語の文法がどうとかいうレベルではなくて、実際にマシン語に落ちたときにどうなるか、なんてこともある程度まともに理解できるということです。 やっぱり偉そうかつ生意気な言い方に聞こえてしまうんでしょうが、私の言いたいのは「だから私は賢い... -
ジ・オリジン:補足
どうしても、C言語で1オリジンがいいんだよぅ、というわがままなあなたに。 C言語で配列を1オリジンで扱う方法も、なくもない。 【具体例1】 unsigned char hoge[100]; unsigned char* hoge2; hoge2 = hoge[-1]; こうすればhoge2を1~100でアクセスできる。 【具体例2】 #define ORIGIN_1((array),(num)) array[num-1] これで、 unsigned char hoge[100]; があったとして、 ORIGIN_1(hoge, 1) などとすれば、やはり1~100でアクセスできる。 【具体例3】 #define ORIGIN_1(num) (num-1) これで、 unsigned ch... -
Cという言語:2
C言語という言語はやっかいである。 コンピュータの発展に伴って言語仕様にさまざまなつぎはぎがされて統一感ないし。 そもそも、C言語の標準規格といわれるANSIに完全に準拠したコンパイラが存在しない!少なくとも新ANSI C言語辞典(技術評論社)がでた時点ではそうだったと書いてある。 実に困った言語なのである。 大体*という演算子だってややこしい。 宣言するときは int *hoge; とポインタであると宣言するために使うくせに、中身にアクセスするときにも i = *hoge; なんて使うし。 変数のアドレスを取得するときは piyo = piyo; だし。 統一感、ないっすよねえ。 returnだって、(今の仕様では)括弧つけてもつけなくてもいいし。 NULLなんていうのもそう。 たい... -
staticな話
C言語にはstaticという修飾子がある。 これって結構便利な修飾子なんだけど、つかう場面によってすこしずつ意味合いが異なるのがいやらしい気がする。 ①ローカル変数の場合 これはもちろん、静的確保を意味する。関数を抜けても領域がキープされ、次回関数突入時には前回の値が残っている。 int Hoge(void) { static int i; i++; return i; } という関数があったとすると、この関数をコールするたびにiの値はひとつずつインクリメントされることになる。 まあ、常識?? ②グローバル変数の場合 この場合は上とちょっと意味合いが異なってくる。 例えば static int g_iHoge; と宣言したグローバル変数を参照したり変更したりできるのは同一ファイルスコープ内に限られる。 ③関数の場合 例え... -
コンパイルの話5:マシン語に落ちるということ3:変数とスタック
C言語では、関数外にグロ-バル変数、関数内にローカル変数を宣言して使用することができます。 また、それらの変数の宣言の際に、staticやconstといった修飾子をつけることができます。 これはC言語にかぎらず、C言語以降の高級言語といわれているものではほとんど実装されている機能です。 これらは、コンパイルされた実行ファイル(マシン語に落とされた状態)ではどのような扱いになっているのでしょうか。 グローバルな変数は、関数にかかわらずそのプログラムが実行されている間はその領域に変更がないため、「ヒープエリア」と呼ばれる領域に確保されます。 コンパイラの実装やOSなどの処理系にも依存しますが、プログラムが実行される時に領域が確保されるわけです。 ローカル変数でstaticをつけて宣言した場合も、グローバル変数と同じ領域に確保されます。この場合もその領... -
「何もしない」 != 「無駄」
たいていのCPUには、「何もしない」ための命令が実装されています。 「No OPeration」ということで通常NOP命令などと言われます。マシン語としてはだいたい0x00h、アセンブラとしてはNOPであらわされることが多いようです。 この命令は、ほんとに何もしないで、実行ファイルのバイナリ領域と実行時のマシンサイクルタイムを消費するだけです。 なぜ、こんな命令が、しかもほとんどのCPUに実装されているのでしょうか? CPUは、通常単体では意味を成しません。基盤にCPUをおいてVccとGNDをつないでも、それはまったく意味が無いただのオブジェにしかなりません。 したがって必然的に、CPUの周りにはさまざまな周辺回路が接続されることになります。 そういったさまざまな周辺回路とCPUの間でデータや制御命令をやり取りすると言うことは、基板上で通信を行っていると言... -
オブジェクト指向1
オブジェクト指向、というプログラミングパラダイムが現れて久しいわけですが、いまだに「オブジェクト指向」って根付いていない気がするんですよね。 JavaやC++/C#が使えたらオブジェクト指向でプログラミング出来ているか、というとそうでもないし。それらの言語はオブジェクト指向な「書き方が出来る」言語であって、それらを使えば自動的にオブジェクト指向のプログラミングが出来るわけではないし、逆にC言語やアセンブラではオブジェクト指向プログラミングが出来ないかといわれると、そうでもないと思うのです。 「オブジェクト指向」とは、あくまで、プログラミングパラダイムの一種だ、ということです。 オブジェクト指向というのがどういう考え方か、なんていうのは世にいろんな本が出ているわけで、いまさらここで私が述べるべきことってないと思います。ただ私がひとつだけいえるのはあくまでそれはプログラ... -
コンパイルの話
C言語っていうのは、そのままでは実行することはできない。「コンパイル」という作業が最低限必要である。コンピュータにはテキストで書かれたソースファイルの意味はわからないからだ。 「コンパイル」という作業で行われることは、 ①ソースファイルの解析 ②処理の最適化 ③ターゲットのマシン語命令への変換 が行われる。 注意が必要なのは、処理の最適化が行われることによって、C言語の時点でプログラマが思っているのとは違うコードが吐き出される可能性があるということだ。 例えば、staticなどの宣言をつけてスコープを同一ソースファイル内に限定した関数が、一箇所でしかコールされていない場合にはサブルーチンに分けず呼び出し元に展開したりとか、ループ内での定数同士の演算はループの外に出したりとか。 ただし、このあたりの処理はコンパイラに依存するのでそれを期待しすぎるのは良... -
リテラル
てなわけで文字列の話。 文字列リテラルは、静的かつconstな配列として確保されるということを前に書いた。 具体的には、以下のようなコードがあったとすると printf("AAA"); printf("BBB"); printf("CCC"); メモリ上の該当箇所をバイナリで見ると 41 41 41 00 42 42 42 00 43 43 43 00(←もちろんヘキサ) という風に確保される。 ということは、 char cHoge[10]; memcpy(cHoge, "AAA", sizeof(cHoge)); printf("BBB"); printf("CCC"); というコードを実行するとcHogeには ... -
ソースファイルの話
ちいさなプログラムを書いているときには気にもならないし特に問題にもならないけど、だんだんプログラムが大きくなってくるとソースファイルを分割する、ということを行うと思います。 その際に、ただ単純に分ければいい、というものではないことはまあ誰でもわかると思うんです。だいたいは、機能別(C++なんかではクラス単位)に、わけるんじゃないでしょうか? 例えばあるプログラムにファイル処理を行う関数郡と画面の入出力を行う関数郡があったばあい、ソースファイルは 【プログラムのメイン処理を記述したソースファイル】 【ファイル処理用のソースファイル】 【画面の入出力用のソースファイル】 ぐらいに分割すると思います。 その際に、例えばファイルの処理にしてもソースファイル内でサブ関数的な使い方をする関数とメインの処理などからコールされる関数の2種類があるわけです。 ここまで... -
低級品
「高級言語」「低級言語」という言葉があります。 一般にアセンブラ、マシン語などが「低級」とよばれ、コンパイラを使用する言語が「高級」と呼ばれます。 最近では、Javaなどの抽象度の高い言語が「高級」でC言語などは「低級」扱いされることも多いようです。 ちょっと、誤解を招く言葉だと思います。 プログラムの世界で「高級」というのは、「レイヤ(層)が上位にある」という意味です。 「高級言語」とは、 ・人間にとってわかりやすい ・CPUに依存した処理を書かなくてよい ・メモリ制御、IO制御等CPUレベルの操作を意識しなくてよい また「低級言語」とは ・コンピュータにとってわかりやすい(機械語とのセマンティクスギャップが少ない) ・プラットフォーム(CPU)に特有の処理が書ける ・メモリ操作、IO制御等CPUレベルの操作ができる と... -
お勉強
勉強って言う言葉は嫌いな言葉でもあり、好きな言葉でもある。 正確に言うと、学生時代のような「勉強」は嫌いだが自発的にするそれは嫌いではない。かつ、その意味で使われるそれは、言葉としては好きである。 ・・・ややこしい? とにかく、「お勉強」のお話。 今日職場の女の子(実装組ではない)が「C言語を勉強したい」と言ってきた。それがきっかけでちょっと、プログラムの「お勉強」というものについて思ったこと。 プログラムができるようになるための学習って、最初の手順が難しいんじゃないかな、と思う。その理由は前に述べたように、例えばC言語ができればプログラミングができるようになるわけではないからだ。 かといって、なにがしかの言語なりが使えない状態でプログラムの勉強をできるわけではないので、まずC言語ならC言語の文法を知った上でロジックなりアルゴリズムなりの学習... -
VisualStudio2005
話題の(?)Microsoft Visual Studio 2005のExpress Editonを入れてみました。年末に何やってんだか俺orz とりあえず、Visual C++ 2005のExpress Editionから入れてみて使ってみたんですが、これでタダなんだからいい世の中になりました。ホント。 同じものが書籍つきだと4,800円だけど、ネットにいくらでも使い方あるわけで。 ・・・isoイメージのダウンロードに死ぬほど時間がかかったけど・・・。 使ってみた感想としては、まずPlatformSDKが入っていないのが気に入らない。別途ダウンロードしてインストールして、VC2005の設定をいじってやる必要があるのが、面倒。他のEditionでは入ってるみたいだけど、 まあタダなので善し。 それにしてもVC2005の公式サイトの説明がうそば... -
戦争の防ぎ方に対する一考察
友人nishy氏が「戦争」というものについて書いていたので、それに対する返答ではないのですが、まじめに自分の意見を述べておきたいテーマだなと思ったので。。。 戦争というものについて。友人のblogに対する、私の回答というか、意見として、ここに述べておこうと思う。 戦争とは、その行為そのものを論ずる場合と、その思想を論ずる場合で論点が異なると思う。 まず、行為としての戦争とは何か。 第一にいえるのは、究極の消費経済であるということである。 戦争は、生産を伴わず、延々と消費のみを続ける。経済活動として、活発ではあるが、非常にゆがんだ形態であるといえる。生産を伴わない以上、物的にも人的にも経済を疲弊させる。負ければもちろん全てを失うが、勝ったとしても無傷というわけにはいかない。 それなのになぜ戦争を行うのか、というと、思想としての戦争、ということが... -
数値 - 危険物取り扱い注意
コンピュータの中では、数値はすべて2進数で表されるのでした。 そして、負数は最上位bitがOnとなった、2の補数表記で表されるのでした。 では、例えば signed char c; signed int i; c = -1;/* 0xff */ i = c; のようなコードを書いた場合、どうなるのでしょう。 32bit環境ならば、当然intは32bitです。残りの24bitはどうやって埋めるのでしょう? この場合、「符号拡張」が起こります。符号付(signed)な値の場合、より大きな型に代入する際には上位24bit分には代入する数値の符号で埋められます。上の例だと、-1は0xffとなり、符合は1です。したがって、上位24bitが1で埋められ、0xffffffffとなるわけです。 これは32bitの場合での2の補数表記となっており、辻褄が... -
Do It Yourself!
開発の仕事をしている人でも、そうでない人でも、プログラミングを趣味として行っている人がいます。私もそうだけど。。 仕事でもないのにわざわざ勉強して、楽しいか、と言われると、これが楽しい。 プログラムって、動くんですよね。当たり前なんですが。自分が作ったものが、動く。工作の延長としての、楽しさがあると思います。 また、同じ動きを実現するにも、実にいろいろな方法があります。それがパズルを解くようで、わりと熱中してしまいます。 悩んだ末に問題が解決して、見事目的の動作を達成したときの快感は、ちょっと他では味わえないかもしれません。 しかも、比較的安価な趣味でもありますし(笑)BCCやGCCなんてただで手に入っちゃう。 普段何気なく使っているWindowsのプログラムなんかも、プログラミングの勉強をしてみるとどうやって機能を実現しているかがわかってくるのも... -
コンパイラはそもそも何をやってくれるのか??
C言語などのプログラミングにおいては、「コンパイル」という作業をすることで実行可能なバイナリを生成します。 これをしないと、いくらすばらしいコードを書いたとしても、それは単なるテキストファイルでしかありません。 では、このコンパイルを行ってくれる「コンパイラ」って、正味な話何をやってくれてるんでしょうか?? われわれプログラマがコンパイラに期待していることは、 ①何よりもまず実行可能なバイナリを吐くこと ②できたら「最適化」を行ってより効率のいい処理に置き換えてくれること でしょう。 ②については、以前にも書いてあるのでここでは割愛。 ①について、テキストファイルを読み込んで、それを実行可能なバイナリに変換するには、いったいどういう手順が行われているのかを、ここでは書きたいと思います。 プログラマから「コンパイルしてよ!」と指示を受... -
小数の扱いについて
さて、コンピュータでの数値の取り扱いと計算についての注意点をいくつか書いてきたわけですが。 これまでに述べてきた以外にもいくつか、注意しなくてはいけない問題があります。 C言語における変数の型として、まだ述べていないものに [float][double] があります。 これらは【実数型】などと呼ばれ、浮動小数点数を格納できます。 これらの不動小数点数を扱う上で注意しなくてはいけないのは、浮動小数点演算には誤差がつき物である、ということです。 不動小数点数についての詳しい説明は省きますが、 例えば、浮動小数点では「0.1」を正確に表現できません。 コンピュータの内部ではこれまで書いてきたように2進数で数値を表現しています。それは、たとえ浮動少数点数であろうと例外ではありません。 したがって、内部的にはbitの並びでしかない... -
神が死んだということ
哲学者ニーチェの『ツアラトゥストラかく語りき』冒頭にて「神は死んだ」と語られる。 神が死んだというのはどういうことか? 「神」という概念は、人間によって生み出されたものである。 それは最初自然現象や民族の成り立ちを説明付けるために考え出され、のちには政治的な権威や道徳の基準として発展していった。 しかし、「科学」の進歩に伴って「神話」ではなく「科学」によって自然が説明付けられ始めることによって、神話によって同時に説明されていた「道徳」もまた、そこで衰退していくことになる。 「神」という、「基準」が我々のなかから死んだのである。 われわれは、「なぜ人を殺しては行けないのか」という問いに客観的な根拠を持って答えなくてはならなくなったのだ。 あるいは「法律で決まっているから」と答える人もいるだろう。「自分がされたら嫌なことは人にもしてはいけないか... -
2進法の話
両手で1000まで数えられますか? 正確には0から1023まで。 知っている人には、簡単な問題ですが・・・。 両手をグーにします。これが、「0」の状態。 右手の親指を立てます。これが「1」の状態。 右手の人差し指を立て、親指は戻します。これが、「2」の状態。 つまり、2進法で数えれば、2の10乗、つまり1024通りの状態を表すことができるわけです。 そんなわけで、2進法の話。 コンピュータはご存知のとおり、内部的に2進法で数値を表現しています。なんていうと難しそうですが、単純にスイッチのOn/Offの状態でしかありません。 直流で電圧が5ないしは3.3Vの時が「1」、0Vの時が「0」というわけです。 したがって、つい今しがた述べた表現は正確ではありません。 実際には「2進法でしか数値を表現できない」というのが... - @wiki全体から「統計で嘘をつく方法」で調べる