/ 最近 .rdf 追記 設定 本棚

脳log[2023-11-25~]



2023年11月25日 (土) [AtCoder] 今日はトヨタシステムズプログラミングコンテスト2023(AtCoder Beginner Contest 330)があった。自分のすべての提出。結果はまあいいや、F 問題の精進を日記に書けることに気持ちを良くしてふりかえっていこう。■A 問題「Counting Passes」。Array#count■B 問題「Minimize Abs 1」。問題文が難しすぎる。数分かけてじっくり根気よく投げ出しそうになる気持ちを抑えながら理解する必要があった。要するに、ある範囲(L-R)に含まれる整数のうち最も A[i] に近い数を、A[1] から A[N] について答えよ、という問題だった。ループと配列はいらなかった。繰り返しなしでも十分に B 問題だったのに、ループがさらにややこしくしていた。答えの候補は {L,R,A[i]} に限られるんだけど、謎に {L,R,A[i]-1,A[i]+1} を候補にしてペナルティ5分。根気が尽きていた。■C 問題「Minimize Abs 2」。平方数を2つ足してある数 D にどれだけ近づけられますかという問題。図形的な意味があるかは知らない。大きくなりすぎない範囲の平方数を列挙して調べた。■D 問題「Counting Ls」。ちょっと方針に迷った。グリッドをスキャンしながら2種類の累積和を更新しつつ数えていけるかと思ったけど、欲しい数が足りていないことに気がついて頓挫した。正解方針はこう。最初にある行またはある列にある o の数を数えておく。その後もういちどグリッドをスキャンして、ある点が L 字の角にあたる場合の数を数えて足し合わせて答えにする。ところで、@kyopro_friends さんは頓挫せずに解ききってしまったようですよ。「フェネック「アライさんは最初このことに気づかずに、L字を置く向きを4通り試す実装をしてるんだけどねー」 アライグマ「そのことは秘密なのだ!」」■E 問題「Mex and Update」。デバッグ時間が1分14秒足りなかったせいでこれは精進です。こいつ先々週も似たようなこと言ってたな(「なんてことのない F 問題を通すのに2分6秒ぽっち足りなかったのがくやしい」)。セグメント木を使って該当する数のうち最も小さいものを探す。値の上限が 10^9 だということで座圧したのだけど、そのせいでバグらせたケースが 3 1/0 2/1 0 みたいなの。クエリでは数列を書き換えていないので {0,2} の MEX である1が答えなのだけど、座圧しているせいで1番小さい値(0)と2番目に小さい値(2)のあいだに隙間があることに気付けなかった。+1 した値を加えておおよそ2倍の数の数字を扱うことで AC になったのだけど、バグの原因を見つけるのに手間取って時間が過ぎてしまっていた。Ruby での他の提出より倍くらい遅いみたいだから、もう少しスマートな解決法があるかも。■F 問題「Minimize Bounding Square」。終了後に問題を読んで、根を詰めずに休み休み考えてだいたい1時間とちょっとで AC になった。時間内に解けた可能性はゼロなので悔しさはなく解けた喜びだけがある。まず X 座標と Y 座標に問題を分ける。X 座標(Y 座標)の幅をどれだけ狭められるかは左からの累積和と右からの累積和でわかる。Sandwiches (20230902) と同じ要領で、座標の和と個数から操作回数が求まる。ところで、全部でいくつ狭めるかが決まっているときに、右からいくつ狭めるかと左からいくつ狭めるかは貪欲にステップを刻んで決めることができない。1狭めるだけなら左から狭めた方が得なケースでも、3狭めるときにはすべて右から狭めた方が良くなるケースというものが考えられる(※)。N≦20万なので答えを二分探索する中で線形時間のスキャンをしても大丈夫。2秒を 67 ms 超えたけど(#47948117)、制限時間が3秒だったのでセーフ。■Twitter の成れの果ての何かを眺めているとギリギリで E が通っていても緑パフォだったらしいとわかる。じゃあなんにも惜しくねーな。そのラインは伸るか反るかの最前線よりずっと下だ。■F 問題についてすごいツイートを見かけた。「FのC++の最短コードを見てる atcoder.jp/contests/abc33… X/Y座標を長さLの中に包含させる最小の操作回数は外側から順にペアを作ったときに max(ペアの長さ-L,0)の総和になる ってことだと思うけど頭いい」。なんでそれが答えになるのか全然わかんない。■※ 嘘を書いていたっぽい。貪欲に狭めて良い……らしい。「アライグマ「いま左右の端にある点のうち少ない方を全部1個となりに詰めるのが最適なのだ。ということは答えの関数は、こういう感じの折れ線になるのだ。元の2次元の問題なら、x方向とy方向で解いて足せばいいのだ!」」。考慮してその結論が間違ってるなら何を頼りにして答えが導き出せるというのだ。■■■E 問題。座圧したときの値の抜けは落とし穴というよりも答えへのショートカットだ。A 数列に存在せずクエリで設定されることもない値は常に MEX として選ばれる可能性がある。そういう値の最小値が答えの上限になる。問題に対する総合的な理解が足りていないから見落としてバグらせる。提出 #47966425 (AC / 1211 Byte / 642 ms)。BIT で MEX 候補の上限までを座圧なしで管理したら 1973 ms だったのが 642 ms まで早くなった。■F 問題。ゴルファーの理解できない解法はさておき貪欲に四辺を内へ寄せる解法を実装してみた。提出 #47975884 (AC / 976 Byte / 642 ms)。2067 ms だったのが 642 ms まで縮んだ。クラスを使ってコードの重複をできる限り省いたつもりだけど、それでもかなーり面倒くさい実装になっている。


