2015年12月26日土曜日

SHOW BY ROCK!!ガチャ2

ドーン!50個たまっても少し我慢しようと思っていたんですがダメでした。
そして、前回のレトリーに続きチュチュもきました!!
ただ・・・なんでクリスマス版が来ないんだ・・・。(期間的に3回目の10連は無理そう)

そして前回話していた通り光が飽和しすぎている。
ですがさらに今回はなんとURがもう一枚。「うるとらすたっど!フェネリィ」が一緒にでました。
前回10連で出なかった分を考えると確率の収束と考えるべきでしょうか。

光:UR:テンションMAX・チュチュ♪
火:UR:うるとらすたっど!フェネリィ
火:SR:梅にでゅらでゅら
火:R:すたっど・れいんぼー!L
火:R:ゼブリ・ナレコーディング中
火:R:吽の趣味
火:R:フェネリィ・ヒマを持て余し中光:R:負けるな!バイガンバーV!
闇:R:今はやってませんけど。デモンスモッグ
緑:R:文化祭本番!しばりん

うーんこれで覚醒可能ブロマイドが4枚に!

現在の編成

2015年12月25日金曜日

Xperia Z5とSHOW BY ROCK!!

どうも黒い野良猫です。

ついに・・・スマホを契約してきました。
と言うのも「SHOW BY ROCK!!」のBD全巻・予約特典・CD全巻と大量のチケットコードがあり、最も早くきれるのが予約特典の12月25日だったため。

えぇ、完全にゲーム機ですね。
それでチケットの内容について

■まずBDは固定URブロマイド

光:UR:ぷるぷる♪シアン&レトリー
光:UR:ぴゅるちゅ♪チュチュ&モア♡
光:UR:ぷるぷる!夏合宿♪
火:UR:徒然なる豪華特典でありんす♪
光:UR:クリクリ♪JCアイドル宣言!
光:UR:ぷるぷる!み~んなありがとにゃん♪

各巻の表紙がブロマイドになっています。
4巻以外は全て光で、4巻のみ火となっています。

属性に偏りがありすぎて光はALLBD特典編成となりました。
まぁ、現在クリスマスイベントが光イベントなので凄くはかどります。

また、全ブロマイド3ミス帳消しがパッシブなので始めたばかりの私には重宝しています。
逆にアクティブがPリズムワイドが2つ被っていたりするためいずれ変える事にはなりそうです。



■次に予約特典UR確定チケットx3

水:UR:コリエンテ・SSマインド
水:UR:タートルBIG・SSマインド
光:UR:テンションMAX・レトリー♪

欲しかったのはもちろんクリスマスURでしたが、まぁコリエンテとレトリーは覚醒できるようなのでまずまずの結果。
光がBD特典で飽和気味です。
水は2枚もURが来たのでしばらくはこれで乗り切ろうと思います。



■最後にCD特典SSR以上確定チケットx9(一枚多くCD購入してます)

闇:SSR:漆黒の翼・クロウ
水:SSR:オールナイト・ミックス
水:SSR:オールナイト・アシッドモンド
水:SSR:ワンマンライブ・キンタウルス
水:SSR:天空遺跡ライブ・ミトミトン
火:SSR:つぎはぎ・ワンマンライブ
火:SSR:がしがし・ワンマンライブ
緑:SSR:森然と光のサダフルン
光:SSR:光の戦士・バイオレッド

まぁわかっていましたがSSRしか出ませんでした。
URが一枚でもきてくれればなぁ・・・。
バイオレッドは属性アップで割と良いのですが光はUR5枚以上あるので



■初めての10連ガチャ

序盤ツアーとビンゴだけで取り敢えず50個かろうじてたまって即10連。

闇:SSR:漆黒の翼・アイオーン
水:SSR:シャボボン・シークレットライブ
緑:SR:音の森のサダフルン
他残りはN

UR確率アップとは一体・・・ぐぬぬ。・・・ぬぬぬ・・・。



◆現行編成

・闇
闇:SSR:漆黒の翼・アイオーン
闇:SSR:漆黒の翼・クロウ
闇:N:Lv15 ビンゴ用の奴
闇:N:Lv15 ビンゴ用の奴
闇:N:Lv15 ビンゴ用の奴


