「半分」について



〔これは雑な記事です〕

先日映画を観に行ったら、『響』という映画の予告で「天才とはわずかにわれわれと一歩を隔てたもののことである。」という文句が使われていた。
これは芥川龍之介侏儒の言葉』の一節で、「ただこの一歩を理解するためには百里の半ばを九十九里とする超数学を知らなければならぬ。」と続く*1
続きを書かずにそこだけ抜くのはどうなんだという気持ちはないでもなかったが、それはまあよくて、「百里の半ばを九十九里とする超数学」について考えていたら、「半分」という概念がわからなくなった。

「半分の点はどんな距離空間にも存在するの?」「『半分の点があること』と『空間を半分に分けることができる』は同じなの?」「中線定理はノルム空間が内積空間になる条件って聞いたけど……」等々。
それについてのメモ書き。

ポロノイ図

図のイメージはあったのだけれど、その言葉がしばらく思い出せなかった。ポロノイ図という名前であった。

距離空間内の有限部分集合 P = \{p_1, p_2, \dots, p_n\} および、距離関数d に対して

 V(p_i) = \{p\ |\ d(p, p_i) \le d(p, p_j),\  j\ne i\}

で構成される領域V(p_i) p_i のボロノイ領域と呼ぶ。また、 \{V(p_1), V(p_2), \dots, V(p_n)\}ボロノイ図と呼ぶ。

こうやってポロノイ領域を定義してやると、(全順序なので)任意の点がどこか少なくとも1つのポロノイ領域にはいる。
こういう意味で、任意の距離空間を「半分に分ける」ことはできる。

2次元ユークリッド空間で2点なら、それは垂直2等分線で分けられた領域になる。

なお、これは「等面積で半分に分ける」こととは無関係。「面積」や「体積」の概念は距離ではなく測度の上にあるものなので。
(じゃあ「等面積で半分」が必ず定義できるかといえば、例えば2点集合にそれぞれ測度1と6を与えてやると反例になる)
ユークリッド空間上で距離と面積に関係があるのは、ルベーグ測度を直方体をもとに決めたから)

まんなかの点

百里の半ばを九十九里とする」の「半ば」はつまり、両端点から等距離にある点を指している。
これはポロノイ図でいうと、複数のポロノイ領域に含まれる点に当たる(別に1つとは限らない。中点というより二等分線か。平面幾何にあわせて最小距離になるものを中点というとよさそう)。

これは必ずしも存在しない。例えば数直線上に 0,1,2,3 だけがある4点の空間に普通の距離を入れてやると、0と2との間にはまんなかの点1があるが、0と3との間には存在しない。

中線定理

内積空間の議論で出てくるベクトルの中線定理には、「中点」の概念がそもそもいらなそう。

この図では2つのベクトルの矢印が「中点」で交わっているけれど、これは単にユークリッド空間でこう描いたからたまたま起きているだけなのでは…?
f:id:suzusime:20181107204611p:plain

*1:というと嘘になる。というのもこの文句はもう一度繰り返されていて、そちらでは「同時代は常にこの一歩の千里であることを理解しない。後代はまたこの千里の一歩であることに盲目である。同時代はそのために天才を殺した。後代はまたそのために天才の前に香を焚いている」と続く。

msys2のvimでシンタックスハイライトが効かない問題

いつからかわからないがmsys2のvimシンタックスハイライトが効かなくなっていた。
しばらく放置していたが面倒になってきたので解決策を探したところ、次のサイトをみつけた。

そして、これを試してみたらその通りであった。

私の環境は、

