[Boot camp for Beginners] B - Ruined Square [Rust]
概要
AtCoder Problems: Boot camp for Beginners をRustで解いてみる
学んだことmemo
- 急にむずい
- 長さ求めて回転させればいい...?
- そもそもどう計算していいかがわからない
- わからないので解説見てみる
- そのまま回転行列素直に実装してみた
- 提出 #47824919 - AtCoder Beginner Contest 108
- sampleすら通らない...
- cos() / sin() の計算に誤差があるのでそのままでは解けない
- cos() / sin() の誤差どうするか
- 今回の問題だと90°しか回さないので、細かい計算は省ける
sin(90°) = 1
とcos(90°) = 0
と置いて、実際の計算を省いて解くと誤差を無視できそう- この方法でいけた
- 知らないと解けないタイプの問題だったので特に難しかった
- 高校数学の知識とはいえ、忘れてるから辛い
- rust での行列計算は ndarray - Rust を使うというのが今回の学び
- 最終的に使わなかったが、f64 に sin() や cos() が生えてるのを知れたのも学び
- また、f64 は
to_radians
で radian に変換できるのもわかった
[Boot camp for Beginners] B - Ruined Square [Rust]