院試関連

キリトといいます。京大の院試に受かりました。その感想ですね。イキりエピソードは多いですけど、とりあえず安心したのでどんな感じに数学系に行こうと思ったのかをまとめました。不本意な受かり方だったのでこれをしろ、というような感じではありません。これまで2個の院試を受けたので感想を書きたいと思います。こういう感じの記事を書くのは好きなので書いていこうと思います。

 

ひとまずこれまでの経歴を書いていこうと思います。

公立小学校 授業を荒らしてました。担任が体育会系で、とにかくひどいこと言われまくってたのを覚えてます。その担任が嫌いだったのでその担任の結婚祝いのペンなどを破壊したり、卒業式で煽りまくるなどして、「こういうときまで最悪なんだな」だとか卒業式中に嫌味を言わせたりしました。脱走を10回位しました。追っかけてくる担任が面白かったです。

某自称仏学校(中高一貫)成績が悪くて授業中寝てたし、人を厭わず煽るようなゴミ(これは俺が煽られることの反動とか、社会的なルールに従わない人間に人権が与えられないということをあまり気にしていなかったことに起因してる)で、やはり授業妨害してたりしたので突飛にキチガイ行動するので担任から嫌われまくってました。早稲田政治経済が第一志望で、昭和医学部(落ちた)の試験中に合格発表が来て、病人用の試験室で叫びまくってたのを覚えてます。なんか東大に受かったのでそっちに行くことにしました。高校自体は内職してると怒られるようなあまりよくないような所もあるようなところでしたけど、質問したら大体のことは答えてくれるような学校で、ほぼ塾に行かずに現役で東大受かれた(しかも進学コースでなかった)という点で結構満足してます。とはいってもやはり今思うと開成とかのほうが自分には向いていたとは思いますが。

理一(1留、実験を落とした)自称仏学校で授業についていけてなかったような個体なので、頭いい人が集まるとこで学習するのに苦労してたん1だと思います。俺は勉強ができるのだというような無根拠な自信はあったけど進学振り分けでも特に行きたいようなところにはいけませんでした。なむ

教養学科の数学寄りの奴  素粒子論がしたくなったので行くことにしました。でもなんか物理してても面白いと思うことはなかったし、物理の勉強してるとき幾何学おもしろそうやなとおもったり、あと重要なこととしてこの学科は数学の授業を数学の先生がやってくださるというのがあってそれで試験勉強のためノートを写してるときに「数学は自分の気に入らないことがあったとしても証明すれば勝手に認めるようになるので、人の話を聞かなくても良い」という点がいいとおもった(あともともとある程度数学したかったけど厳密さがつまらなくて腐ってて、そんな感じに厳密性も好きになれたあので)でこれをやろうと思いました。セミナーとか数理の先生が受け持ってくれましたし。厳しい先生は多かったですが数理棟ですれ違って挨拶するとお話してくれたり進路相談してくださったりしてくださったのでとってもよかったです。とか言ってると涙が出てきたな

 

1個め 東京大学 理学部数学科

落ちました。なぜかというと、多分算数力が足りてなかったからだと思います。試験厨、計算ミスで図形問題とかで答案を3回書き直したりとかしたし、基礎問題でも10回位微分方程式やりなおしたりしてました。(線型の微分方程式なのでなんということはない)でまぁ、これは自分が気持ちよくなることで数学の問題を解く方式以外やろうとしないしまぁできないというような理由だと思います。一生治らないんやろなあと思ってなす あとまぁ数学飽きてwebアプリのバイトの勉強ばかりしてたからだと思います。今年は捨てて来年数理うける!なんて言いながら。

使ってた本は

明快演習線形代数(波平が書いてあるやつ)

解析演習(東大出版の)

複素関数入門(チャーチルブラウン)

大学院への幾何学演習

坪井先生のホモロジーのやつとか微分形式のやつとか

こんな感じだったと思います。まぁでも落ちたのでココらへんの文章にあまり意味はないと思います。理論を証明を通して追うよりも、演習問題の解法の暗記を心がけて学習してました。結論的に言うと、そういうスタイルも数学には通用するなと思いました。理論だけを追うのが数学のスタイルではないと個人的に納得できました。

明快演習線形代数は、これは素晴らしい本ですね。高校の頃グリーの掲示板でなんか進められてた線形代数の書籍だったんですけど、高度な内容だと思いますよ、ジョルダンとかめっちゃくわしいし。直感的に線形代数を理解したいなら、教科書とか読む前にこれやってみると良いと思います。京大の院試適当にやって受かったのはコレをやりまくったからだと思います。

東大出版の解析演習は全部の例題をやって、刺激的な内容だとは思いますが、あまり院試に役立った感じではないですね。なんか計算関係の問題が多い。微分積分の一様収束あたりのめんどくせえ議論とか詳しく載ってたりしますが、それルベーグ積分でやれって感じが有ります。まぁ忌避するのが無難だったと今にして思います。好きな本ですけど。

