メモ@inudaisho

君見ずや出版 / 興味次第の調べ物置き場

docomo から OCN にMNPした

 docomo の更新月が到来したので OCN にまとめた。OCNはこれまでデータ専用で使っていたが、それまで使っていたPlalaが遅かったのでたいして不満もなかった。そろそろ更新月ということで、OCN の500kbps15Gにしてみたところ、十分使えたのでこれでいいやということで 500kbps + 電話 へ新規にMNPしてそれまでのデータ専用SIMは解約した。

f:id:inudaisho:20181202164150j:plain
docomoガラケー N-03D

 そこで新規に買った Yota3+ を電話回線用にしたらよいものの、プラスエリア化してないので山奥で使えない。YotaPhone2 のSIMを挿し換えただけで終わってしまった。写真のガラケーdocomo にしたとき、タブレットと二枚持ちした方がよいということで買わされたもので、あんまり愛着はなく、むしろ手続を進めてる最中にそういうことを言われて急に買ったのでそれまでの電話番号が使えなくなってしまったという因縁がある。量販店の店頭販売員にそんなひどい仕打ちをうけ、その後docomoショップで相談しても直してくれず、その後二枚持ちを解消して電話番号を戻したものの、誰もかけてこなくなった。それでも6年くらい使いつづけていたわけでなんとも。そのころはまだ格安SIMがなく、山奥で生活するには docomo 一択だったからしかたがない。

 OCN にしたのはメインの用途がネットになっているからで、500kbpsにするとその容量いっぱいの15Gまで使っている。何でそんなに通信してるのかよくわからんが家の外でネットにつなげているとそうなってしまう。たぶん twitter が画像多いせいだろう。これだけ通信量が多いと勝手に情報抜かれててもわからない。

 そういうと、MNP は京都ヨドバシでしてきたのだが、MNP特典で15000円キャシュバックというのがあり、その条件としてSIM二枚契約とオプション二つ契約というので面倒だったので断ってきたが、冷静に考えるとそれ飲んできた方が得だったのになぜ断ったのかよくわからない。あと、どうせならYOTA3+ のことは忘れて、docomoの電波帯に完全に対応した安い機種を買ってくればよかった。まぁ、すぎたことはしかたない。

(20181207 OCNにMNPしたとたん500kbpsプランの廃止が発表.... つらい)

以上。

AtCoder HTTF2019 本戦open 59位 (ギリダメ)

 うーむ。今回も特に見るべきところのないただの日記で読んでも得るところはないぞ。

 前回の予選は Python殺しとか書いてたけれども、今回はそんなことはなかった。点数計算のところなどはロジックがそのまま下に書いてあるくらい至れり尽くせりで軽いものだった。ロールプレイング風で手駒をレベルアップさせて適宜モンスター狩りをすれば高得点が取れるというものだが、レベルアップにかかるコストが急激に高くなるのでこりゃ無理だろうとおもって適当にやってた。アルバイトしたり無闇にモンスター狩りするよりも、狙ったモンスターに合うようにレベル上げして倒していけばハイリターンが望めるということで、「人生の縮図か」とおもったりしたのだが、事後になってそこそこの点数を取った人のツイートをみていると、どうも1000ターンの間にレベル上げが終了してそこからはどう効率良く狩るか考えるフェーズに移るとか言っており、あまりの認識の違いにウヘエとなってしまった。これは同じ課題をやっているのだろうか...

 そんなに簡単にできるなら、と適当に書いてみたがやっぱり点が上がらない。うーむ。なにか間違えているようだ。ちなみに59位でギリダメと書いているが、これも前回の予選と同じで、最低ラインから一歩足した程度のところで止まっていた。しかし今回は前回と違い、シミュレータもちゃんと実装せずにやっていたので、今実装してもちょっと点がおかしい。ちゃんと組めてないのだろう。そもそもその点もかなり間違えたことをして取っているので何が何なのか.... 直したら下がる。うーむ。寝る。

ダメ!

ダメ!

究極の眠れるCD

究極の眠れるCD

AtCoder CodeThanksFestival 2018 3完 B Colored Balls

 さてAtCoderやる気がなくなってきたとか書きながら今日も CodeThanksFestival にのうのうと参加した。ただし昨日よりもひどいことに飯をつくりながらやったのでA提出したのが開始25分後だった。ラーメンを鍋で作ってすすりながらやったからそんなもんか。A,C,Dの3完。Python3で絞って実行速度で並べると、Cは参加者の中で2番、Dは1番になれてたのでそこが慰めポイントだが、Bが通せなかった。条件が一つ抜けてたからだが、構造は見えてたのにコードで適切に表現できなかったということでたいした内容ではないけど反省のためにまとめておく。

B Colored Balls

内容

 玉が色別にX個Y個ある。別々に1個3個の組という縛りで自由に取り除いていって全部取り除けるか。

構造

 1個3個ということで1+2と1の組み合わせで考えるとわかりやすく、いける組み合わせは以下の三パターンのどれかになる。

f:id:inudaisho:20181125165934p:plain

1wa

 とここまで見通したのはよかった。しかしこれをきっちりコードに落とせなかった。これなら数字いじるだけなので自分程度の C++の能力でも書けるぞっということでC++でまず書いてみたが通らない。何回かやっても通らないので埒があかず、結局 Python3 で書き直してみたがやっぱり通らない。それがこれ。

iX,iY=[int(_) for _ in input().split()]
if iX == 0 or iY == 0:
    print("No")