$ pacman -Ss vim
msys/vim 8.1.0022-1 (editors) [インストール済み]
(後略)
$ vim --version
VIM - Vi IMproved 8.1 (2018 May 17, compiled May 31 2018 11:16:13)
適用済パッチ: 1-22
Compiled by <alexpux@gmail.com>
Huge 版 without GUI.  機能の一覧 有効(+)/無効(-)
+acl               +farsi             +mouse_sgr         -tag_any_white
+arabic            +file_in_path      -mouse_sysmouse    -tcl
+autocmd           +find_in_path      +mouse_urxvt       +termguicolors
-autoservername    +float             +mouse_xterm       +terminal
-balloon_eval      +folding           +multi_byte        +terminfo
+balloon_eval_term -footer            +multi_lang        +termresponse
-browse            +fork()            -mzscheme          +textobjects
++builtin_terms    +gettext           +netbeans_intg     +timers
+byte_offset       -hangul_input      +num64             +title
+channel           +iconv             +packages          -toolbar
+cindent           +insert_expand     +path_extra        +user_commands
-clientserver      +job               +perl/dyn          +vertsplit
+clipboard         +jumplist          +persistent_undo   +virtualedit
+cmdline_compl     +keymap            +postscript        +visual
+cmdline_hist      +lambda            +printer           +visualextra
+cmdline_info      +langmap           +profile           +viminfo
+comments          +libcall           +python/dyn        +vreplace
+conceal           +linebreak         +python3/dyn       +wildignore
+cryptv            +lispindent        +quickfix          +wildmenu
+cscope            +listcmds          +reltime           +windows
+cursorbind        +localmap          +rightleft         +writebackup
+cursorshape       -lua               +ruby/dyn          -X11
+dialog_con        +menu              +scrollbind        -xfontset
+diff              +mksession         +signs             -xim
+digraphs          +modify_fname      +smartindent       -xpm
-dnd               +mouse             +startuptime       -xsmp
-ebcdic            -mouseshape        +statusline        -xterm_clipboard
+emacs_tags        +mouse_dec         -sun_workshop      -xterm_save
+eval              -mouse_gpm         +syntax
+ex_extra          -mouse_jsbterm     +tag_binary
+extra_search      +mouse_netterm     +tag_old_static
      システム vimrc: "/etc/vimrc"
      ユーザー vimrc: "$HOME/.vimrc"
   第2ユーザー vimrc: "~/.vim/vimrc"
       ユーザー exrc: "$HOME/.exrc"
  デフォルトファイル: "$VIMRUNTIME/defaults.vim"
       省略時の $VIM: "/etc"
省略時の $VIMRUNTIME: "/usr/share/vim/vim81"
コンパイル: gcc -c -I. -Iproto -DHAVE_CONFIG_H   -I/usr/include/ncursesw  -march=x86-64 -mtune=generic -O2 -pipe -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1
リンク: gcc   -L. -pipe -fstack-protector -pipe -Wl,--as-needed -o vim.exe        -lm    -lncursesw -liconv -lacl -lintl   -Wl,--enable-auto-import -Wl,--export-all-symbols -Wl,--enable-auto-image-base -fstack-protector-strong  -L/usr/lib/perl5/core_perl/CORE -lperl -lpthread -ldl -lcrypt

vim 8.1が入っているのに、:set runtimepathを打ってみると、その中に/usr/share/vim/vim80の文字が見えた。
この部分を/usr/share/vim/vim81に書き換えてやった後に:syntax onしてやると正常にシンタックスハイライトが働いた。

ということで、次善策ではあるがとりあえず .vimrc で

set runtimepath+=/usr/share/vim/vim81

としておけばシンタックスハイライトは働くようになる。

「ポリコレ」についての雑感

社会を覆い尽くす「ポリコレ」の動きにものすごく違和感を覚えるのだが、かといってまともに論理だててブログ記事を書けるかといえばそんなこともなさそうなので、とりあえず酒の勢いで思うところを書き留めておく。要するにぜんぶただの気持ちである。

続きを読む

はいふりカメラとゆく京都

 「はいふりカメラ」というものがある。

 スマートフォンなどで使えるアプリ*1で、使用方法は簡単、フレームを選んで写真を撮るだけ。
 それでキャラクターのいる写真を撮ることができる。

f:id:suzusime:20180408032501j:plain
金閣寺。初めてはいふりカメラを使って興奮した。

 はいふり(『ハイスクール・フリート』)といえばそれなりに前のアニメなので、このはいふりカメラが流行していたのもそれなりに前なのだが、当時私ははいふりカメラを使えるような端末を持っていなかった。

 当時はツイッターなどに流れてくるはいふりカメラの写真を「楽しそうだなー」と眺めていたのだけれど、最近になってようやくガラケーからスマホに変更していたので、そういえばと念願の(?)はいふりカメラをインストールしてみたのである。

 これはそうしてはいふりカメラと共に京都を巡った約1ヶ月前の1日(3月11日)の記録だ。

*1:正しくは”「はいふり」公式アプリ”で、はいふりカメラはその一機能。

続きを読む

Evernoteについていた最高のPDFリーダーがなくなってつらい