2023年11月21日 (火) 新聞のコラムでムーンウォークとななめ立ちの具体的描写を読んで、それが先日『プロトコル・オブ・ヒューマニティ』(長谷 敏司) を読んだところだということもあって、そうかマイケル・ジャクソンってダンサーだったんだなと腑に落ちたのだけど、すぐに数行前の冒頭で「歌とダンスで世界を魅了したマイケル・ジャクソン」と紹介されていたことを思い出したのだった。そもそもマイケル・ジャクソンを知らない人がいるとも思えないし、自分も名前と一種異様な姿を映像で見たことはあるけれど、知った最初からすでに伝説的な存在であり断片的な映像が目に入るばかりだったから、本業を真正面から見たことはなかった。実はマイケル・ジャクソンについて知っているようで知らなかったし、それ以上にダンサーとはいかなるものかということを全く知らなかった。おそらくダンサーなるものとのほとんど唯一といえる接点は『月の子』(清水 玲子) の主要人物アートがダンサーだという、その程度のものでしかない。だから『プロトコル・オブ・ヒューマニティ』においてダンスを含む小説世界がバシバシと堅固に言語化されていく様は非常に気持ちよく新鮮だった。そうだったのかという発見と納得の連続だった。著者の人はあとがきで専門家への配慮から「くわしいかたからは、言いたいこともおありかと思いますが、ご容赦を」と書いていたし、十割からの減点法で言いたいことが当然に出てくるのかもしれないけど、素人である自分にしてみればゼロだった理解が9割に引き上げられたくらいのつもりでいるので、そこは誇ってほしいと思う。小説主人公の父親をきっかけとする中盤からの流れも見事に統合され、「今年のベスト1冊」におさまらない1冊になっていた。あとがきが「今、キャリアの中でも特別なのではないかと感じる作品を、ちょうど手離れして、みなさんのところにお届けしようとしているところです」から始まるのだけど、これがうぬぼれでも誇張でもないことに読者の立場から完全に同意する。すごかったんだよ(語彙力)。


