期待値のいい性質
前書き~あれ400なのマ~ジ?~
こんにちはこんばんはおはようございます、B600点でWAが取れない、ヤカタです。 AtCoder Grand Contest 049 - AtCoderにレート44吸われたために落ち込んでますが、上の人たちがパフォーマンス2000台叩き出しているのを見ると、1回そういうことがあったからとかあんまり気にせずに色々やっていくべきなんだろうななどと思うわけです。
ということで、理屈は分かっていたBは置いておいて、歯が立たなかったAを見ていこうと思います。
AGC049_A
まず、Nを105で出している時点で、O(N2)、つまりある頂点とその関係を見る、みたいなことを拒否されているわけなんだから、「ある頂点ごとに状態Xがまとめられて、その状態XをN個集めると答えになる」というような状態Xを見つける必要がある。
今回で言えば、期待値でかつ、それぞれの頂点がたかだか一度しか選ばれないことを利用して(後者はいらないかも)、状態X=その頂点が選ばれる確率 とできる。ここに気づけたら、何とか状態を書きだせないかとやってみるとうまくいく。(ここまで見れば解説読んでわかる)
期待値のいい性質
Wikiに普通にまとまってたので引用。重要なのは線形性。単調性も時々使うイメージ
WSL2で~/.bashrcが読み込まれずに困った話と解決策
Hello WSL2
ブログ書くのは久方ぶりなので、書き方から忘れています、yakata66です。 今回はWSL2が起動時にbashrcを読み込んでくれずに困った話をしたいと思います。
今回起きたこと
自分は~/.bashrcにaliasを色々入れているのですが、それがterminalの再起動時に command not found. を引き起こして発覚しました。
環境はUbuntu20.04です。
そもそも起動時に何が起きているのか
WSL2は起動時に"~/.bash_profile", "~/.bash_login", "~/.profile"らへんが読み込まれるのですが、~/.profileの最初の五行に書いてあるとおり ~/.bash_profileや~/.bash_loginがあると、そっちを読み込んでprofileを読み込まないよって書いてます。
# ~/.profile: executed by the command interpreter for login shells. # This file is not read by bash(1), if ~/.bash_profile or ~/.bash_login # exists. # see /usr/share/doc/bash/examples/startup-files for examples. # the files are located in the bash-doc package.
ということで~/.bash_profile は読み込まれるので、即物的な対応策としては~/.bash_profileの最後に
bash
と書いてあげると~/.bashrc が読み込まれることになります。
わかる、説明できる、実装できる
matplotlib (Python) でsubplot使うときの書き方備忘録
特段加筆するなら、plotをたくさんするとなんのグラフなのかを示すものが必要になるので、一意なtitleをつけるなどすること(いつも忘れる)
→もっといい書き方が最後にあります。
# 整数の各変数に対してboxplotを書きたいとする。Pandas DataFrameは変数dfに入っている。 # subplotのためにindexを取る必要があるので、enumerateを取る。 # 整数の各変数に対してboxplotを書きたいとする。Pandas DataFrameは変数dfに入っている。 # subplotのためにindexを取る必要があるので、enumerateを取る。 plt.figure(figsize=(20, 20)) for idx, column_name in enumerate(df.describe().columns.to_list()): # ここ↓のx,yはx*y<=カラム数になるようにint値に変更する。 plt.subplot(x, y, idx+1) plt.boxplot(student_data_math[column_name]) plt.title(column_name) plt.grid(True)
追記 以下のようにかける。参考文献は以下
df.select_dtypes(include=int)
ラプラス変換を学んだので簡単にまとめる
ラズパイを公式OSのままNAS化したから見てて
※この記事のリンクはしばしばhttpである場合があります。リンク踏む場合はお気をつけください。
ラズパイを衝動買いしてしまいました。利用したのはコチラのネット通販。(https://raspberry-pi.ksyic.com/)
色々いじるとラズパイとラズパイOSの個性が見えてきて、
- ブラウザのChromiumを起動するのに30秒くらいかかる。(サブPCとしても使いにくい遅さ)
- terminalを叩くと特に遅くは感じない。
- 大体Linuxだと思っておくとコマンド周りは大丈夫。だけど時々動かせないコマンドはある。
- そのために検索するときはLinuxで検索をかけるが、そのまま適応出来ず一部コマンドを変更することもまぁまぁある。
- 起動データ周りを壊してしまっても(おそらく)全部microSDに入っているので他のPCで直せばまた動く(エライ)
というわけでプログラミングしたりするにはいいけど、動画見たりみたいな使い方は厳しいという感じですね。今回の自分の要望が
- ラズパイ公式OSさんで遊んでいたい
- NAS(Network Attached Storage ネットにつながっているHDDくらいの認識)化してノートPCの容量を実質的に増やしたい。
- すでにHDDは使っているので、formatしたくない。
という3つがありました。特に3つ目は頭わるいことこの上無いのですが、新しいの買いたくなかったから仕方ない。ちなみにntfsでフォーマットされていたので、この後はその話をします。 調べるとNAS専用OS使っているものが多いので自分で調べることに。
必要なことが
- (ラズパイとノートPCを同じWifiにつなぐ。)
- ラズパイでHDDをmountする。
- ラズパイでntfs形式の書き込みを出来るようにする。
- マウントしたフォルダを共有する。(これを起動時に行うように設定する)
- (ノートPCで見られるか確認する。)
でした。
ラズパイでHDDをmountする。
公式OSではつなげるだけで自動でマウントしてくれるのですが、普通Linuxはntfs形式の書き込みは出来ません。そのため書き込み出来るようにマウントし直す必要がある。
umount (mount先のパス ex. /media/test)
何か怒られたらmount先のパスを見ているプロセスがあるので消す。ここはrebootしてすぐに(プロセスが作られる前に)umountしたら怒られなかったのでそれでもいい。
fuser -k (mount先のpath)
確か怒られたときにfuser使えと言われて"fuser --help"して使った気がする。ネットの記事より公式のhelp。 ココらへんは(https://open-groove.net/linux-command/fuser/)を参照したら-kmのほうがいいよみたいなことが書いてあった。まぁ壊してもいいのが強みですしおすし。
あとは
mount (マウント元のパス) (マウント先のpath)
でマウント出来ますが、これはしないで次の項目
ラズパイでntfs形式の書き込みを出来るようにする。
さて、ntfs formatを書き込みするためにntfs-3gを使います。ちなみに使い方調べたら10年前の記事がヒットしてそのまま使えました。ココらへんの話はhttpじゃないと出てこなかったので、将来的にはGoogleじゃない検索使うとかになるんですかね。 参考リンク: http://www.usamimi.info/~pochi/linux/ntfs-3g.html
sudo apt install ntfs-3g sudo mount -t ntfs-3g (mount元のパス) (マウント先のパス)
これで書き込みが出来るようになりました。適当にvimなどでテキストファイル作ってみて確認しました。あとはちゃんとマウント出来ているかを
df -Th
で見ます。dfは本当は残り容量を見るためのものなのですが、マウントも見れるのでこれで見てます。 起動時にマウントされるように/etc/fstabに書き込んでおきましょう。ココが起動時に読み込まれ、自動でマウントされる場所のようです。 fstabについてはココらへんを参照しました。spaceの数は適当で大丈夫らしい。
マウントしたフォルダを共有する。(これを起動時に行うように設定する)
本当は色々大変なんでしょうけどsambaというパッケージが全部やってくれます。かんたんだね。
sudo apt install samba vim /etc/samba/smb.conf
でここに色々書き込みます。ココらへんは他に解説を譲ります。セキュリティは甘々で作っている自覚があるので。 さて、ココまでやれば出来ているはずなので、ノートPCで確認→reboot→ノートPCで再確認をすれば終わりです。お疲れ様でした。
終わりに
ノートPCと配線地獄を分離出来たので個人的に満足です。またその気になったらラズパイOSで遊ぶことも出来るのが良き。正直ノートPCの容量が足りなくなりかけていたので、家でだけ見られればいいデータはNASに、作業中のものはノートPCかクラウドにおいておけばいいという形がおおよそ出来ました。やったね! NASは非エンジニア界隈にはもちろん、エンジニア界隈でもあまり知名度無いっぽいので、おすすめしておきます。物理的に繋げなくても容量増やせるよ。