White scenery @showyou, hatena

If you have any comments, you may also send twitter @shsub or @showyou.

UQ mobileの料金プランがわかり辛かったのでグラフにしてみた

先日親がDocomoの料金の高さに辟易したので、先日私がサブで使い始めたUQ mobileを音声通話付き・新規スマホ購入のプランで契約しました。その時のプランが結構わかり辛かったのでグラフにしてみました。

 

UQ mobileの音声つき通信プランは大きく分けて2種類あります。一つはおしゃべりプラン・ぴったりプランというやつで、家族割で1480円~(2台目以降、1台目なら1980円~)、通話5分までなら何回でも無料(ぴったりプランは60分/月無料)と大きく謳ってるものです。それとは別にデータ高速+音声通話プランという、1680円で通話無料期間なしというのもひっそりと用意されています。

 

携帯の購入補助が前者にしかつかないので一見すると前者のおしゃべりプラン・ぴったりプランの方が良さげに見えますが・・実は長期間契約しているとデータ高速+音声通話プランの方が大分安上がりになります。

Read more

AtCoder Beginner Contest 112(ABC112)に参加しました

D問題が解けたんだけどTLE食らってた・・他の人の回答見てちょっと直したらTLE解除された・・残念過ぎる。

 

A:

N = 1なら、"Hello World"を出力して終了。そうでないならA+Bを出力。

https://beta.atcoder.jp/contests/abc112/submissions/3342825

B:

まずt_i < Tであるc_i, t_iをリストに入れて、c_iでソートして一番小さいものを出力。

https://beta.atcoder.jp/contests/abc112/submissions/3345498

C:

問題の意味はわかったけど解き方がさっぱりだったのでスキップ。

D:

2~M / 2のうち、Mの約数(=iとする)でかつM / i が N以上の最大のiを出力すればいい・・のだけど何をトチ狂ったのか下からiを数えていったのでTLEになってしまった。

https://beta.atcoder.jp/contests/abc112/submissions/3353158

iを上から数えて見つかったら切り上げるように書き直したら通った(コンテスト終了後)。しかしそれでも処理時間ギリギリである。

https://beta.atcoder.jp/contests/abc112/submissions/3355718

 

UQ mobileを契約して、Nexus5X(Y!mobile)のSIMロックを解除した

先日入手したiPhone7を主回線にして、余ったNexus5xをサブ端末にすべくUQ mobileを契約しました。

Before:
After:

 

Read more

iPhoneを手に入れた

といってもiPhone7(128GB, SIMフリー,中古)だけど。

今使ってるnexus5X(ymobile)が16GBしかなく、複数のゲームを入れることもままならなかったので、iPhone7にymobileのSIMを刺して、nexus5xはSIMロック解除して余ってるIIJのSIMでも入れるつもり。

 

ざっと使ってみた感じ、

  • 画面はnexus5の方が大きく、きれいに見える。解像度はどちらも1920x1080。iPhone7は1,334 x 750ですね・・
  • 容量が16GB -> 128GBになったのは大きい。

nexus5xのSIMロックを解除しようと思ったけど、割賦を支払いきってなかったので一括で残りを支払う必要がありそうだよ。。大した金額じゃないけど。

AtCoder Beginner Contest 111(ABC111)に参加しました

Cがあとちょっとで解けたのに、残念。

A:

1桁ずつ数値を分解し、1が来たら9を加え、9が来たら1を加えて、それ以外の数値はそのまま加えて出力した・・あれもしかして1と9以外なかった?

https://beta.atcoder.jp/contests/abc111/submissions/3290187

B:

配列に111~999までのゾロ目を入れておいて、小さい方から順に見て入力値を上回ったらその値を出力。

https://beta.atcoder.jp/contests/abc111/submissions/3291386

C:

偶数と奇数に分け、数値の頻度分布を作って、一番大きい値だけ取り除いて残りの頻度の和を取ればよい。

ただし偶数と奇数の最頻値が同じ場合、どちらか一方は二番目に大きい値を取り除く必要がある。

今回時間内では勝手に奇数側だけ二番目を見るようにした(a)ため、テストケースの最後で引っかかってしまっていた。解説見た後偶数側も二番目を見るパターンを作り(b)、(a)と(b)の大小を比較することで通った。

https://beta.atcoder.jp/contests/abc111/submissions/3299748 (不正解)

https://beta.atcoder.jp/contests/abc111/submissions/3302957 (正解)

AtCoder Beginner Contest 110(ABC110)に参加しました

A,B,C完。Dは約数いちいち出してたらダメなのはわかりましたが・・?

 

A:

2桁 + 1桁の足し算の形になるので、2桁の数値の10の位に一番大きい値を持ってくればよし。

pythonのリストにA, B, Cを格納して、最大の要素をdeleteする形で取り除きました。

https://beta.atcoder.jp/contests/abc110/submissions/3251160

B:

首都も含めたx(とX)の最大値が y(とY)の最小値より少なればOK

・・ということに今更気づきました。

解いたときは愚直にx(とX), y(とY)を全部回して大小比較してました。

https://beta.atcoder.jp/contests/abc110/submissions/3253074

C:

アルファベットの種類を無視して頻度が一緒なら成立します。

なので各文字毎にdefaultdictで個数を数え、valuesだけ取りだしソートして一致判定をしました。

https://beta.atcoder.jp/contests/abc110/submissions/3254915

D:

バカ正直に約数を取りに行ったら、サンプルの段階でTLEしてました。

おそらく素因数分解を使うのでしょうが・・

 

python/scikit-learnのperceptronを使ってみた

 

仕事ではじめる機械学習

仕事ではじめる機械学習

 

 上の本を読んでいたらperceptronの紹介があったので、手元で動かしてみた。

gist.github.com

(5, 1), (1, 5)と中心を離して正規分布を生成してるので、100%分類できるだろうと思ったら一個だけハズレが出た。残念。

参考:

scikit-learnを使用したパーセプトロン – Python機械学習第三章学習メモ