2024-01-01から1年間の記事一覧

64bit乗算の上位部分の計算

x86やRISC-Vなどの多くの機械語命令セットには、64ビット整数同士の積(128ビット整数になる)の上位64ビットを求める命令が存在します。 しかし、C言語やC++の言語標準には128ビット整数が存在しないため、これを簡単に得ることができません。 gccなどのコ…

素数を数えるアルゴリズムの理解

与えられた整数に対し、以下の素数の数を数えるアルゴリズムを理解します。 Library Checkerで高速な実装を調べてみると、提出107115が最速ですが、このソースコードは未定義動作を含んでいます(ランキング上位を見てみると、62015, 107115, 147826, 150290…

MN-Core 2の機械語ゴルフに入門する

今週の水曜日にMN-Core勉強会があり、そこでMN-Core 2のエミュレータが公開されたようです。 そこで、MN-Core 2の機械語(アセンブリ言語がvsmと呼ばれているらしい?)のコードゴルフをやってみます。 MN-Core 2の機械語なんて書いたことないので、丁寧に勉…

60bit整数を高速に素因数分解する

Library CheckerのFactorizeという問題でfastestを取ったので、そのコードの解説です(速度ランキング)。 Factorizeは、までの整数が高々100個与えられ、それらを素因数分解せよ、という問題です。 概要 上位陣(13ms~15ms)の解法では、ECM(楕円曲線を用…

Unityのgit管理をWSL2でやる

最近久しぶりにUnityでゲーム作りをしています。 共同で開発するためにgitを使うのですが、gitコマンドをWSL2から使用するといまいちな感じになったので、何とかする方法のメモです。 プロジェクトはWSL2の外に作る UnityプロジェクトをWSL2の中(/home/lpha…

なぜドルコスト平均法しないほうがいいか

新年になりました。 タイトルに関してですが、なんだか話があったので軽くまとめておきます。 要点としては、 投資の期待値が標準偏差に比して大きい(インデクスファンドなどはこの条件を満たす)投資商品がある場合、 余剰資金があるなら、 何も考えずにそ…