2023年11月18日 (土) [AtCoder] 今日はSky株式会社プログラミングコンテスト2023(AtCoder Beginner Contest 329)があった。自分のすべての提出コンテスト成績証。ABCDF の5完で低め安定といった成績。E 問題がおもしろかった。そしておもしろい問題にはやられてしまう。ABC って基本的に筋トレだと思うんだよね。反復練習であり、反射神経とタイプ速度を競っている。どの問題までがそうかというのは人それぞれだけど、自分の場合は D 問題までは常にそう(本当に?)。E、F 問題はどちらとも言えなくて、だけど解けるものは典型度が高め。だから昨日の E 問題みたいなのにはやられる。ではふりかえりと精進を。■A 問題「Spread」。はい。■B 問題「Next」。罠がありますね。最大値が複数あるときに1位タイの値を2番目の数として出力してはいけない。サンプルがちゃんと仕事をしていたので罠ではあるけどひっかけではない。■C 問題「Count xxx」。14 分かけました。ループで書くことはできるし、各アルファベットごとに単純化した問題を解くこともできる。でも書きたくないと思ってしまった。String#scan メソッドだとか /(.)\1*/ みたいな正規表現パターンでうまくできないかとあれこれ考えて、できなかった。同じ文字の繰り返しを意味するパターンって難しくない? キャプチャを使うとできるけどそうすると String#scan メソッドが役立たずになるので困ってしまった。■D 問題「Election Quick Report」。D 問題で BIT とかプライオリティキューとか使いたくないよね。考えました。最高得票者が入れ替わる瞬間がつかまえられさえすればいいので、誰が最高得票者で得票がいくつかがわかればそれでいい。■E 問題は解けなかったのでひとまずとばして F 問題「Colored Ball」。ただのマージテク。考える時間も書く時間もいらない。E 問題を考えていたせいで F 問題の AC が 30 分近く遅れたのを挽回するためには、最終的に E 問題も通すほかなかったんだけど、結果はあのとおり。残念無念。■■■E 問題「Stamp」。難しかったよね。時間内のこの提出 #47726211 (WA×5) だけど、19 行目が嘘貪欲なのはわかっていて、でも残り数分で新しい方針をでっちあげることもそれを実装することもできない。昨日はもうお手上げだった(あ、この日記は翌日に書いています)。■提出 #47752502 (AC / 515 Byte / 393 ms)。これは翌日の今日なんとなく転がしていたアイディアを実装したもの。貪欲なのは同じ。違うのは起点が複数あること。昨日は左右端を起点にしてスタンプを上から押したり下に差し込んだりする操作を考えていた。今日は T と完全一致するすべての場所を起点にして、そこから(端でなければ)左右にスタンプを繰り返し差し込む操作を考えた。操作の起点を複数考えることでスタンプを上から押す操作を考えなくて済んだのが昨日との違い。複数の可能性を考えなくてよくなり貪欲法がはまるようになった。最終行の判定がやや複雑で条件が3つある。両端の条件に2つで、貪欲法と貪欲法の狭間に残る部分の判定に1つ。■たしかに D 問題とのあいだで配点はひらいているけども、これを E 問題に配置しようって判断が、それもあの F 問題の前に配置しようって判断が謎すぎる。でも考えるのが楽しい問題だった。知識問題というよりのーみそこねこね(コンパイル)な問題だったのでは。


2023年11月17日 (金) HTTPS(SSL/TLS) が Web をバージョニングして過去をふるいにかけるけど、同じくらい自分にとって癌なのが Webpack だなと最近たてつづけに感じる。ブックオフオンラインがこの前のリニューアルから使えなくなったし(お気に入りに入れられない、カートが見られない)、以前購入したものを買い直そうとしたここ(Linounoリノウーノ)もスクリプトのエラー(「SyntaxError: invalid property id」)でカートが見られなかった。通販のために最新の Firefox をインストールするために Windows 11 を買うところから始めなければいけませんか? でもそうすると ScanSnap S1500 はどうなりますか? 同じように使えますか? Adobe Acrobat 9 Standard はどうですか? もうこれで PDF を作ることはできなくなりますか? じゃあなんのためになんの魅力もない Windows 10 や 11 にするんだろう。足を引っぱられる話と、それがようやく多少は復旧したという話ばかりが聞こえてくる。仮想環境に Ubuntu を入れてみたりもしたけどそれがいいとも思えなかった。怒ってるんじゃなくてね、困ってる。必要だし欲しいから困ってる。■最近はログインすらままならない Web サービスが多くて、そこでふるい落とされることが珍しくない。不特定の人間がスクリプトを埋め込めば XSS 脆弱性だけど、サービス提供者がログイン画面に無分別に埋め込むスクリプトはどうなんでしょうね。利用者からは区別できないし、基本的に外部サーバーから来るものはブロックしてるよ。最近はブロックを解除しても機能しない、最先端高機能デラックススペシャルなスクリプトが目立ってあきらめることが多い、というのが今日の話。