かなしみに任せて記事を書く。

私は去年の10月頃からEvernoteを使っていた。
そのあたりの動機については割愛する*1が、1月から課金する程度には便利に思って使っていた。

早速本題であるが、Windows版のEvernoteにはオリジナルの*2PDFリーダーがついていた。
が、最近のアップデートでこれが外され(?)、PDF表示はChromeのものと同様のものが使われるようになってしまった。

この以前のPDFリーダーが個人的に非常に使いやすかったのだ。
その理由はページ送りに関する些細なことなのだが、これを実現できる他のPDFリーダーを私は知らないので、情報を求める意味でもここに書いておきたい。

*1:ほんとうはこれもブログに書こうと思っていたが無期限延期している

*2:Foxitをもとにしたらしいが

続きを読む

応用情報技術者になった

 今日もなんにもできなかったね。明日もきっと何もできないよ、ハム太郎……

 ということで「だめだー」となっているのだけれど、唯一の明るい話題。
 鬱々としたことばかり書いていても何なので書いておく。

 10月に受けた応用情報技術者試験の結果発表が今日(12月20日)で、私は合格だった。

f:id:suzusime:20171221034544p:plain
結果

 まあ受かってるかな? というくらいの気持ちでいたのでそこまでの驚きはないのだが、やっぱりうれしい。
 ちょっと振り返りを書いておく。

申し込み

 受験しようかなーと思ったのは確か春頃。
 私はコンピュータ系のサークルに所属しているので、周囲の人がわりとIPAの試験を受けていた。
 その中のひとりに「応用情報くらい簡単だよ、今のすずしめでも取れるよ」という煽りっぽいことを言われたのが発端で、その時試しにネットの過去問サイトで何問か適当にやってみたところ、勘も含めれば半分くらいは正解できるけど、そのままでは厳しいかな、といった感じであった。

 いざ本屋で参考書を眺めてみるなどすると、この試験の問う範囲がコンピュータ技術のかなり広範囲に亘っていることがわかって、聞きかじりの知識ばかりの私もこういうもので一度(情報学科の人がやっているような)まともな勉強もしておくといいかなと思えた。
 あとは、物理で将来食べていける自信がなく、いい感じにIT業界に滑り込めたらなぁというのもあり、この手の資格があったら足しになるもしれない、という打算である*1
 一時期は将来の保険のために教職をとっておこうとか考えたこともあった*2ので、それに比べたら全然現実的な範囲だし、あとは国家資格ってかっこいいよねってことで*3
 応用情報技術者の前に基本情報技術者というのもあるが、よりちゃんとした情報科学の基礎を問われる雰囲気で、つらそうだったので応用情報のほうにした*4

 なお、申し込みを忘れていて期限ぎりぎりになって危なかった。


準備

 試験は10月15日、私は大学生であり8月上旬から9月いっぱいまでは夏休み。
 よって夏休みにいっぱい勉強できるから余裕……などと考えていたが、そんなのは甘い夢であった。

 試験を終えて、コミケに行き、サマチャレで筑波のKEKに幽閉され*5、そして京都に帰ってきてからは課題演習*6の実験のデータ解析をずっとやっていて、課題演習の発表会が終わったらほぼ夏休みが終わっていた。
 夏休み中ずっと実験物理と格闘していた感があり、物理屋としては正しいのかもしれないが疲れ果てていた。

 そんなこんなでまともに勉強をすることもなく1週間前になり、1週間は少し勉強したものの、「時間を計って過去問をする」といった経験を全くすることなく前日の夜を迎えてしまった。
 参考書の後半に載っていた経営工学っぽい内容については(興味がないのもあり)参考書の該当部を一読することすらしておらず、試験時間がどれくらいか、何割正答で合格なのかも知らなかった。
 さすがにこれは駄目かなと思ったが、いざ予想問題を解いてみるとなんだかんだ午前8割弱くらいはとれて、6割が合格基準ならいけるかな、と思えた。
 より不安だったのは午後だが、選択問題があり、記述とはいえ「分かっている分野だけ選んで6割とれれば良い」となると、とても易しく見えた。
 ということで、午後の予想問題を解いた後、「午前さえいければいけるかな」と考えながら寝ることにした。(当日午前3時)

 ちなみに参考書はこれ(の29年度版)。普通に良い本だった。
