2019年の抱負の振り返り
去年も大晦日に書いていたようだ.最近AtCoderのことをブログに書いていこうと思って,久しぶりにこのブログを開いて驚いたのが,完全に忘れていた抱負が意外と達成されていたことだった.小さい頃に大人たちによって抱負の言語化を強要されていた気がするが,その年活動していて頭の片隅にあったり達成されたりした覚えはあまりない.新鮮な体験だった.
それはともかくとして,本題に入ろう.
- 研究/就職
まずは現状を確認する.D進するかはM1の12月末現在決めることができていない.また非常によろしくないことに,進学を断られるのが怖い気持ちがあり,ボスにも未だその相談をしていない.仮に進学をするとすれば,とにかく論文数を稼ぐことが肝要である.5月末にはDC1の締切があり,それまでに現在の1本に加えてもう1本出せるように頑張りたい.しかし,これは目標と言うには微妙に思える.現在関わっている共同研究が順調に進めば,学振までに1本,年内にもう1本は固いように思えるからだ.contributionの問題で片方は身を引こうかと思っているが,しかし5月までにpreprintを出すことは十分可能だろう.従って「目標」を述べるなら,これら以外に自分主導のものを1本,口頭発表を2件程度,というところだろうか.分野の関係もありあまり手頃な発表機会が見つからないのが悩ましいところだ.自分主導の論文を1本というのはあまり現実的ではないかもしれない.まあ0.5本,という訳にはいかないし,こうしておこう.よく考えたら修論もあるし,これは再来年になりそうな気もする.
就職をするとしたら,どうだろう."良い"就職先を見つける,というのが目標になるのだろうか.しかしこの場合の研究との向き合い方が自分にはわからない.一口に就職をすると言っても,今年ではなく来年というのも考えており,そのバリエーションもある.就職するかどうか迷っている理由に,ほんの数年後には関わらなくなるものに,今この瞬間どう向き合えば良いのかわからないということがある.正直こんなモヤモヤした気持ちで就職して幸せにやっていけるか自信がないので,今のところは7:3くらいで進学に傾いている.就職に関する目標としては,この辺りの見聞を広めて考えを進めておくと言ったところだろうか.
研究の方はあまり達成できなかったかもしれない.学振までに1本は出すことができたが,結局学振は就活で忙しかったし,就活が問題なさそうだったので出さなかった.就活を始めたときは学振も出す気満々だった気がするけど,やってるうちに気持ちが流れていった気がする.年内にもう1本という目標は達成できていない.共著を自分主導で完成させる話の運びになっているが,夏にインターンに行ったり,修論のくだらない中間発表があったり,家族が病気になったり,修論があったりと何かと忙しく,また,技術的にギャップが埋められない箇所があり,正直いつ出せるかの見通しも立っていない.あとはそれとは別に一人でやってたまに報告していたことを単著で出したらどう?と嬉しい提案を貰っていたが,正直卒業まで時間がなさ過ぎて結局出せないような気がする.まあそっちは正直本当に大したことを何もやってないので,それでも良いかなと思うのだが.この状況はまさに抱負に書いた通りで,正確な予想をしていて驚いた.
口頭発表については,1件満足にすることができた.また,そこで分野の大御所というか神みたいな人にセミナーを依頼されて,後日他大でPI3人の前でセミナーするというありえないような栄誉に浴した.夏にもどこかで,自分の分野は国内はあんまりなのでできれば海外とかで口頭発表しようと思っていたが,インターンが決まったのでそっちに全力を出して結局行かなかった.春も発表してる暇があるなら研究をするか勉強をしていたいので,多分修士の発表業績は1本で終わるだろう.もう少し年次を重ねればまた違う価値が出てくるのだと思うが,正直現状はあまり学会に価値を感じていないので,これについては特に残念という気持ちはない.
就職の欄に書いたことも未だに悩んでいることで,あと3ヶ月で恐らく一生触れなくなることに,いつまでコミットするべきなのかわからないまま時間が過ぎている.正直こういう感じで,論文化が終わらないまま就職になりそうなので,D1就職をしておけば良かったかと思う部分もなくはないし,今も一応(家族の病気の事情もあり)D進の手続きは進めてあって,未だに悩んでいる点である.とはいえ,夏に行っていたインターンは今年就活をしていなければ行けていなかったもので,そちらも素晴らしい体験だったので,特に後悔はない.
- 読書
非専門書・技術書を月1冊以上読む.月1冊というのはカスみたいな目標かもしれないが,今が酷すぎるのでまずはこのくらいにしておこう.慣れてきたらもう少し早く読めるようにもなるだろう.
全然駄目.多分5冊しか読んでいない気がする.全部山岳小説.とはいえこれで2ヶ月に1冊弱のペースで,相当ゆっくり読んでいた自覚もあるので,来年は達成したい.これも抱負が良い感じに現実的で日頃からやりたいと思ってることを書いていて驚いた.
- 働く
これは就職という意味ではなく,アルバイト・インターンに採用されるということ.今の生活では定期的に新しい人間と知り合う機会があまりにも乏しく,学生生活が長くなればなるほど自分の市場価値が落ちていくことを危惧している.
確かに1年前はこんなことを思っていた気がする.これは完璧に達成できた.正直もっと早く何かバイトでもしておけば良かったとも思ったけど,多分自分のスペックだと学業が駄目になっていたような気がする.今年の2月中旬に就活を始めてから,就活が決まりインターン終わるまでは,割と人生の転機だったかなあ(といつか振り返るのかもしれない)
- 英語
悲惨な英語をなんとかする.DMMなどオンライン英会話を勇気を出して始める.
早く始めろ.
- 創作
年々息が詰まって死にそうな感覚が増しているので,そろそろなんとかしたい.今年一時的にやっていた3DCGを再開するというのも手だが,個人で何かできるようには思えないのがやはりネックに思える.DTMに興味があるが,ここではそういった具体的なものを挙げるのはやめておく.コミケにサークル参加できたりしたら最高だと思う.が,それはもはや抱負ではなく願望かな.
忙しかったと言えばそれはそうなのだが,これは全くできなかった.コミケには今年も夏に行ったが,サークル参加を「願望」と書いてるのはまさに毎回感じているところだ.ただ,就活などを経て自分の人生設計を考えたりしていて,ここ最近は,こうして人生をやっていく部分というのが自分の中で軽視されてしまったような気がする.多分今は1年前ほどはこの願望はない.自分のことはキャリア志向とも思うし,一方でできるものなら可能な限り早くアーリーリタイアしてのんびり生きていきたいとも思うが,よくわからない.まあ働き始めたら,「働く」の抱負で書いているようなコミュニティ的な閉塞感を感じることもあるような気もするし,来年も意識していけたら良いなと思う.
- 登山
登山は完全に気分で行きたいので,抱負などを挙げるつもりはないが,強いて言うなら2500m級に登ってみたいのと,夏に富士山に行けたら良いなと思っている.縦走などはまだ早いかな.自分の動機的に単独行以外はあまり考えられないのだが,もし機会があれば誰かと登ってみたいとも思う.
これまた良い感じの抱負を書いていて,達成できた.燕岳に1泊2日で行ってきた.2日目の下山時はあいにくの濃霧だったが,1日目は徐々に晴れてきて,北アルプスの稜線歩きの素晴らしさを知った.日本の宝と言っても過言ではないと思う.それから,友達と計3回山に登った.いずれも2人で行ったので3人以上だとまた違ったりするのかもしれないけど,誰かと登ってみるのもまた別の楽しみがある.
- ゲーム
コンシューマゲームを1本以上プレイする.
全くやらなかった.スマホゲームもバンドリをやっていたのをスマホを変えてからなんとなく(イヤホンジャックが無くて不便したのもあり)やめてしまった.ポケモンが出たときはちょっとやりたくなった.FF7が出たら流石に揺らぐかもしれないけど,最近はそもそもあんまりゲームをやりたいと思わなくなった気がする(前からではある).1年前は今よりやりたかったのだろうか(ニーアとかやりたがってたような気がする).今はコンシューマーゲームというよりはビジュアルノベルをやりたい気持ちが強い.
- 勉強
幾何的なことがわかるようになりたい.具体的には中原トポロジーの2巻くらいの知識をつけたい.
確かにこんなことを思ってた気がする.全くやらなかった.というより,今年は研究してばかりで論文すらもあまり読めなかった.自分の分野だと修士以降はあんまり自主ゼミみたいなことをやる人は多くなくて,毎年M1がセミナーするとか,ジャーナルクラブとか,数学色が強いところだと指導教官とセミナーするとか,そういう形式がほとんど.だけど他分野を見てると結構集まってやってる人たちもいるみたいで,そういうのを見ると何かやっておけば良かったかなとは思う.まあ修士で専攻を変えたのでなかなかそれも難しかったとは思うけど.今でも幾何に苦手意識はあるけど,多分1年前ほどは基礎的な数学に対する興味が少し減ったような気がする.勉強としては,コンピュータサイエンスの方に興味が行っている.
ABC146
[C]について
#include <iostream> using namespace std; long long digit_num(long long n){ long long ans=1; while(n/10 > 0){ ans++; n/=10; } return ans; } long long price(long long a, long long b, long long n){ long long ans = a*n + b*digit_num(n); return ans; } int main(void){ long long a,b; long long x; cin >> a >> b >> x; long long n = 1000000000; if(price(a, b, n) <= x){ cout << n << endl; return 0; }else if(price(a, b, 1) > x){ cout << 0 << endl; return 0; } // Nの桁だけ決定すればd(N)は決まるので桁を決める long long ans_digit = 0; for(long long i = 1; i < n; i=i*10){ if(price(a, b, i) <= x){ ans_digit++; }else{ break; } } // d(N)がわかったら割り算すれば良い long long ans = (x-b*ans_digit)/a; cout << ans << endl; }
2分探索すれば良いのはわかるんだけど,これでケースが1つだけどうしても通らない.何故…?
追記
- テストケースが見れないのでデバッグしようがないと思ってたら,ここに全部上がっていた.それによると
max01
は303238506 317063340 303238508894523551
を入力して999999999
にならないといけないようだが,自分のプログラムだと1000000000
になってしまっている.しかし,ans_digit
をcoutしてみると9
になってるので,最後のところで何かがおかしくなってそう. (303238508894523551-317063340*9)/303238506
を計算すると1000000000.14
になるので,プログラムはちゃんと動いている.いやなるほど.d(N)=10
だとちゃんとx
をオーバーするから10^9
は買えないはずなのに,d(N)=9
で計算してるから引く部分が小さくなっていて,10^9
が買えるかのような答えになってしまっているのか.つまり,最後の1行が正しくない.
修正版
#include <iostream> using namespace std; long long digit_num(long long n){ long long ans=1; while(n/10 > 0){ ans++; n/=10; } return ans; } long long price(long long a, long long b, long long n){ long long ans = a*n + b*digit_num(n); return ans; } int main(void){ long long a,b; long long x; cin >> a >> b >> x; long long n = 1000000000; if(price(a, b, n) <= x){ cout << n << endl; return 0; }else if(price(a, b, 1) > x){ cout << 0 << endl; return 0; } // Nの桁だけ決定すればd(N)は決まるので桁を決める long long ans_digit = 0; long long i; // 下のansでd(N)桁より大きいものが出てしまったときにキャップするために使う for(i = 1; i < n; i=i*10){ if(price(a, b, i) <= x){ ans_digit++; }else{ break; } } // d(N)がわかったら割り算すれば良い long long ans = (x-b*ans_digit)/a; // キャップ if(ans >= i){ ans = i-1; } cout << ans << endl; }
これでACになった!!!修正してるときのハマりポイントとしては,
// Nの桁だけ決定すればd(N)は決まるので桁を決める long long ans_digit = 0; long long cap; for(long long i = 1; i < n; i=i*10){ if(price(a, b, i) <= x){ ans_digit++; }else{ cap = i; break; } }
みたいに書いて,cap
を使って処理を書いたらcap
が未定義でアレな数字が入ってしまった.C++の代入はシャローコピー(今適当にググりながら書いてるので概念をちゃんとわかってない)なのかな…?
long long
を減らす
#include <iostream> using namespace std; int digit_num(long long n){ int ans=1; while(n/10 > 0){ ans++; n/=10; } return ans; } long long price(long long a, long long b, long long n){ long long ans = a*n + b*digit_num(n); return ans; } int main(void){ long long a,b,x; cin >> a >> b >> x; long long n = 1000000000; if(price(a, b, n) <= x){ cout << n << endl; return 0; }else if(price(a, b, 1) > x){ cout << 0 << endl; return 0; } // Nの桁だけ決定すればd(N)は決まるので桁を決める int ans_digit = 0; int i; // 下のansでd(N)桁より大きいものが出てしまったときにキャップするために使う for(i = 1; i < n; i=i*10){ if(price(a, b, i) <= x){ ans_digit++; }else{ break; } } // d(N)がわかったら割り算すれば良い long long ans = (x-b*ans_digit)/a; // キャップ if(ans >= i){ ans = i-1; } cout << ans << endl; }
さらに,a,b,n
をint
で受け取りたいと思ったけど,それをやるとWA
になってしまう.もちろんprice()
内の処理がアレな訳だけど,受け取るときにlong long
にしてるから行ってくれと思うけど,駄目らしい.同じ整数型でもちゃんと型は合わせないと駄目そう.
さらにlong long
を減らす
#include <iostream> using namespace std; int digit_num(int n){ int ans=1; while(n/10 > 0){ ans++; n/=10; } return ans; } long long price(int a, int b, int n){ long long ans = (long long)a*n + (long long)b*digit_num(n); return ans; } int main(void){ int a,b; long long x; cin >> a >> b >> x; int n = 1000000000; if(price(a, b, n) <= x){ cout << n << endl; return 0; }else if(price(a, b, 1) > x){ cout << 0 << endl; return 0; } // Nの桁だけ決定すればd(N)は決まるので桁を決める int ans_digit = 0; int i; // 下のansでd(N)桁より大きいものが出てしまったときにキャップするために使う for(i = 1; i < n; i=i*10){ if(price(a, b, i) <= x){ ans_digit++; }else{ break; } } // d(N)がわかったら割り算すれば良い long long ans = (x-(long long)b*ans_digit)/a; // キャップ if(ans >= i){ ans = i-1; } cout << ans << endl; }
これでACにできた!型キャスト,a*b+c*d
みたいなときに(long long)(a*b+c*d)
ってやればa,b,c,d
全部を型キャストしてくれるんだと思ってたけど,各計算に対してやらないと駄目なんだね.あとは,最後の式のb*ans_digit
を型キャストするのを忘れててハマっていた.確かにこれでできるし満足したけど,競プロに関してだけ言えば,オーバーフローがあり得そうな問題は全部の変数をlong long
で取るくらいで良いかもしれないな…
メモ
競プロ調べ物メモ
ABC148について
- [A]は
A^B
を出力するだけで通るらしい.しゅごい… - ABC148:水色競プロerのムーブ備忘録(今回は参考になるムーブ):[A],走査でも解けたなあ.頭が悪くてつらい.これ就活の面接でも同じことを思いつかなかった気がする.
- [D]:スターリンソート的な感じのやつかこれ.
- [E]:解説はわかるけど
10^18
とかやっぱり無理では?文字列でやるとか…?と思ったらlong long
はちょうど2^64\simeq 10^18
までできるらしい. - [E]:階乗の方向にforループを回さなくて良いというのが重要だなあ.解説読んで自分で手を動かさないままになってたからピンと来ていなかった.数字1つに注目して,その数字が10で割れるか,50で割れるか,…って見ていったらそれが必要になるけど,数字全体に注目して,10で割れる数字の個数,50で割れる数字の個数,って切っていくのが賢い.2重ループがあったら切る方向を変えたら数学的に和が実行できて実質1つループが消える的なの定石だったりするのかな.これみんな解けるのすごいなあ.
- データ型の最大値の確認:各データ型の最大値を10の冪乗で書いてある.
コンテナ型関連リンク
蟻本
- 2.3節P.54のmemsetについて.
- 2の補数、1の補数の意味と負数の変換方法:1の補数と2の補数というのがあるらしい.nビットを全部1にしたものは2n-1だから,aのnビットにおける2の補数が欲しかったら(2n-1)-a+1=2n-aと計算すれば良い.
- cppreference.com - std::memset:引数を3つ取る.真ん中の引数が何でビットを埋めるかを決める.
-1
は1の2の補数で,1=0...01
だから,2の補数を取ると1...10+1=1...11
になる.真ん中の引数はunsigned char
に変換されて渡されるので,この1...1
が渡される.よって-1
を渡せば,後ろのcount
に何を入れても1で埋めろという命令になる.ちなみに,unsigned
は2の補数で写像する感じで,だからunsigned
が付いた型は倍精度になるんだね.
- 2.3節P.55のコラム「いろいろなDP」の2つ目のコード(P.56)内で,右辺が左辺と同じものを参照していておかしい気がする.いや,配列の同じ要素を使いまわして更新的なことをしている…?遷移とか書いてるし…
- 動的計画法超入門! Educational DP Contest の A ~ E 問題の解説と類題集:参考になりそう.
適当に見かけたリンク
ABC148
感想
- 前回に続いて2回目の参加.なんとか4完できて良かったなあと思ってたら,今回は簡単だったのかあまりレートが上がらない.パフォーマンスというのがかなり悪いので調べてみたら,最終的に正解してもWAしてるとペナルティがあるらしい.あとは時間は結構大事らしい.修羅の国ですね…
- [A]:和を取るという発想,賢い.思いつかなかった.普段の研究でこういう処理(Mathematicaだけど)死ぬほど書いてるのですぐに活かせそう.配列の要素を削る解法を書こうとしたらC++の配列の書き方がよくわからなくてなんか結局30分くらい使ってしまった.vectorの要素を削除する方法をググったりしていた.eraseしても残った要素が自動的に詰められないとは思わなかった.結局setという辞書式配列みたいなので解いた.
- [B]:問題なかった.
- [C]:ユークリッドの互除法を忘れていて焦ったけどググって思い出したので解けた.ユークリッドの互除法ぐぅ賢い.
- [D]:問題なかった.
- [E]:近いところまでは考えが行ってた気がするけどあと一歩,5の数だけ数えれば良いという発想が出てこなかった(それが全て感もあるが).計算量的にこの方針でいけるとかそういう見通しが持てるようになると嬉しい.現状与えられた数字がどの範囲に住んでるのかの部分をあんまり読んでない.部分点があると聞いたことがあったので奇数だと0というのを苦し紛れに出した.
- [F]:内容は素朴だったけど,グラフをプログラム上で書いたことがないので特に何も考えずに諦めた.こういうの解けるようになれるとかっこいいね.
Tips
- ブラウザ上でC++を書いて実行できるサイトを見つけた.エディタとシェルを別々に開かなくて良いので楽かもしれない.
学んだこと
- cinは
>>
を並べれば1文で複数を入力できる. - [C]がintでやるとオーバーフローすること,実行してからじゃなくて事前に気付けるようになりたい.
要確認
- [E]と[F]の実装を見てみる.
- 適当にググって出てきた関数を使おうとすると大体エラーになるの
#include <bits/stdc++.h>
これのせいなのでは?と思った気がする.そもそもこれが何をやってるのかわからないので,調べる. - 巷に落ちているnビット目のビット値を出力するコードはn=1のときもちゃんと使えるか…?
- ユークリッドの互除法の計算量はlogらしい(何故?)
- vectorとかの配列に関する文法を覚える.listとかsetとかmapとか色々あるけど全然認識できてないので,それぞれの特徴を把握しておく.setは非推奨とか出てきた気がするけど,それも調べたい.
- vectorの要素に直接cinしようとしたらエラー吐かれた気がしたんだけど,これは駄目なの…?
人の解説・コードの読解
- Cの解説:ユークリッドの互除法をするまでもないというのは言われてみればそうだけど思考が停止していた.計算量をちゃんと見ることと,素朴な解法を考えることを放棄しないこと.
- けんちょんさんのブログの[C]のコード:gcdの実装が読めなくて調べてみたら三項演算子というのを使っているらしい.ifelseを文ではなく式で書ける.ほへー.あとは,0はFalseとして使えることを知らなかった.みんなコードが綺麗で凄い.確かに再帰で書くと綺麗.
- Eの解説:floorって何?と思ったら小数点以下切り捨てしてするみたいな感じらしい.参考サイトこれとか.
ABC147
以下,問題番号を[A]などと[]で囲って表す.
AtCoderに初参加してみた.5分くらい開始に遅れたが,[A][B]の2問しか解けなくて悔しかった.競プロって勉強しないとこんなにできないものなんですね.[C]はまず,こういうたくさんの標準入力を受け取るやり方からわからなかったので,調べて3重配列で入力を全部受け取れるようになったところまでしかできなかった.2分木的な感じで全員の状態を決めれば良いんだろうけど,それを列挙するループの書き方がわからない.不親切な人を無視して良いのはわかっていた.[C]を早々に切り上げて[D]を書いてたけど,色々とバグが取れずに終了.以下箇条書きで学んだこと・反省点など.
学んだこと
- 競プロ等におけるC++の標準入力
while(cin>>l)という書き方ができる - 文字列の長さを取得/n番目文字の抽出
- 10進数を2進数に変換
- 2進数を10進数に変換
アルゴリズムが面白い - ""と''に使い分けがある.""はstringだけど''はchar
- stringから[n]でn番目を取り出したものとintを比較しない
- 文字列の結合は素朴に+でOK
腑に落ちてないこと
- 数字を適当な桁数になるように0埋めして文字列化
stringstreamでsetwとsetfillする
ただしincludeが必要 - stringstreamをstringに変換するには.str()を使う
stringstreamはstringのように[n]でn番目を取り出せない! - [C]を書いてるときにC++って多重配列をどう書くんだろうと思って調べてみたら,みんなvectorというのを使って書いていた.これはなんだろう.C++の配列はこう書くのかな.
反省
- [D]はXORの実装に手こずって時間切れになってしまったと思ったけど,そもそもXORをどう実装するとか以前に,
2^60
になり得る入力をintでcinしようとしてた時点で駄目だった.文字列受け取って,10進法↔2進法をやる関数を作らないと駄目だった.
今回のハマりポイント
- 10進法→2進法をpowで実装すると結果がおかしくなる
#include <string> #include <sstream> #include <iomanip> #include <math.h> using namespace std; int binary(int bina){ int ans = 0; for(int i = 0; bina>0 ; i++){ ans = ans + (bina%2)*pow(10,i); bina = bina/2; } return ans; } int main(void){ cout << binary(4) << endl; # 返り値は100になって欲しいが99になる }
powの返り値がdoubleで,intだと思ったときに期待する結果よりεくらい小さく返ってきて,それをint化するときに0.99999...な小数部分が消されて結果的に1小さく返ってきてると予想.forループの中でans+(bina%2)*pow(10,i)
をcoutしてみると正しい値が返ってくるのに,最終的にansに入るのは99になってしまうという不思議なバグ.闇を感じた.
[C]の解説コードの読解
- 解説にリンクされてる[C]のコードが難しい.ビット演算というものを使うらしいが,まずシフト演算子から知らなかった.以下,調べ物のメモ.
- シフト演算子
- What is (x & 1) and (x >>= 1)?
- ビット演算 (bit 演算) の使い方を総特集!〜 マスクビットから bit DP まで 〜
if(!(bits & (1 << (i-1)))) continue
はここに書いてあるビットを使ったフラグ管理ってやつみたいですね. - ^(ハット演算子)
ビットごとのXORはこんな簡単に書けるのか for(int bits = 1; bits < (1 << N); bits++)
を見てビット演算のforループなんて書けるのかと思ってたけど,違いますね.1 << N
は単に2^N
のカッコいい書き方.でもこれならpow
を使わなくて済むから素晴らしいな.- 本体の2重ループ
if(((bits >> (x[i][j]-1)) & 1) ^ y[i][j]) ok = false;
でやってることは素朴.正直者が居たら,その人の発言と,その人の発言で言及されてる人の状態を照合する.bits
のx[i][j]
番目を取り出すのをこうやって書けるというのは,言われたらわかるけどPythonみたいな言語に冒された頭ではちょっと思いつく気がしない.XORを使ってるのは何でかと言うと,bits
において0
を正直者に対応させてるコードだから.別にここは&
にしても,forが全体を走れば結果は同じだと思う.
2019年の抱負
- 研究/就職
まずは現状を確認する.D進するかはM1の12月末現在決めることができていない.また非常によろしくないことに,進学を断られるのが怖い気持ちがあり,ボスにも未だその相談をしていない.仮に進学をするとすれば,とにかく論文数を稼ぐことが肝要である.5月末にはDC1の締切があり,それまでに現在の1本に加えてもう1本出せるように頑張りたい.しかし,これは目標と言うには微妙に思える.現在関わっている共同研究が順調に進めば,学振までに1本,年内にもう1本は固いように思えるからだ.contributionの問題で片方は身を引こうかと思っているが,しかし5月までにpreprintを出すことは十分可能だろう.従って「目標」を述べるなら,これら以外に自分主導のものを1本,口頭発表を2件程度,というところだろうか.分野の関係もありあまり手頃な発表機会が見つからないのが悩ましいところだ.自分主導の論文を1本というのはあまり現実的ではないかもしれない.まあ0.5本,という訳にはいかないし,こうしておこう.よく考えたら修論もあるし,これは再来年になりそうな気もする.
就職をするとしたら,どうだろう."良い"就職先を見つける,というのが目標になるのだろうか.しかしこの場合の研究との向き合い方が自分にはわからない.一口に就職をすると言っても,今年ではなく来年というのも考えており,そのバリエーションもある.就職するかどうか迷っている理由に,ほんの数年後には関わらなくなるものに,今この瞬間どう向き合えば良いのかわからないということがある.正直こんなモヤモヤした気持ちで就職して幸せにやっていけるか自信がないので,今のところは7:3くらいで進学に傾いている.就職に関する目標としては,この辺りの見聞を広めて考えを進めておくと言ったところだろうか.
- 読書
非専門書・技術書を月1冊以上読む.月1冊というのはカスみたいな目標かもしれないが,今が酷すぎるのでまずはこのくらいにしておこう.慣れてきたらもう少し早く読めるようにもなるだろう.
- 働く
これは就職という意味ではなく,アルバイト・インターンに採用されるということ.今の生活では定期的に新しい人間と知り合う機会があまりにも乏しく,学生生活が長くなればなるほど自分の市場価値が落ちていくことを危惧している.
- 英語
悲惨な英語をなんとかする.DMMなどオンライン英会話を勇気を出して始める.
- 創作
年々息が詰まって死にそうな感覚が増しているので,そろそろなんとかしたい.今年一時的にやっていた3DCGを再開するというのも手だが,個人で何かできるようには思えないのがやはりネックに思える.DTMに興味があるが,ここではそういった具体的なものを挙げるのはやめておく.コミケにサークル参加できたりしたら最高だと思う.が,それはもはや抱負ではなく願望かな.
- 登山
登山は完全に気分で行きたいので,抱負などを挙げるつもりはないが,強いて言うなら2500m級に登ってみたいのと,夏に富士山に行けたら良いなと思っている.縦走などはまだ早いかな.自分の動機的に単独行以外はあまり考えられないのだが,もし機会があれば誰かと登ってみたいとも思う.
- ゲーム
コンシューマゲームを1本以上プレイする.
- 勉強
幾何的なことがわかるようになりたい.具体的には中原トポロジーの2巻くらいの知識をつけたい.
ブログを始めるにあたって
これまで何度もブログを作っては放置している訳だが,今回の動機を書き留めておきたい.一つは投稿日時から察せられるだろうが,単純明快,来年の抱負を挙げたいと思ったからだ.もう一つは,ブログというのが自分にとってやはり「丁度いい」からだ.日記は公開の有無に関わらず続かないし,できれば匿名の人間に見てもらった方がモチベーションになるが,公開すると日記性が損なわれて書くことが制限されてしまう.ツイッターではなくまとまった分量の何かを書きたいと思ったときにはやはりブログが良いように思う.ただ運用の仕方は難しくて,ツイッターでは書かないようなことを書きたいと思ったとき使う訳だが,後から見返したときに自分の黒歴史センサーに引っ掛かってしまうと爆破してまた次のブログに行くことになる.そうするとデータベースとして散逸して最悪だし,過去の記録が山積していかないのは悲しい.最近よく見かけるようなSNSに紐づけて1回切りの使い捨てでブログを運用するようなことはできればしたくない.という訳で,今回は丁寧に運用していけたら良いなと思う.