2023年11月15日 (水) 残念な電子レンジについて書きたい。安くても必ず何かが欠けているだろうという点において信頼を寄せているメーカーなのだけど、買う人がいて、あるので使っている。■1. 使いやすいアナログボリューム的なつまみがあるのだけど、これを操作の起点にできない。使用頻度で考えて特定の操作を割り当てても良さそうなものだけど、ボタンを押して、つまみをひねって、また別のボタンを押してはじめて動き出す。少しだけ延長したいときも同じ。つまみをひねっても延長できない。ボタンを押してひねって別のボタンを押す必要がある。フラットで極めて押しにくいボタンなので何回も押したくないのに。■2. ピーピーうるさい。計ったら毎分5、6秒のあいだピーピーピーピーピーと5回鳴っていた。文句はいっぱい出てくる。まず、電子レンジはそもそも動作音がうるさいのだから、停止するだけで十分なシグナルになる。極端なことを言えば鳴る必要がない。内部の明かりが消えるという視覚的な面でもシグナルがあるので、耳が聞こえなくてもわかる。うるさく鳴る必要がない。2つめ。停止した電子レンジを放置しても火が出るなんてことはない。こちらはわかっていて、他のことをしているから放置しているのだ。お前に付きっきりじゃないんだから、しつこく呼び出すんじゃない。3つめ。黙らせるために扉を開くといつまでも内部の明かりが点灯したままになる。ありがとう。開けっ放しで放置することも許してくれないんだね。結局、バタンバタンと開けてすぐ閉めることで永久に黙らせることにしている。その方が冷めないしね。この、開けるのにそこそこ固くて、閉めるのにバタンと音を立てるしかない扉も気に入らない。前のものは常に半開きになるせいで作動しなくなって貼り付けた磁石で補助されていたので、トレードオフがあるのはわかるけど、今のは最初の新しいうちからがさつで気に入らない。4つめ。できあがって放置するからうるさいのだからとできあがりを他のものと揃えようとして、中にものを入れて強度と時間をセットしてスタートボタンを押すだけの状態にしておいた。そしたらしばらくしてピーとひと声鳴いてすべて忘れた。ピーピーピーピーピーとはいつまでも鳴くし、開ければいつまででも点灯してるけど、設定されたことはすぐに忘れる。すばらしく馬鹿な機械。ユーザーが何をしているか、何がしたいか、どうあって欲しいと考えているかということが全く読めていない。見事なほどに期待を裏切る。■バランスを取るために。パックごはんを温めるのに 15 分湯煎していたのが2分に短縮されはした。なくても数年間困っていなかったし、いらいらさせる機械ならない方がましだとも考えるけど、あるならあるで最低限の役目は果たしている。いくらで買ったのか知らないけど、これが値段なりというものなのだろう。高くていいものか安くて得なものがいいと思うけどね。■■■話がややこしくなるだけの蛇足。最初の一文「安くても~機能が欠けている」の接続「~ても」のこころについて。機能が欠けているのは安いことの帰結だと考えられるのだから、逆接である「ても」より順接の方が適切なのではないかという疑問への答え。なぜ逆接が選ばれたのか。安いということで「いいな、買おうかな」という期待を抱かせるのだけど、機能や完成度の不足を知って「じゃあやっぱりいいや」と期待外れに終わる、その心理の反転が逆接を選ばせたのだと思う。間違ってないよね? だけど「安いけど~欠けている」に書き直しても通じるしより適切な気もするんだよな。元の文は補足が必要で言葉が足りてないのか。


2023年11月11日 (土) [AtCoder] 今日はトヨタ自動車プログラミングコンテスト2023#7(AtCoder Beginner Contest 328)があった。自分のすべての提出。くやちい。たいへんくやちい。なんてことのない F 問題を通すのに2分6秒ぽっち足りなかったのがくやしい。重み付き UnionFind のややこしさは知っているつもりで、結合する2つの頂点を縛る重みとそれらの根の重みを混同する落とし穴にはすでにはまったあとなので気をつけることができる。もちろんじっくり慎重に考える必要はあって、それでも一度は間違えて修正したのだけど。時間内に取り切れなかったバグはね、手癖で書いてる根の交換。効率良く集合をマージするためにサイズを見て根を交換することがある。根っこだけしか交換してなかった! あほ! ではふりかえり。■A 問題「Not Too Hard」。フィルタして足す。コーナーケースは足す数がゼロ個のとき。サンプルの3にちゃんとあるが事前に読めていた。■B 問題「11/11」。ありうるぞろ目は割りと少ないのだけど、総当たりをしてもやっぱり少ないので間違いにくいやり方をすればいいと思う。10 で割った余りで桁 d を取り出したら許される月・日は d か dd しかない。■C 問題「Consecutive」。累積和で数えるんだけど、範囲の内と外で接している2文字の一致を数えてはいけない。すごーく考えて累積和の左右の添字を決めた。8分。■D 問題「Take ABC」。下手なことをすると TLE かと思わせるけど、削除が連鎖することはないので貪欲に操作をすればいい。新しい文字列や新しい配列を操作のたびに作るような初歩的なミスをしない限りは大丈夫。■E 問題「Modulo MST」。制約がものすごく小さいので総当たりができる。だけどやっぱり AtCoder の問題なので、頭の悪い総当たりは許してくれない。はい、頭が悪いです。最終的に辺を総当たりで N-1 個選ぶ DFS を書いた。TLE を1回出しながら1時間かけて書いた。combination メソッドを使ったステートレスな判定が書きやすく理解もしやすいけど、TLE だったので DFS で漸進的に処理を進めなければいけなかった。制約をガイドにして解法を決めているきらいがあるので、制約がゆるゆるだと途方に暮れがち。そして E 問題で無意味にゆるいことなんてない。■F 問題「Good Set Query」。問題文が難しい。でもまあ苦労して読むと、長さ N の数列に対して、Q 個の制約を順番に、条件を満たす限り貪欲に追加していくという流れらしい。制約が連鎖している要素の全体に対して、基準点を内部に選んで基準との差分で制約を持つと効率良く判断ができる。見え見えの重み付き UnionFind。だけど残り 25 分では書けなかった。バグ取りに2分6秒足りなかった。■F 問題までのどこに難しい問題がありましたか。あほがいただけ。手も足も出ない難しい問題でたたきのめしてくれた方が慰めがあるってもんよ。