else:
    if iX < iY :  #iXの方を大きくする
        iX,iY = iY,iX
    iD = iX - iY
    if iD % 2 : #差が2で割れないとダメ 上図の2のパターン
        print("No")
    else:
       #小さい方から差の半分を引いたものが4で割りきれる。
       #上図の3のパターン(差が0のとき1のパターンになる。)
        if (iY - (iD / 2)) % 4 == 0 : 
            print("Yes")
        else:
            print("No")

 最後までいじくっても結局1waが取れなかった。CDできてBができないのも悔しいので終わったあとで他の人の解答もみたのだが、考え方が違うのばかりみつかって参考にならない。うーむ。

解決

 さてこれだけ単純なのにどこが抜けていたか、それがすぐに見抜けないので小さいところで手間取って何もできないことになるのだが、それはさておき、マヌケだったのはここ。

        if (iY - (iD / 2)) % 4 == 0 : 

 iY と iD/2、つまりXとYの小さい方とXとYの差分の半分ですが、 iYが大きいのは自明じゃないですね。つまりこれをこう書き変えると解決。

        if iY >= iD / 2 and (iY - (iD / 2)) % 4 == 0 :

 あぁあぁあぁぁあぁあぁぁあぁあぁぁあぁあぁぁあぁあぁ こんなことに気付かないなんてぇえぇえ

 まぁ自分で解決できたからいいや。

入門 Python 3

入門 Python 3

AtCoder 第5回ドワンゴからの挑戦状予選 1完

 今回はいつもに増して情報量が低いので解法の手掛かりを探している人は読む必要ないです。ただの日記です。

 最近 AtCoder に対してやる気がなくなってきていて今回は直前まで買い出しにいったりしてノートパソコン開いたら2分前だった。それから登録したり飯食ったり茶沸かしたり漫然と過ごしていたので、小手先だけで解けるAを片付けるのに16分もかけてしまった。Bをみて一知半解で総和と総和から先頭を引いたもの、最後を引いたものをそれぞれ論理積してみたのを比較したら入力例2で解が違ったので飛ばした。(K個論理積しないといけないので問題をよく読んでない。)

 Cみたいなオレオレ定義の枠組みでなんとかするのは性に合っているものの、ちょっと考えて計算量が多そうだったので飛ばし、Dを見てこれを一番長くいじっていた。しかしDも制限がよくわからない。四点同時移動ということだが、任意に選べるのならほぼ自由に移動させれるのでは? となると点を詰めれる極限まで行けるのでは? とおもったが、入力例3をみると点8個に対して点が9個ある辺2の正方形ではなく、25個ある4の正方形が出力例となっている。うーむ? ということでまたうろうろして何もできずに終わった。

f:id:inudaisho:20181124231308j:plain

 不思議なのはこれでもレーティングが上がってることだ。それなら飯食ったりお茶沸かしたりせず、時間前にちゃんと登録して、速解きに集中してればよかった。まぁ、+1問くらいは解けるだろうとナメてたのもあるが...

エキスパートPythonプログラミング 改訂2版 (アスキードワンゴ)

エキスパートPythonプログラミング 改訂2版 (アスキードワンゴ)

プログラミングは最強のビジネススキルである

プログラミングは最強のビジネススキルである

Boox Max2 のファイル転送機能 Transfer (Boox OS 2.0)

 タブレット機器の使い勝手は単独で使うよりもパソコンなどの書庫との連携が運用を左右するということは前書いた。それで自分は Primitive FTP というソフトをつかって Android の方にサーバを立ててファイルを転送しているということも書いた。

inudaisho.hatenablog.com

 また、ソニー電子ペーパー機器は専用機なので上記のような転送手段はソニーの方で全て提供せねばならないということも書いた。

inudaisho.hatenablog.com

 さて、文石科技(Onyx) の電子ペーパー機器は汎用Android機だとはいってもやはり連携は重要とみているようで、Boox OS 2.0のアップデートで各種クラウドとの連携をやりやすくしたようだ。やはりそこは汎用Android機の強みで、Android APPを入れればできてしまうのだが、さらにシステムと Ever Note や DropBox のアカウントと結びつけれるようにもなっている。文石科技( Onyx )が用意しているファイル転送アプリは今 Transfer という名前であるが、前はなんか使い勝手悪そうにみえたのであまり追求しなかった。今回 Transfer を押してみると、QRコードが出るようになった。どうもウェブサーバを立てて転送する形式に変更したようなので実際に触ってみることにした。(前からこうだったのかもしれないが今回やっと気がついた)

 Transferを押すとこんな画面になる。

f:id:inudaisho:20181122213808j:plain

 wifi を経由してファイルのやりとりをするので、WifiでどこかのLANに繋ってないといけない。QRコードもしくはアドレスを直接書いてアクセスすると、こういうシンプルな画面が開く。要はファイルアップロードの要領だ。ボタンの文言「上传文件」というのは直訳するとドキュメントアップロードになる。押すとエクスプローラがひらくので適当にファイルを選ぶとすぐにアップロード開始。

f:id:inudaisho:20181122214042j:plain

 同一LAN内なので速く結構大きいものでもすぐ移動できる。終わると下のように100%表示される。

f:id:inudaisho:20181122214338j:plain

 これが、どこへいくかというとここ。

f:id:inudaisho:20181122214606j:plain

 Storage/WifiTransfer/ に入る。これはかなり使い勝手がよさそう。たとえばスマホからのファイル転送だと、スマホ側でテザリングをオンにしてそこにBoox Max2 を繋げればよい。そして Transfer をたちあげてそのアドレスにQRコードでアクセスさせ、あとはポチポチと押していけば転送できる。Androidの汎用機という特徴を生かしたよいファイル転送方法だとおもう。