チャーチルブラウン、これはオススメできますね。元々複素関数で院試するつもりあんまなかったんですけど、集合位相とか線形代数の内容がくっそむずかったので(集合位相はカルトクイズっぽかった 多分、線形代数はたしけ本を嫁ということなんだとは思う)1ヶ月前にこの本に取り組むことにしました。でそれで消化ができたわけですね。とりあえず留数あたりを知ろうと思うなら、演習問題とかとけばいいと思います。解説が詳しいし。複素関数だりいw という感じになったら是非オススメです。その後、アールフォルスで複素関数論を味わえば良いわけですね。複素関数論をある程度知ってる人だったら迷わずアールフォルスやればいいと思います。まぁでも小手先のテクニックをある程度修めたいならこっちなのかな。アールフォルスも巷の感想のように難しい本というわけではないので、臆せず手にとってほしいです。なんか1日で半分くらい読めます。(後半はそう簡単ではない)

大学院への幾何学演習、これもちろん消化なんかできてないわけですけど、ふつーの多様体とかホモロジーの本とかってあんま計算方法とか載ってないですよね。この本をちゃんとやってれば計算できるようになるわけです。あと、一般常識的に知っていないとならない幾何学的な知識がどんなものなのかというのがわかるようになります。まずイメージがないまま抽象的にホモロジーするよりかは、具体的なイメージを持ってからホモロジーするほうが楽しいですし、味わいが深いと思います。多様体の基礎つまんね〜wなどというアナタ、買いましょう

坪井先生のホモロジーのやつとか微分形式のやつとか 個人的にホモロジーは計算するための道具だと思ってるので、そういう公理ですすめる本としていいと思いました。だけどここらへんの書籍はノーテーションがダルいので、まずは演習問題とかやってそれで気になった理論をやるのが良いと思います 枡田ホモロジーなんか読んでたりしましたけど、これは実射影空間のところあたりは気に入ってますが、なんだかんだ幾何演習と坪井読むのが良かったと思います。(こういうのは、語尾に俺にとっては、というものをつけながら読んでほしい。)

以上、落ちたのであまり意味のない話です。まぁこういうやり方も有りだと思います。

 

で京大院試の話。ハミルトン力学計のsgcを執筆なさった人の所属先が不思議なところで、検索してみたところなんか冬の院試やってたので受けることにしました。そこの近くの学科も冬入試やってて、なんか関数解析が試験問題にあったのでやることになりました。(なおこの時点で試験1ヶ月前)試験1ヶ月前にして関数解析をやることになったわけですね。無謀です。

黒田先生の関数解析があまり面白さがわからなかったので、黒田伊藤藤田をやってみることにしました。ビジュアル的に読みやすくて証明もあんまり間がないように書かれていた感じだったので、良いと思います。なんか最初はバナッハ、ヒルベルト、関数空間あたりわかってりゃ良いかなとおもってたのですがよく試験問題を見てみるとなんかコンパクト作用素とか閉鎖要素とかそこらへんのことも出題されていたので、この本は重たいから投げることにしました。それで増田関数解析に手を出したのですが、これ結構やってる内容に関しては証明がきれいに書かれているので良い本だと思いました。でも、なんか前後のつながりというか論理の流れみたいなところは興味に応じて補っていかないと関数解析の感じがつかめないので、自分みたいなとりあえず院試に通過して数学系の研究室に入りたいというような人間が読むと考えると微妙かなと思います。(まぁ入ったらどうせ知らないと留年することになるだろうしこれからやることになるわけだが)

で、結局試験で使うことはありませんでした。関数解析的な問題ありましたけどこれフーリエ解析だったため自分が勉強してきた手持ちになかったので。試験で良かったことをまとめると、明快演習線形代数をしっかりとやったこと、試験3日前に復讐でアールフォルスを読み始めたことだったと思います。ソファーで寝そべりながらあー複素解析素敵、てなノリで。あとまぁ微分方程式の問題なんか試験終了10分前に唐突に解法思い出して溶けたりもしたわけなんですが、これは明快演習線形代数に書いてあったから思い出せたんですよね。偉大。みんな、明快演習線形代数を買おう。明快演習線形代数をすこれ。進学振り分けでも使えるよ。(resp アールフォルス)

で、肝心の試験は、計算力のなさから計算問題を1個落として基礎問題3問厨2問しか溶けませんでした。問題はジョーダン標準形(まぁ明快演習ちゃんとやってりゃできる)とか、有りがちな複素関数の問題でしたね。複素関数のは解法暗記してないとできない問題だったからまぁ院試考えるんなら解法暗記せざるをえないんだなあと。しゃあなし。あと複素関数カーネル出せって問題。これはそこそこの計算力が必要なので落としました。有ってるやつもケッコウ計算ミスもしたので、2巻というほどでもないです。まぁ90分しか試験時間ないしまぁ平凡くらいには頑張ったでしょう。次、専門問題なんですけど、なんか複素関数の問題があって(もともとこんなかんじだった)それ溶ける感じだったのでそれすることにしました。大体3/4くらい溶けたかな。2問は計算ミスしてたけど。ココらへんの話は、院試でどれくらい解ければ溶けた感触になるのかという目安になっていいと思います。(それでも試験によって難易度が変わりまくるから一概には言えないけどなW)で、もともと目的だった学科の方はなんか院試にうかったら受けられないらしいというのを試問(というよりかは面接)中に聞いて、くて受かったので受けられなくなりました。でも堅い意思を持って行きたいと思っていたのは東大の数理科学研究科であって、落ちても留年してもう一回受ける(しかも落ちる可能性も高い)というかんじのことをするよりも、不本意であったとしても続けたほうが良いんじゃないかなと思いました。(というのは数理棟の廊下で、2回別々の先生から勧められた単なる受け売りであることは特筆するべきものだと思う)俺の幾何学がやりたかったという思いはとりあえず捨てて、1っmくらいしかやったことのない解析分野をやることにします。それでも幾何学がしたくなったら博士でやるべきなんだなってかんじに。(というのはry)まぁどれがいいかなんていうのはこれからなので知りません。とりま、頑張るとかいうのはなんか意味があるかどうかわかりませんけどやらないことには失敗するしかないのでとりあえずは下に行かないようにしようかなと思いました。

 