2023年11月09日 (木) 今日見せてもらった Excel ファイルで使われていた式があざやかに簡潔だったので書きたい。まず前提として段階制の従量料金があって、たとえば最初の 10 単位(1-10)については単価が 10 円であると。次の 10 単位(11-20)は単位当たり 11 円であり、以降 21-40 が 13 円、41-100 が 17 円、101-200 が 22 円で、あとはずっと 30 円だという具合。使用量が 15 なら 10×10 + 11×5 = 155 円になる。A1 セルに使用量が入っているとして、こういう式が書いてあった。=SUM( (A1 > {0,10,20,40,100,200}) * (A1 - {0,10,20,40,100,200}) * ({10,1,2,4,5,8}) )(※記憶を頼りに書いてるし Excel も持ってないので不正確な部分があるかも)。まず自分は波括弧記法を知らないんだけど、たぶん6行1列か1行6列の行列を表してるんだろうなと思う。そして行列にスカラー値が掛けられるのはわかるけど、比較演算を分配する発想がなかった。1,0 に変換されているらしい真偽値の仕様も知らない。そして単価表を反映した3番目の行列の中身、特に2番目以降の値が注目に値すると思う。発想の転換ですよ。それで全体としてこんなに簡潔になった。値上げをこの式に反映させることはできるとしても、イチからは書けないよね。


2023年11月08日 (水) [AtCoder] 精進。ABC212-F「Greedy Takahashi」(黄 diff)。問題選びは AtCoder Daily Training ALL 2023/11/8 による。自分の場合最終の I 問題だけが解かれていないというケースが最も多い。次に多いのは全問解かれている。だから水色までの人が対象になるのかな。2年以上前の ABC 本番では TLE に終わった問題が今ではどうか。■提出 #47384638 (AC / 1377 Byte / 1264 ms)。無事通りました。タイムラインに沿って高橋くんを移動させていけばいい問題。だけどうっかり Q 人の高橋くんを M 回移動させるわけにはいかないから、高橋くんの集団を移動させたい。一度合流した高橋くんは以降同じルートを辿る。集団と集団の合流に神経を使う。マージテクでもいいのかもしれないけど UnionFind で。集団から位置を、逆に位置から集団を引けるように追跡している。合流する集団と付随情報を同時に管理するのがたいへんややこしかった。■クラス名から判断するとダブリングで通している人もいる>提出 #24727196。その解法も一瞬考えたけど、1つ上の親、2つ上の親、みたいなのと違って何が倍々になるのかわからなくて捨てたのだった。今改めて検討すると、1つ目に乗る電車が何か、2つ目に乗る電車が何かで良さそう。電車が特定できれば発着時刻も発着場所も、必然的に次に乗ることになる電車も特定できる。あとは到着時刻 T(+0.5) が Z 未満である限りできるだけ多くのバスに乗るようにすればいい。今気がついたけど電車じゃなくてバスだった。変数名 Tr(ain) にしちゃった。■提出 #47398469 (AC / 619 Byte / 1357 ms)。これはダブリング解。NxTr 関数の 26 行目に条件式が(ループの中の更新条件と同じ式があらためて)必要だということに最後まで気がつかなかった。境界条件が難しい。


