/ 最近 .rdf 追記 編集 設定 本棚

脳log[20230411]



2023年04月11日 (火) [AtCoder]「AtCoderさんへ 有理数ジャッジを使う際に mod 998244353 で合同な整数を全部ACにするのをスタンダードにして浸透させましょう 今日のCF-D1Dのような悲劇が防げます どうかお願いします 物理好きより」■リプライにある Yes と YES と YeS とか余分なスペースとかについてまずは。たいていの言語は識別子の大文字小文字を区別するし自分が書くときにそこをいい加減にすることはないんだけど、では受け取るジャッジがどうあるのがベターかというと、そこは答えの本質ではないしあえて WA として切り捨てるほどの違いでもないかなと思う。メイリオあたりから全角数字へのアレルギーがなくなった者並の感想。何か、区別させたい人って国語のではなかったりするテストで漢字のトメハネハライくっつけるはなすの違いに赤ペンでチェックを入れる小学校の先生とダブる。Twitter でそういう画像が上がると「正解だろ」「国語のテストじゃないのに」って意見が目立つけど、自分は違いを知っていて崩すのと最初から区別する目を養う機会を奪われているのでは全然違うと思うし、小学校の先生って教科担当ってわけではないから、いまどきそういう手間暇をかけた指導はありがたく感謝していいと思う。立場がブレてますけども。意味のある違いかという判断が人と状況によって分かれるってことなんだろう。答えは出ない。でも判断が分かれるところで区別できないこと気がつけないことは不幸だと思う。そのことにどういう姿勢で臨むか。(問題ごとに異なるにせよ基本的に) ABC で区別されていて ARC/AGC で区別されていないらしいというのを初めて知ったんだけど、その違いに説明は付けられる。■mod について。直近の ABC297-F では「得られるスコアの期待値を mod 998244353 で求めてください。」という問題文の直後に折りたたまれて補足説明的な感じで「(前略) R×Q≡P(mod 998244353) かつ 0≤R<998244353 を満たす整数 R がただ一つ存在することが証明できます。この R を求めてください。」と書かれていて、答えの範囲が疑問の余地なく書かれてはいるんだけど、mod 998244353 で求めてください、という本文に立ち返ると 3 (mod 2) って 1 (mod 2) のことではなくて 2 を法とするとき 3 と 1 が区別されないってことなので、998244353 以上の答えがなんで間違いになるのかなという気持ちになる。一方で、OLE という最レアジャッジがあるので無制限にリソースを奪われる心配もないはずだけど、ジャッジのコストやプログラミング言語の整数型サイズなど現実的な判断として 0≤R<998244353 の範囲で一意に決まる数(R)を答えてくださいという要請も理解できる。ただし真の値を 32 ビットの範囲に丸める便宜的な(本来の意味で姑息な)やり方ではあると承知していていい。最近読んだ「新しくプログラミング言語を作る際に数値型をどうするべきか」みたいな話で、今の当たり前がいつまでも当たり前ではないと思うし、ましてや今の当たり前から外れることが「キモい」なんてことはないはず。