https://www.amazon.co.jp/dp/4774193151?tag=asuyuh-22&camp=1027&creative=7407&linkCode=as4&creativeASIN=4774193151&adid=1EVDBJN9MNDAAYX41XZ2&www.amazon.co.jp

当日

 あんまり覚えていない。

 会場が京都女子大学だったので、初めて女子大というものに潜入した。
 こういうのにはあまり詳しくないが、「京都で女子大というと京女、同女*7、ダム女*8」というのをどこかで聞いたので、たぶん有名。

 午前はあまり覚えていないけれど、まずまずだったかなという感じ。

 午後。
 第1問は必修のセキュリティの話。「暗号技術はわかる!」とさくっと解いた。
 第2問は経営っぽい話題なので問答無用で飛ばして、第3問のプログラミング。初歩的なナップザック問題の話だったので余裕余裕~とかなる。
 第4問はWeb APIの設計の話。よくわからないところが節々に遭ったけれど、空欄でないところと頑張って比較して埋めていく。
 第5問はネットワーク。ネットワークにはある程度自信があったのだけれど、出てきたのがMACアドレスなんかの層の話で、一応解くものの全く自信が持てない。
 第6問がデータベース、第7問が組み込み機器で、この2つは問題を見てどちらか分かりそうな方を解こうと決めていた。
 どちらかといえばデータベースのつもりだったが、実際に問題を見ると全然わからないので組み込みのほうを解いた。文章をちゃんと読んだら解けた。
 以上で5問なのだが、時間が余ったので第8問のテストのところを解く。これが予想外に簡単で、ネットワークの問題よりも自信が持てたので、第5問ではなく第8問のほうにチェックを付けて*9提出した。

反省

 当日夜になって午前問題の解答が公開されたので自己採点。85点あったので勝利。午後は分かる問題だけ選んだのできっといけてると思えた。

 勉強時間が少なかった割にいけたのは、CTF勉強会とか、ちょっとだけやってる競プロとかのおかげかな、なんて考えていた。
 でも、OSのタスク管理の仕組みやデータベースの正規化の話題なんかは参考書で初めて知るようなことで、わりと面白かった。

 ただ、経営工学には全く興味がもてなかった。ひたすら単語、概念の暗記に終始するような構成も苦痛である。
 しかも出てくる語は片仮名語、英語の頭字語ばかりである。
 試験中に『私の國語敎室』の終わりの一節を思い出さずにはいられなかった(正字正仮名の話とは違うけれど)。

 かうして幾多の先學の血の滲むやうな苦心努力によつて守られて來た正統表記が、戰後倉皇の間、人〻の關心が衣食のことにかかづらひ、他を顧みる余裕のない隙に乘じて、慌しく覆されてしまつた、まことに取返しのつかぬ痛恨事である。しかも一方では相も變らず傳統だの文化だのといふお題目を竝べ立てる、その依つて立つべき「言葉」を蔑ろにしておきながら、何が傳統、何が文化であらう。なるほど、戰に敗れるといふのはかういふことだつたのか。

福田恆存『私の國語敎室』(文春文庫) 348頁より

 閑話休題
 さて、この先にはネットワークスペシャリストなどの資格があるが、それについては今のところあまり興味がない。
 文字通りスペシャリストであり、私のは「保険」などという動機であるから、そこまでは求めていないのである。
 それよりは、エントロピーがどうとかいう、情報科学っぽいことを触っておきたいなというのが今の思いだ*10

*1:ちなみに後に某就活支援会社の人に聞いたところ「応用情報は割とみんな持ってる」らしい。まあそうだよね。でもないよりマシだよきっと……

*2:あまりに大変なので2回生くらいの段階で諦めた。

*3:お前は反権威的な右翼を名乗っていなかったのか、という人はフロムの『自由からの逃走』を読んでみてください。私が実は権威主義者であることが分かります。とてもいい本です。

*4:このあたりで手段と目的の逆転が見られる

*5:サマチャレは良いイベントでしたよ。

*6:理学部物理系の3回生が半年受けるゼミ+実験みたいな授業。

*7:同志社女子大

*8:ノートルダム女子大

*9:解答用紙には採点してもらいたい問題をチェックする欄がある。よってそれ以外の問題の解答を解答用紙に書いていてもかまわない。

*10:統計力学は楽しいし、将来量子情報に行きたいという淡い希望を最近持っているので。