2023年11月07日 (火) 今日は『高校生だけじゃもったいない 仕事に役立つ新・必修科目「情報Ⅰ」』(中山 心太 (著) / PHP研究所)を読んでいる。情報Ⅰにとどまらない内容でタイトル通りに今を生きるすべて人が読んで何かしらを得られる本だと思う。ほどよく著者の色が言葉にのっているのが教科書とは違う良さだと思う。そしてこの著者の人はできる人なので(Twitter を読んでの感想です)、おもしろくないわけがない。現在 93 ページ。ブックマーク代わりにしょうもない揚げ足取りを。■39 ページ。「コンピュータの動きを変えるには、コンピュータの中のデータを少し書き換えればよいのです。すなわち、社会が環境の変化に対して、記録されているデータを書き換えるだけで対応できるのです。」 社会が~がどこに繋がるのかわからない。たぶんがを抜いて社会環境の変化だと思う。■71-72 ページ。「サービス利用や書類において利用者ごとに割り振られる符号で、パスポート番号、基礎年金番号、運転免許証番号、住民票コード、マイナンバー、保険者番号などがあります。」 個人情報の例として保険者番号が挙がっている。元になった政府のページ(「「個人情報保護法」をわかりやすく解説 個人情報の取扱いルールとは? | 暮らしに役立つ情報 | 政府広報オンライン」)からが保険者番号なので間違いではないのかもしれないけど、保険者って組合などのことなのでは? 保険の文脈で個人に対応するのは被保険者という用語なのでは? 保険者番号って「サービス利用や書類において利用者ごとに割り振られる符号」(本と Web より)とは違うのでは? 保険者番号について検索したら保険者番号の中にも保険者別番号みたいな紛らわしい番号が入れ子になってるみたいだけど、だからといって変わることはなさそうだし。■74 ページ。「さまざまなサービスのログインの際に、ID とパスワードのみならず、30 秒ごとに更新される6桁の数字を打ち込んでいます。これにより IT とパスワードが盗まれたとしても、スマートフォンも同時に盗まないと IT サービスにログインできないのです。」 盗まれるのは IT とパスワードではなく ID とパスワードだと思う。直近で IT というワードを使っているせいもあるだろうし、アイティとアイディという音の近接性に引っぱられたタイポということもあると思う。実際濁点の有無によるタイポってよくやるんだ。キーボード上での近接ではなく音の近接に引っぱられて間違える。■93 ページ。「見れません」 学校で習ったら抜き判定法。まず未然形(~ない)を作ります。語幹が「~aない」というようにあ段に変化するなら五段活用動詞なので可能動詞が作れます(作るの未然形は作らないであり tsukura-nai なので。一方で見ないは mi-nai であり上一段活用なので作れない)。今になって面白いと思うのは、これって完全にネイティブ向けの説明だなというところ。まず未然形がどうかという答えがあって、そこから活用のルールを得ているところ。ルールに従って活用させているのではないんだ。判定法を役立てるためにはまずら抜きを疑うことができないといけないんだけど、今では「見れる」より「見られる」の方に違和感を覚える人の方が多いだろうなと思う。だって年齢を問わずそんな風に話す人まわりにいないでしょ? 「俺は例外だ」って言いたいけど、自分は話をしない人だった。■■■122 ページ。「社会人として知っておかなくてはならいのは」 脱字。■154 ページ。「生産性を改善させるためは」 脱字。■159 ページ。「Society 5.0 といった日本政府しか使っていないバズワード」 バズワードのバズはブザーと同根らしい。うるさく鳴るもの。多くの人が口にする言葉というのは、専門用語とは対極の扱いを受けて意味や本質を失ったり逸れたりしていくことが容易に想像できるけど、そういうものを同一視した結果が「転じて~の意」と辞書で紹介されるのかもしれないけど、今のところここでのバズワードの使い方には「一人で爆笑」と同じ矛盾を感じる。


