こんにちは。
2023年新卒入社の冨井 樹と申します。
初めての記事なので、自己紹介と最近知ったアルゴリズムを紹介したいと思います。
プロフィール
名前: 冨井 樹 (とみい たつき)
年齢: 20歳
出身校: 沖縄工業高等専門学校 メディア情報工学科
趣味: 競技プログラミング、スポーツ観戦、ゲーム
スポーツ観戦はNBA、中学生の頃やっていたバドミントンをよく見ています。
スポーツが好きというよりは、人間の洗練された動きを見るのが好きです。
ひとつのことにどっぷり
中学生の頃、映像作品を見たり写真を撮るのにハマっていたので、
「面白い映像作品を作りたい」と思い、沖縄高専のメディア情報工学科に入学しました。
1年生の時には、授業とは関係なく映像作品を作ったり、鳥の写真を撮ったりして、映像制作へのモチベにあふれていました。
しかし、2年生の時に教授に「競プロやってみたら?」と勧められ、競技プログラミングに出会ってしまいました。
自分で考えて書いたコードが「正しく動くか」がすぐわかる & すごい人のコードがすぐ読めるのが楽しすぎて映像制作へのモチベは急降下していきました。
気が付けば、映像作品を作るために高専に入ったにも関わらず、競技プログラミングと出会ってからはずっと競技プログラミングをしています...
映像作品も競技プログラミングもどちらも大好きですが、ハマると1つのことにだけに集中してしまう性質があるようです。
これからFIXERにハマっていきたいと思います!
よろしくお願いします。
ポラード・ローのアルゴリズム
最後に、最近知った面白いアルゴリズムを紹介します。
ここでは詳しく説明しませんが、フロイドの循環検出法を使った、高速な素因数分解のアルゴリズムです。
詳しく知りたい方はこちらの記事を参考にしてください。
フロイドの循環検出法については正直よくわかっていません...
数列の循環を検出するアルゴリズムで、約数の探索に使われています。
素数判定パートではミラーラビン素数判定法を使っています。
ミラーラビン素数判定法はフェルマーの小定理に基づいた面白いアルゴリズムです。
1/4の確率で判定に失敗しますが、ある範囲の整数ならば決定的に素数判定できるようです。めっちゃ速いです。 (参考)
他にも面白いアルゴリズムがあったら教えてください!