はてなキーワード: 数学的帰納法とは
数学では完全無欠であることが理想とされ、完全無欠なものの一番初等的なのは円であるけれども、その円のように使用できる様々な完全無欠と考えられるものが存在する。
ところでそんなことはどうでもよくてここで、現在の問題を解くときに、何を用いたらよいのか?帰納法はなぜ円のように使用できるのか疑問なしとしない、しかしinductionが円のように
使用できることは間違いないことである。ところが民事訴訟法などと呼ばれる、法と呼ばれるものが、全て、このように高度な知能指数がないと理解できないようなものであるかというと
悪質すぎてまだ解明されていない。なぜなら誰も教えていないし理解しようがないからである。数学的帰納法とひとくちにいっても練習問題のように円ではないものがあることは誰でも理解できる
だろう。しかし、民事訴訟法は社会に出てからは円であるのかというと分からないという他ない。a,b,cの直角三角形に対して、a+bの正方形の中に一辺がcの正方形が与えられることに関しても
Steamで買った『Recursed』というゲームを全ステージクリアしたので、記念に感想を書く。
Steam:Recursed
https://store.steampowered.com/app/497780/Recursed/?l=japanese
一見すると『Recursed』は2Dのレトロな雰囲気のアクションゲームである。操作はシンプルで、方向キーで左右に移動し、アクションはジャンプと物をつかむ/投げるだけだからだ。部屋の中を移動してブロックをつかんで足場を作ったり、鍵をつかんで扉を開錠したりしてゴールへと到着(crystalを獲得)すればステージクリアだ。
ステージの始めはチュートリアルの様に簡単だが、ステージを経るごとに難しくなり、そのうち何度も試行錯誤したり難しさのあまり何十分も頭を抱えたりもした。
この複雑さを生み出す要因は箱(ゲーム中表記ではChest)である。このゲームでは箱の中へジャンプすることで部屋の内に入れるが、一度箱の外にでると箱の内部状態はリセットされてしまうのだ。よって箱の中にブロックや鍵などのオブジェクトを持ち込んでも保存することはできないし、ブロックの位置もリセットされるし、開錠した扉もまた施錠されてしまうことになる。
さらに大きな特徴として、箱を持ち歩いて移動することができるのだ。それにより、箱を持ったまま別の箱に入ったり箱を持って箱の外にでることもできる。
そして、ステージを経ると箱の中の部屋は箱の外と同じ部屋という場面に出くわす。Recursedは『再帰呼び出し』という意味らしいが、まさにこのゲームのタイトル通りの現象が起こるのだ。そして、以降のステージでは再帰を交えることでパズルの複雑さはより深まっていく。
再帰は数学的帰納法やアルゴリズムでは定番の概念だが、それがパズルとなってプレイヤーの思考回路を奪ってくる。私はかつて社畜プログラマとしてJavaプログラミングを経験していたので、箱に入ることはメソッドを呼び出すことの様に感じた。オブジェクトを持って箱に入ることは引数を使ってメソッドを実行することであり、オブジェクトを持って箱の外に出ることはreturn文でメソッドを終わらせることであった。
「ゴール前の段差が大きくブロックが必要だから、ブロック生成メソッドを呼び出してブロックオブジェクトを返り値として渡さなくてはいけないけど、そうすると鍵オブジェクトをゴールメソッドの引数として渡すことができなくて……、いっそのこと、ブロックメソッド内からゴールメソッドを呼び出すべきか……、メソッドの返り値は一つだけだが何度も呼び出せばいけるか? この緑色のオーラはなんだ? Staticを意味するのか? Staticなオブジェクトの位置情報をあらかじめ変更しておけば、ゴールメソッドで引数渡しをする必要がなくなるのか?」
こんなことを一つのステージをクリアするだけのために何十分も考えていたのだ。念のために書いておくが、ゲーム内には数学用語やプログラミング用語は一切出てこない。ただ単に、私にJavaプログラミングの経験があるからその用語でパズルを考えていただけだ。ゲーム内で箱から出入りしたりオブジェクトを箱の中から出し入れするとどうなるかを、Eclipseでステップ実行するように想起していた。ちなみに、ゲーム内で存在しない部屋や壁の中に移動しようとするとparadoxが発生して強制的に特殊な部屋へ移動されるが、私はその度にステップ実行でExceptionに遷移されたことの様に感じた。他の言語に精通するプログラマだったり数学畑の人ならば、私とは異なる概念でパズルを思考をするのだろうか。
プログラマを辞めて何年もプログラミング的思考をしてこなかった私でも全ステージクリアすることができたのだから、学校でプログラムを学んでいたり現役でプログラミングをしてきた人ならばこのゲーム『Recursed』をクリアすることは可能だろう。いっそのこと、『Recursed』のクリアすらできない人にプログラミングができるのか? と煽ってみたいくらいだ。
ちなみに、もし私が社畜プログラマ時代にこのゲームをやったらブチ切れていただろう。なんで仕事でプログラミングで脳を酷使した上に自宅のゲームでも同じようなプログラム的な思考をしなければならないんだよと。プログラミングから何年も離れていた今の私にとって『Recursed』は、プログラミングや単体テストが無事成功した時の快楽を思い出させるものだった。
『Recursed』はパズルとしての難易度は非常に高いが、理不尽な解法を求められることはない。理不尽な解法のクイズやパズルには怒りが湧いてくる。ひと昔前のクイズ番組を見たことのある人なら『モヤッとボール』を投げつけたくなる、と言えばその感情が伝わるだろう。『Recursed』はどんなに難しいステージでも、ただただ開発者のパズル作成能力に感嘆するだけで怒りは湧いてこない。
似たようなアクション風パズルゲームとして有名なのは『The Witness』であろう。『The Witness』も私が好きなパズルゲームであり、ゲームとして高い評価を得ていることに間違いはないのだが、しばしば理不尽な解法を求められるパズルがありその度に私は怒りが湧いてきたものだ。そう考えると、『Recursed』はパズルとしての洗練さだけなら『The Witness』を超えるものだと私は思う。
具体的にパズルを解説するととただのネタバレになってしまうので(もっとも、文字だけでパズルの解法を説明できないのだが)、『Recursed』で私が好きなステージを述べる。順番は攻略順に並べた。
チュートリアルの様に簡単だったこれまでのステージから突如再帰の概念を見せつけられることで、このゲームのタイトル名の意味を理解することになった。
鍵を手に入れたら扉に到達できず、先に扉に到達したら鍵が手に入らずで、まさにインターロックの名前に相応しいステージだった。
一画面だけのオブジェクトが少ないシンプルなステージだが、氷の壁に阻まれてゴールできず苦戦した。試行錯誤の繰り返しの末クリアできたが、何故クリアできたのかがわからない。
The Voidのステージはどれもこれまでの集大成という感じでやりごたえあったが、中でも頭をひねらせたのがこれ。ゴールの部屋を水没させたり水の無い状態で入ったりして鍵を運搬するのに苦労した。
箱を左右へ投げて移動を繰り返して、高い位置にあるゴールを目指すのがまさにEscalateというステージ名そのものだった。paradoxを発生した後のパターンが複雑だったのが印象に残っている。paradoxを発生させたらcrystal獲得(通常のクリア)できないのかよ……という落胆は大きかった。しかし、それだけにcrystal獲得とdiamond獲得(paradox発生によるクリア)のどちらも大きな達成感を得られた。
簡単そうに見えて難しく、唯一ステージを飛ばして次のステージへと進んだので印象に残っている。後に複数日に及ぶ数時間の試行錯誤で改めてこのステージをクリアができて、クリアにかかった時間が最も長くなったステージでもある。しかしながら、おそらく開発者の想定外の方法でのクリアであり。初期画面から右の方へ一切行かずにOobleckさえ使用しないというクリア方法にスッキリしなかった。といっても、開発者の想定を無視するゴリ押し的なクリアを見つけたのはこのステージだけだった。
The Void/Escalateと似たコンセプトのステージだが、釜(JavaにおけるThread?)のギミックを利用したより複雑な構成となっている。高い位置にあるゴールを目指すのは、やはりFlightというステージ名そのものだった。
この記事を投稿する前にエンディングを見れていないことに気づいた。
全ステージクリア(全てのCrystal取得)したからと、この記事を執筆するためにネタバレを気にせず攻略情報を調べていたけど、エンディングなんてわかる訳ねえよ。The Void/Trilemmaの最後にCrystal取得とは関係ない意味深なオブジェクトがあることには気づいていたけど……。ちなみに、私のSteam実績によるとdiamondとrubieの全取得はできてないけれども、もう取得する気力はない。パズルゲームガチ勢にとっては、実績全解除を目指さない私は軟弱者に映るのだろうか? 攻略を調べずに実績全解除できる人は、高い論理的思考能力を有しているに違いない。
この話に関する最も愚かで、最も多い人種の説明は、全単射だのヒルベルトホテルだのを持ち出して的外れな解説をした挙げ句、「人間の感覚が裏切られる数の性質のひとつ」などとのたまうアレである。本質をまるで理解せず、明らかな矛盾や自らの違和感を深く追求することもせず、権威を前に思考停止して、自分よりは深くものを考えている人たちが納得できずにいるのを見て優越感に浸る真性のゴミカスである。
頭の働く人であれば、無限集合の「大きさ」の定義は一般的な定義とは違っており、表題のような混乱を招かないため新たに「濃度」という語が定義されている、ということを明言するだろう。この話ではそもそも言葉の定義が知識と違うのだから齟齬が生じるのは当然だ。この再定義を経ずに表題の結論に至るとしたら、間違っているのはそちらの方だと言ってもいい。受験レベルの数学的帰納法でも偶数が自然数より少ないことは証明できるだろう。これが感覚であるなどと、よくもまあ言い張ったものである。
参考までに、次のロジックなら誰もが納得できるだろう。『2つの無限集合において集合の全ての要素が1対1で対応するとき、「2つの集合は大きさ(濃度)が同じである」と言う。無限集合A={1,2,3,...,n,...}と無限集合B={2,4,6,...,2n,...}は各要素が1対1で対応するため大きさ(濃度)が同じである』。これは数学的にも直感的にも何ら欠陥の無いロジックだ。
さて、定義を改めればひとまず納得することはできる。だが逆に言えば、一般の定義で見た場合に明らかな誤謬が生じているという事実は残っている。集合の要素が1対1で対応するのであれば同じ大きさである、というのは一般的にも間違いなさそうに見えるからだ。真理を冒している論理の誤りがどこにあるのかを明らかにしてこそ、この問題を十分に考え抜いて理解したのだと言えよう。
違和感がどこにあるかは、おそらく誰もが直感的に分かっている所だろう。すなわち、仮に集合Aを100までに限ると、集合Bは200までの偶数となる。一方では100を上限としながら、もう一方では102~200までを考慮してもいいのだろうか。普通、自然数と偶数と言われてこのような解釈をすることはまずありえない。この矛盾感が、無限集合という言葉を盾にされても看過しがたいものに思えているのではないだろうか。その直感は何も間違っていない。それこそが核心である。何故なら「正の偶数は自然数に含まれなけれなければならない」からだ。要素を1対1で対応させようとすれば集合Bは必ず集合Aに無い要素を含む。そのため自然数に含まれるという本来の定義を満たすことができない。集合A={1,2,3,...,n,...}を自然数、集合B={2,4,6,...,2n,...}を正の偶数の集合、とすることは各々では正しくとも、偶数の定義に自然数が関わる以上は両者の定義上の関係性を改めて保証する必要が生じていたのだ。かくして表題のような誤謬が生じたわけである。
オタクがよく使う言葉に、n番煎じという言葉がある。「n番煎じですが、書きたかったので書きました!」といったような感じで、おもにネタかぶりへの配慮を兵源するのに使われる。これは「二番煎じ」から派生したスラングで、「何番目かすらわかんないくらいとにかく大きな数字」として「n」が使われている。ここからさらに派生して、「n」という言葉は「とにかく大きな数字」として使われている。「キンプリが好きすぎてn回も見たわ」「わらびもち旨すぎ。n個食べたい」のような感じ。
私見だが、この「n」というのは、たぶん高校で習う数学的帰納法のイメージからきてるんじゃないかなと思う。1、2、3、………n……というような表現をよくやるので「n」というのが「漠然と大きめの数字」として共有されたんだと思う。ここまで読んで変なのと思った人は多いと思うが、元ネタ?の「n」は任意の数であって任意の大きな数字ではない。だからなんか、「n番煎じ」「n回も」というスラングを見るたび、なんだか居心地の悪さを感じている。
「〜したい人生だった」
という言葉はオタクの皆さんなら1度は耳にした事があるだろう。
これについてよく言われることといえば、
「やりたいと思った事はその時点で行動まで完了しているから、後回しに出来るって事はあまりやりたくないのでは?」論である。ちなみに私も支持している。
これについてのありがちな答えが「いや、明日やるかもしれないし」的なやつである。
さて、本当にやるだろうか。
今日やりたかったけどなんだかんだ言ってやらなかった事を次の日もなんだかんだ言ってやらなかったら一生やらないといえるだろう。数学的帰納法から明らかである。
今年38歳。
小中くらいはさしたる努力もせずにクラスでトップクラスの成績。
なんとか通学できるか、って距離まで伸ばしても圏内には進学先の高校は5,6校。
商業科や工業科、水産科なんかもあって、大学進学の可能性が残る普通科があるのは2校程度。
そのうち1校に入ったものの、ガクガクと成績は落ちていった。赤点をなんとか回避、ってことも何度か。
Jリーグが始まったのがこの頃か。
大学進学の可能性が残るという表現を使ったけど、田舎の学校なんでレベルは低い。
平均の偏差値は50切ってたと思う。
同学年でMARCHに入れるのが5人以下、早慶は数年に一人いるかも、くらい。
低成績の俺は地方の私大にしか受からず、親に頼み込んで浪人させてもらった。
条件は予備校の寮に入ること。ほぼ軟禁生活。泣いて嫌がったけど仕方なかった。
当時田舎者にはあこがれだった渋谷のタワレコに平日昼間から行って、 TK の新譜を試聴したな。
高校の頃からそうだけど、「勉強法の勉強」は好きで、あの方法で勉強すれば俺の成績は上がる、って謎な自信だけもっていて、でも勉強はしない。
明日やれることは今日やらない。よって数学的帰納法により、受験日まで勉強しない。
本当にダメ人間だった。
メタ勉強だけは好きってのは10年前にライフハックにハマったのと、今思えば同じ根っこだったんだろうな。
そんな訳で一浪しても入れたのは偏差値50アンダーの私立理系大。Fランク。最近はGランクまであるんだっけ?
成績不良じゃないくて出席日数不足ってところがつくづくダメだな。
ただ、振り返ってみてこの頃ラッキーだったのが2つある。
1つはコンピュータサイエンスの教官が実力主義者で、当時の第二種情報処理技術者、今の基本情報処理技術者試験に合格すれば単位をやるって人だった。
ちょうどインターネットが普及し始めて、テレホタイムになると同時にISDNで繋いでいた時期。
コンピュータの勉強は面白くて、出席外で単位とれるならと合格できた。ここで基礎を固められたのはラッキーだった。
もう1つは留年したせいで一般教養科目を余計に取れる余裕ができたこと。
心理学の少人数上級版で、自分でテーマを決めて教授と毎回議論できるってクラスだった。
就活に備えた自己分析を、心理学者とサシでできたのはラッキーだった。(ドラッカーのプロフェッショナルの条件を読めたのもこの頃だったな)
で、就職活動。2002年卒、有効求人倍率 0.54 倍。世はまさに大氷河期時代。日韓共催ワールドカップの頃。
周りや就活相談室の(ストレートな分、俺より有利な奴の)を聞くと、数十名の小規模企業に入るひと、地元に戻って地元の会社に入るひとも多かった。
このままだとヤバいなと、底辺だなと(当時は今のような使われ方をしていなかった言葉だけど)思った。
どうするか。資格もあったせいで業界は IT 、特に SI が有利だろうと思った。
計算機室でCOMPUTER WORLDを読み耽けり、大学の図書館で日経コンピュータのバックナンバー2年分を通読して業界を知った。
そして採ったのは某国産コンピュータメーカー1社のグループ会社に絞る集中戦略。
親会社の企業研究(成り立ち、歴史、挫折、チャレンジ)を深めれば子会社はいくらでも応用が効くし、心理学者と深めた自己分析と付きあわせて「あなたと出会えた私」のストーリーをでっちあげれば、志望動機も入社後の目指す姿も十分語れた。
このストーリーの説得力と、新人研修で取らせることの多い資格を既に持っていることがあれば、自分のスペックをある程度カバーできるだろうと思った。
これはうまくハマって、そのグループ会社では全戦全勝、本体でも最終面接まではいった。落ちたけど。
自分が出た大学では「誰もが知っている名前のついた会社に(子会社とはいえ)入れる奴」はレアで、まして一浪一留でってのは劇レアだった。
待遇は親会社と同一で、初年度、24歳で年収300万円くらい。
でもトレーナーとソリが合わず(今に思えば子供じみた理由だ)、転職。
就活の時にはコンサルなんて職種が世にあることを知らなかったけど、
たまたま募集してたITに強い外資コンサルに移って26歳年収400万。
国内限定学歴を揶揄する人もたまに見るけど、ボストン採用の同期とか普通にいたな。
そこでのコンサルスキルと海外経験のおかげで別のコンサルに移って28歳年収750万。貯金が1000万超えたのもこの頃。
タイミングが超ラッキーで、この直後にリーマンショックがあった。こんな大幅年収アップの転職案件はすぐになくなった。
35歳くらいで外資ベンダーに転職して年収1000万円超えて、38の今は1200万円。
年齢で見た年収は社内の平均からは下がるようだけど、まぁ十分満足してる。
株とETFで4000万円くらい持ってる。
金融資産の半分くらいは100年に一度の株の大バーゲン(リーマンショック)の時に買った株のおかげ。
その時期にセールワゴンにしがみつくだけの定期定額収入があったのも、またラッキーだったな。
転職活動では、卒業したFラン大学と一浪一留は何の問題にもならかった。
そんな感じ。
基本、世は学歴社会ではあると思う。
でも自分が対峙するフィールドでどういう力学が働くかを理解して、持ってるカードを限られたターンの中で増やし、切っていくだけだ。
自分が好きなタイミングで職を選べるのは、2つ目の外資コンサルであらゆる「ビジネスの知的基礎体力」を身につけさせてもらえたおかげだと思う。
自分が学歴とは不釣り合いな場所にいられるのは、ここに、大学を出てからのラッキーたちに、集約されると思う。
でも、それでも「大卒である」ことだけは一定程度以上の会社では最低条件、前提条件だった。
大手コンピューターメーカーの大ベテランの中には、時代的に高卒の人もいたし、高卒工場勤務から叩き上げで働いている人もいたけれど、もうそれはない。
今の勤め先も入社時にはbachelor以上の英文成績証明書が必須だ。
俺はラッキーだけで現状があるとは思っていない。
ただ、ラッキーに加えて必要だったのは、俺の場合は「Fランだろうが大卒」というチケットそれ自体ではなく、浪人と留年の学費と生活費を捻出してくれた両親だったと思う。
父は企業奨学金で日東駒専クラスに通い、卒業後に職業選択の自由はなかった。意に添わない異動も俺たち子供のために受けいれてくれた。
母は家が貧しく、家族に反対されながら働きながら自費で通信制の高校の卒業資格を得た。
そのことを身をもって知り、身をもって子に示し、ダメな俺が大学を出るまで支えてくれた両親こそ、俺が今の俺であるために必要だったと思う。
繰り返すが、学歴は強力ではあっても、いくつかあるカードの一枚に過ぎないと思ってる。
俺は馬鹿でダメな人間だったから「Fラン一浪一留」なんて貧弱なカードしか得られなかった。
でもそれも、そんなカードも、両親が必死になって繋いで手渡してくれた大切なカードだった。
その大切な一枚を活かせるような生き方ができて本当によかったと思ってる。
そろそろ俺が浪人する許しを請うた時の親の年齢に、俺がなる。
あの頃の両親のようにありたいと、そうあるための今の収入と資産だと思う。
読んでくれてありがとう。