2023年10月31日 (火) PlayStation Network へのサインインってなんでああなんだろう。QR コードでサインインというオプションがあるから、手動でサインインを選ばなければいけない。PS5 を PSN にサインインした状態のままにさせておきたいから、保護のために4桁のパスコードを設定するように促してくるけど、毎回キャンセルしている。このふた手間。サインインしたままにしたいのはソニーであって俺ではない。俺はいつも[歯車アイコン]>[ユーザーとアカウント]>[その他]>[サインアウト]というわかりにくく深い階層をたどってサインアウトしている。だからパスコードによる保護はいらない。パスワードで十分に保護されている。電源を切ったタイミングで自動サインアウトする機能があれば手間が減って便利だしそれなりに安全だと思うんだけど、安全が第一ではないからそっちの方向は考えてくれないのかな。自分はパスワードの入力が面倒だとは言っていない。だけど QR コードでサインインという不要なオプションのために増えた手間は面倒だ。常時サインインという不要なオプションのために要請されるパスコードを拒否する手間も面倒だ。こういう、実質的にオプションではない見せかけだけのオプションがひどく嫌いだ。自分にコストを強いるオプションが嫌いだ。今はどうか知らないけど、通信の最適化をオフにしていると、つまり自分はデフォルトそのままではなくオフにするという意思をすでに示していたのだけど、ログインのたびにモーダルなポップアップメッセージが自分の目と手を奪っていた mineo には抗議のメッセージを送った。自分の通信量は月当たり 10 MB 以下がほとんどなので最適化の恩恵はまったくないのだ。通信の最適化が切れないから、通信量の低さにもかかわらずあとから出てきた割安なプランに移っていないのだ。オプションがきちんとオプションになってるか両方向から自己批判せーよ。典型的な間違いが「次回から入力を省略する」という選択肢にデフォルトでチェックを入れるというもの。両方の立場に立って何度か操作をくりかえしてみれば負担するコストが公平ではないとわかる。■RDR2 がそうだった。今日判明したが Fallout 4 もそうだった。なんでカメラ操作のオプションが Y 軸反転だけで十分だと思った。X 軸反転がいらないと思った。これは眼球に擬せられる球体表面からでっぱったスティックで視線を操る完全に感覚と直結した操作だから、✖ボタン/○ボタンと決定/キャンセルという、配置の差に多少の意味を見出すことができるとしてもほぼ恣意的な機能割り当てを入れ替えるのとは違って、決して慣れることがない。RDR2 はプレイをあきらめた。Fallout 4 も開始数分であきらめかけている。なんという無理解。プレイお断りなら金を払う前にそうとわかるように書いておけ。気に入らないというレベルではなくて、プレイを続けるのが不可能なのだ。もう覚えてないけど Fallout 3 は PC 版だったから支障なくプレイできていたんだな、たぶん。大神というゲームは反転設定があるんだけど反転設定にしなくても違和感なくプレイできたんだよな。どちらが反転かなんて主観と感覚の違いでしかない。感覚だから適応できない。■「世界市場向けゲームのオプション設定 - ベニ置き」 素晴らしいページ。自分はこれまで3つしか知らなかったけど、意外なほど多くのゲームが X 軸反転オプションを持っていない。開発者が知らないわけではもちろんなくて(だって他のゲームのプレイヤーでもあるわけでしょ)、プラットフォームにより非対応とか、新作では非対応とかいうことがあるらしい。ソニーのアクセシビリティに関わる影響力はファーストパーティにしか及ばないのか。ストアで可視化するくらいはできるだろう。そうすれば無駄金を払わずに済むし、無視できるオプションではないというメッセージになる。■■■@2023-12-05 Fallout 4 にはなかったけど他のゲームではアクセシビリティに関する情報が提供されているものがあって、その中に「スティックの反転(基本)」みたいな項目があった。Fallout 4 に関しては提供されていないし、ないことの意味が情報なしなのか非対応なのかがはっきりしないし、基本って何だという疑問もあるけど、やることはやっているらしい。進めてほしい。


2023年10月28日 (土) [AtCoder] 今日はパナソニックグループ プログラミングコンテスト2023(AtCoder Beginner Contest 326)があった。自分のすべての提出。では ABCDE のふりかえりと F の精進を。F 問題を通すには時間が 15 分足りなかった。D 問題に 50 分かけていなければと悔いが残る結果。■A 問題「2UP3DOWN」。慎重に X と Y の大小を比較してから階段を使うかどうかを判断した。■B 問題「326-like Numbers」。ちょっと前に 321-like Number というものが出てきた。今日の 326 は3桁であることが明白な定義なので易しかったと思う。■C 問題「Peak」。尺取りです。■D 問題「ABC Puzzle」。最大で 5×5 のグリッドだけど、(5*4*3)^5 大なり7億なので愚直総当たりが許されるというわけではない。だけどまあ、ちょっとだけ工夫すれば総当たりに近いことはできる。グリッドが条件に違反していないかを判定する関数を書いてから1行ずつ文字を埋めて判定を繰り返した。実装問題でまんまと時間を使わされた。下手かよ。■E 問題「Revenge of "The Salary of AtCoder Inc."」。名前でにおわせているけど給料に関する問題を解いたことがある。調べたら「AtCoder社の給料」だった。だけどそんなことは今日の問題を解くのには関係がない。答えが合わないからデバッグのためにまずは小数で答えを出すことにした。たぶんすごく簡単な式で答えが出そうな気がするけど、頭がないので手続きを踏んで答えを足し合わせた。今ここにいる確率というものを1つ変数に記録しておいて、A 数列を順番に見ていった。A[i]×(今ここにいる確率) がまず答えの一部。そしてまだ見ていない A 数列の要素にとっての今ここにいる確率というものは、いま今ここにいる確率の N 分の1だけ増える。■F 問題「Robot Rotation」。こういう設定の問題知ってるよ。成分を上下成分と左右成分に分けるやつ。DP をするかと制約を見たら N の上限が 80 と意外に小さい。成分に分けるとそれぞれ 40 だ。2 の 40 乗はべらぼうな数なので各要素をプラスに利用するかマイナスに利用するかを総当たりはできないけど、半分ならどうか。2 の 20 乗はおよそ 100 万でちょうどいいサイズ。100 万と 100 万の組み合わせを総当たりはできないけど、足して X,Y になる相方が存在するかの判定は定数(っぽい)時間で行える。ここまで考える要素はなかった。しかし実装するのに十分な時間もなかった。残念。■出ました。コンテスト成績証。青パフォで上がりはしたけど上がり幅が足りない。F 問題解けてたよ!■D 問題。自分のこの提出 #47031545 の判定関数 OK だけど、前半と後半が繋がっていないので前半の判定結果が捨てられている。嘘判定なんだけど、行方向に関しては制約に違反しないように F 関数の方で配置しているのでセーフだった。怪我の功名。どちらかの関数で行と列の扱いが逆なら間違いだった。