キリト

 

 

要約。失敗記録を抜きにして書こうと思います。

1 明快演習線形代数チャーチルブラウンとアールフォルスを買う

2 ちゃんとした教科書を参考にしながらちゃんとやる

3冊で院試は攻略できるわけですね。微積は説いてないので知りませんが数件のやつで解法暗記するのが院試にとってはいいんじゃないでしょうか 

cycle.js + emotion + rxjs6でドラッグアンドドロップ(動作するものの欠陥あり)

f:id:tebaoKirito:20191009033813g:plain

アイソレート使うと2つドラックドロップできるよ

こういうのをドラッグするのをrxjsで書きたかった。

 

以下tsx
import { CycleDOMEvent, div, h1, hr, input, label, p, VNode } from "@cycle/dom";
import { css } from "emotion";
import * as Snabbdom from "snabbdom-pragma";
import { DOMSource, makeDOMDriver } from "@cycle/dom/lib/cjs/rxjs";
import { run } from "@cycle/rxjs-run";
import { Observable, timer, from } from "rxjs";
import "../stylus/style.styl";
import * as Rx from "rxjs";
import {
map,
startWith,
scan,
switchMap,
combineLatest,
takeUntil
} from "rxjs/operators";

type Sources = {
DOM: DOMSource;
};

type Sinks = {
DOM: Observable<VNode>;
};

/**
* アプリケーション
* @param sources
* @returns {{DOM: Observable<VNode>}}
**/

function cardMain(card: string) {
return function main(sources: Sources): Sinks {
// intent部分
const input$: Observable<Event> = sources.DOM.select("#" + card).events(
"mousedown"
);
const mouseMove$: Observable<Event> = sources.DOM.select("#" + card).events(
"mousemove"
);
const mouseUp$: Observable<Event> = sources.DOM.select("#" + card).events(
"mouseup"
);
const mouseLeave$: Observable<Event> = sources.DOM.select(
"#" + card
).events("mouseleave");
const mouseUpLeave$: Observable<Event> = Rx.merge(mouseUp$, mouseLeave$);
const inputGoniMousemomve$: Observable<Event> = input$
.pipe(switchMap( () => mouseMove$.pipe(takeUntil(mouseUpLeave$))))
;

// cssに入れる位置
const value$: Observable<[number, number]> = inputGoniMousemomve$.pipe(
map( (evt: MouseEvent) => {
return [evt.pageX - 30, evt.pageY - 30];
})
);

const state$ = value$.pipe(startWith([400, 400]));

const myStyle = css({
color: "hotpink",
fontSize: "3rem",
fontWeight: "bold"
});

// 現在の状態を画面に描画 ( View )
const vdom$: Observable<VNode> = state$.pipe(
map( (value) => {
console.log(card);
const styleOfCard = css({
top: value[1] + "px",
left: value[0] + "px",
position: "absolute"
});
return (
<div className={myStyle}>
<div id={card} className={styleOfCard}>
{card}
</div>
</div>
);
})
);

// 結果をドライバに出力する ( Sinks )
return {
DOM: vdom$
};
};
}
// // アプリケーションからの戻り値を受け取るドライバ群を定義
const drivers = {
DOM: makeDOMDriver("#app-container") // DOM をレンダリングするドライバ
};

// アプリケーションとドライバを結びつける
run(cardMain("裁きの龍"), drivers);
チュートリアルのコード(https://tech.recruit-mp.co.jp/front-end/post-11898/)をコピペしてそこを書き換えて作りました。

一応、ドラッグアンドドロップにはなる。しかしながら、マウスダウンストリームが生き残り続けて無限増殖するのがとても気持ち悪い。

更にいうと、cycle.jsはrxjs6をあまりサポートしてないみたいでdomdriver辺りを作ろうとするとどうもできないらしい。rxjs4はおそらく使えるとおもっていて、それを使うか素直にxstreamをつかうべきであるらしい。多分、こういうのを作りたいならdomdriver辺りを工夫するべきなんだろうな。

 

ちなみにバイト先のエンジニアの方はこのプログラムの致命的な欠陥を20秒ほどで見抜いていたのだった。