・火
火:UR:Lv50:徒然なる豪華特典でありんす♪
火:SSR:つぎはぎ・ワンマンライブ
火:SSR:がしがし・ワンマンライブ
火:N:Lv15 ビンゴ用の奴
火:N:Lv15 ビンゴ用の奴

・水
水:UR:コリエンテ・SSマインド
水:UR:タートルBIG・SSマインド
水:SSR:オールナイト・ミックス
水:SSR:オールナイト・アシッドモンド
水:SSR:シャボボン・シークレットライブ
予備
 水:SSR:ワンマンライブ・キンタウルス
 水:SSR:天空遺跡ライブ・ミトミトン


・緑
緑:SSR:森然と光のサダフルン
緑:SR:音の森のサダフルン
緑:N:Lv15 ビンゴ用の奴
緑:N:Lv15 ビンゴ用の奴
緑:N:Lv15 ビンゴ用の奴

・光
光:UR:Lv50:ぷるぷる!み~んなありがとにゃん♪
光:UR:Lv50:ぷるぷる♪シアン&レトリー
光:UR:Lv50:ぴゅるちゅ♪チュチュ&モア♡
光:UR:Lv50:ぷるぷる!夏合宿♪
光:UR:Lv50:クリクリ♪JCアイドル宣言!
予備
 光:UR:テンションMAX・レトリー♪



◆始めて5日程度の感想

ゲームシステムはだいたい理解しました。
ただ音ゲーマーではない私には現状イージーがなんとかなる程度。
星4くらいをミスキャンセル3回込みでフルコンって所です。

ハードは現状だとだいぶキツイ。
少なからずチャレンジクリアできる率は限りなく低い。

クリスマスイベントに合わせ光バンドは全てLv20に
ただまだ平日しかプレイしてないので譜面が無い為今はこれが精いっぱい。

ブロマイドの光は取り敢えず金曜でALL Lv50となりました。
BD特典URがあレトリーを持て余してる感。

緑と闇は現状所持ブロマイド的に特に鬼門

こんなところですかね。

2015年12月11日金曜日

Paiza Online Hackathon 7

恋愛SLG:プログラミングで彼女をつくる|paizaオンラインハッカソン7

https://paiza.jp/poh/ando

※【眼帯・ニーソ】は2015/12/14あたりに問題追加実装された
※【猫耳・猫セット・メイド服】は2016/03/??あたりに問題追加実装された
上記は後から実装されたされたため追記しています。

<言語:Python2>(※注意:二段になっているコードも全て一行です)
釣り目   
眼帯    
ショートヘア
ロングヘア 
ポニテ   
ツインテ  
セーラー  
カーディガン
追加問題  2015年12月追加
ニーソ   
追加問題  2016年3月追加
猫耳    
猫セット  
メイド服  

さて、上の問題はたぶん各1・2分でとけるんじゃないかと思います。(まぁ、眼帯が少し考えるかもしれない)

問題らしい問題はアクセサリだけ。

■眼帯が意味不明な人向け解説
左端にprintが来るという事は処理を全て右側処理しきっているわけですがごちゃごちゃしすぎ・・・。

確かに。と言うわけでこのゴミみたいなコードのリスト内包をちゃんと変数に代入して表示してみましょう


これでだいぶ処理が解り易くなりました。更にリスト内包を展開します。


見ての通り、最初のリスト内包以外はforの意味は有りません。
2回目のリスト内包はinputで得た集合を代入せず直接取り出し計算するために使い、
3回目のリスト内包は集合の解除→ソート→リスト内文字列化を行いつつifの変わりに使っています。
最後にjoinでリストをスペース区切りに結合してprintから出力しています。

当たり前ですがリスト内包の使い方としてはあまり正しくありません。
リスト内包の特徴はリストを生成に特化したforでだからです。
しかも処理毎にリストに格納される為「listdata[0]」として都度リストから展開する必要もあります。


めがね

概要:


サンタ服