2023年10月27日 (金) [COSMOS] データ用 HDD (2 TB) を 6 TB のハードディスクと入れ替え。ふと見たら残りが 20 GB を切っていたので。2 TB ないくらいのデータのコピーに6時間以上かかって、ケースが閉められないまま一日仕事だったんだけど(この日記を書いている 28 日土曜日が仕事の日だったという意味ではなくてですね、自分が寝る前には終わらなかったという意味)、計算してみれば HDD の読み書き性能が 100 MBps だとして時間当たりおよそ 350 GB なので、10 時間かからなくて良かったね、といったところ。このあと新入りの 2 TB HDD を加えた(一群でひとつの)仮想的なバックアップディスクに新しくバックアップを作るので、また同じかそれ以上の時間がかかる見込み。どうでもいいけどカテゴリ名は PC ケース(CoolerMaster COSMOS (RC-1000-KSN1-GP))から。まだ使っている。気をつけないともろくなったプラスチックパーツが砕けたりする(目に付かないところなのでセーフ)。土曜日の日記は ABC のために空けています。


2023年10月21日 (土) [AtCoder] 今日はキーエンスプログラミングコンテスト2023秋(AtCoder Beginner Contest 325)があった。自分のすべての提出。結果は知らないよ。今日の日記には DEF の精進が含まれてるよ。要するにそういうことだよ。■A 問題「Takahashi san」。名前部分をちょん切って 'san' をくっつけます。■B 問題「World Meeting」。いきなり難しいなと思ったけど、入力がすべて整数なので扱う時刻は正時(セイジでなぜか変換できないと思ったらショウジって読むらしい)のみの 24 通りだけだった。なら時間枠に参加人数を加算していくのみ。■C 問題「Sensors」。UnionFind でやった。そうでないなら DFS でやるのがいいと思う。BFS は難しい。友達の友達は友達という関係には再帰構造があるので。センサーがないマス(.)については頂点を1つ追加しておいてそれとグループを作るようにした。そうしたら最後にグループ数から -1 するだけでいい。■D 問題「Printing Machine」。時間内に解けなかったので精進だよ。時刻の幅が鬼門。10 の 18 乗まであるから飛び飛びの時刻を処理するしかない。情報を蓄えておいてあとからシミュレートする。最終的に AC になった提出では、プライオリティキューで現在印字待ちのアイテムについて印字処理のリミット(t+d)を管理し、また、最後に処理した時刻(t0)を記憶しておいた。そして処理開始時刻(t)でソートしたアイテムについてループを回した。区間の端を -1 したりする処理で間違えていた。■E 問題「Our clients, please wait a moment」。D 問題と心中したので E 問題は終了後に読んだ。AC まで 21 分だった。都市1から車で移動した場合の各都市までの所要時間を調べ、都市 N から電車で移動した場合の各都市までの所要時間を調べ、zip して足したものの最小値が答え。最短距離を求めるのに D 問題で使ったプライオリティキューをまた使ってダイクストラ法なのかなと思ったけど、完全グラフなので log を付けるより総当たりの方が良さそう。それは Cosmic Rays (20211031) の経験から。■F 問題「Sensor Optimization Dilemma」。なかなか方針のしっぽが掴めなかった。DP なのか二分探索なのか。制約の攻めどころはどこか、上限が 1000 の K だろうか、高々 100 でしかない N だろうか。結果的には DP だった。区間(D)についてループを回し、センサー1の使用回数に対してセンサー2の使用回数を最小化するような DP をした。NKK≦1億なので Ruby では1桁オーバーで通らないかと思われたけど、112 ms であっけなく通った。謎。■おかしいなあ。これでなんでコンテストは ABC の3完なんだろうなあ。たぶんだけど、今が 25 時をまわってることと関係がある気がするな、たぶんだけど。■AtCoder Problems によると DEF の難易度が順番に 水緑青 だった。D と E が逆転している。そうだろうなあ。もっとも、自分は水 diff は解けていないといけないので、解けたのが ABC でも ABCE でも不出来なのは同じ。点取りムーブに興味はない(負け惜しみ言ってら)。まあまあ、長い目で見て AtCoder さんの評価が自分に追いついてくるのを待っていてあげようじゃありませんか。