概要:
「前面:X」x「側面:Y」x「高さ:Z」の立方体から切り分けた時に最も小さい立方体の体積を求める。
ただし上面と水平方向には切り分けない為最も小さい平面に高さZをかければよい。
切り分けの入力は「0or1 距離」で
0の場合は側面と並行に切り分ける場合。
1の場合は前面と並行に切り分ける場合。
距離はその端からの距離が入力される。
条件として0センチの切り分けは無い。二度同じ場所は切り分けない。片方向しか切り分けない場合がある。値は全て整数。

図形をぱっと見た時に三方向に切り分けるのかなと思って後回しにしていましたが高さの切り分けがないのでなんて事は無い面積問題ですね。
切られる距離は前か横からなので順番がわからない以上最後にソートして各距離間をだせばOK。

https://paiza.jp/poh/ando/share/3c2d1b45
提出言語:Python2
提出コードバイト数:329
Test case1 成功実行時間: 0.03 秒
Test case2 成功実行時間: 0.03 秒
Test case3 成功実行時間: 0.02 秒
Test case4 成功実行時間: 0.02 秒
Test case5 成功実行時間: 0.04 秒



水着

概要:
入力Nの階乗の答えから末尾にある0を全て取り除き、その値から末尾9ケタを取得する。
取得した9ケタの頭が0の場合はその頭の0も取り除く。
Nの範囲「1 ≦ N ≦ 1000000」

考え方は「カーディガン」問題の延長にある。
ただし、Pythonでは桁が多すぎて安直な回答では問題4からタイムアウトする確率が非常に高い。

たとえば【階乗の値を文字列化rstripで末尾0削除し、後ろから9ケタ取得後int化により先頭0を除去】と、した場合

Test cace1:○ 0.02秒
Test cace2:○ 0.02秒
Test cace3:○ 3.97秒
Test cace4:× 15.00秒 ※タイムアウト
Test cace5:× -秒
全く持って処理速度が足りない。

さて、「math」で「1000000」の時点で処理速度が追いつかない。
階乗処理は自作しなければならないことが確定した。
0がどんどん増えていくため先ずそれを抑止する事を考えてみる。
かける前に自身に0が付く場合先に除外しておけば良い。
階乗では全て掛け算で、0が増える場合は「2*5」が含まれる場合である。 それを取り除けば末尾0の数を調べる必要が無い。

考え方
・かける前に10で割れるだけ割っておく。
・2で割れるだけ割り、それをカウントしておく。
・5で割れるだけ割り、その分だけ2のカウントを減らしていく。
・最後に2のカウント分累乗をかければ末尾に0の無い階乗結果になる。
・末尾9ケタを取りintで先頭0を削除する。

Test cace1:○ 0.02秒
Test cace2:○ 0.02秒
Test cace3:○ 3.55秒
Test cace4:× 15.00秒 ※タイムアウト
Test cace5:× -秒
微妙に早くなった。たぶんこれは2の掛け算をギリギリまで行わずに最後に累乗で追加するからからだろう。
だが、結局全く持って処理速度が足りない。


まともにやりあっていては駄目だ・・という事で今回たまたまツイッターでこの問題について少しリプライのやり取りがあり、手直しして組み直したものがあるのでそれを紹介します。
考え方的には上位の桁を無視して下の桁だけで計算させるというもの。
殆ど元のツイートを参考に短く組み直しただけに近いので偉そうなことは言えませんがなんだかんだでそれなりの長さと速度になったのではないでしょうか。
9桁ギリギリだと桁ぶれが発生してエラーになる為11桁にする事で全ケース通過をするようにしてある。
85byte https://paiza.jp/poh/ando/mypage/5e7d53b6

Test cace1:○ 0.03秒
Test cace2:○ 0.02秒
Test cace3:○ 0.10秒
Test cace4:○ 0.70秒
Test cace5:○ 0.84秒

蛇足等
ニーソ短い版 https://paiza.jp/poh/ando/mypage/5e7d53b6?c=8047e40d
提出言語:Python2 提出コードバイト数:43 All cace:0.02秒

カーディガン短い版 その他版
提出言語:Python2 提出コードバイト数:41


眼帯まだましな方


例の邪道版