人間になりたい類人猿

人間以前の技術屋ブログ

アイマス一公演で折られるUOは「」本

俺は一体あと何本このUOを折ればいい……

ここ数年でアイマスのライブに行くことが多くなった。
アイマスのライブって電池式のペンライト以外にもケミカルライト/サイリウムと呼ばれる物をよく使う。
特にオレンジ色で輝度の高いサイリウムを使う人が多くて、通称UO(ウルトラオレンジ)と呼ばれている。
※実際の商品名は違うのだけど、UOでざっくり一括りにされている感覚。

https://stat.ameba.jp/user_images/20151019/22/akemi-madoka/79/0e/j/o0800060013459286146.jpg?caw=800

使うタイミングとしては盛り上がる曲が主で、そういう曲だと折る時のパキパキという音が周囲から聞こえてくるレベル。
で、これ一本一本も売っているけど、大体25本入りの箱で買う人が多い。
ここで一つの素朴な疑問が……

一体UOは1公演で何本折られて、それが何円分なのか

実際に計算してみた……

※色々前提条件とかはざっくり決めていくので超話半分で見てもらえるとありがたい。
まず一曲で折られる本数とその金額を計算する。
大体一曲に折る本数が、両手で4本を1番/2番で入れ替えて8本、SSAのアリーナモードのキャパが22500人なので、

22500人 × 8本 = 180,000(18万本) ※もうこの時点で割とヤベーイ……

で、UO一本の単価が2,300円 / 25本で92円なので

180000 * 92 = 16,560,000円(約1660万円)

これが1曲で消費される本数と金額。

これが "1曲"で 消費される本数と金額。

次にここから一公演で折られる本数と金額を求める。
一公演で折る曲は大体8曲くらいなのでこれを8倍するだけで良いので
※4thSSA、5th各地方公演から。5thSSAはメドレーがあってイレギュラーすぎるので除外

180,000本 * 8曲 = 1,440,000(約140万本)

16560000円 * 8曲 = 132,480,000円(約1億3千万円)

が一公演で消費されている事になる。

まとめ

結論:アイマスのライブでは1公演でUO140万本、約1億3千万円分が消費されている。

まぁ箱はもう少し安い箱を買うし、全員が全員折る訳でもないし、キャパも機材等々あるので多少減るので、この数字はざっくり。
しかし数字にしてみるとすごいな……
この数字、去年の24時間テレビの番組内での募金額とほぼ同程度みたい。

1本折る度に100円徴収すれば、3時間ちょっとで24時間TVを超えられる。強い。

以上。

デレステのアタポンイベント計算機を作った

TL;DR

デレステもなんやかんやリリース日から始め、約2年半の月日が経って正直イベントも担当かよほど絵が刺さらないと上位報酬まで走らない程度にモチベは下がっている。
どのmasterでも死ななくなって周回が作業化し、段々と面倒くさくなってきている。
だからこそ、「あと何回プレイすれば目標ポイントに到達するのか」があるといいなぁと。
という訳で作ってみた。
https://y-osaru.github.io/atapon/atapon_calc.html

※ペライチのhtmlというロックな作り。
※一応、アタポン計算機はいくつかあるけれど、何か自分で作った方が入力内容とか決められるし良いなって。
他の人も作りたくなった用に自分が使った計算式を共有する。
(間違ってたら教えて下さい。でも強い言葉で言われると泣きます。)

0.まず前提

この計算機で最低限求める物は

  • 通常楽曲のプレイ回数
  • イベント楽曲のプレイ回数
  • 総ポイント数
  • 総アイテム数

とする。
また、スタミナ19/スコアS前提にして、PLvは気にしない。

1.計算式

先ずはダダダッと変数定義
目標ポイント数:P_{goal}
通常楽曲1回のポイント数:P_{normal}
通常楽曲1回のアイテム数:I_{normal}
イベント楽曲1回のポイント数:P_{event}
イベント楽曲1回の消費アイテム数:I_{event}
現在のポイント数:P_{now}
現在のアイテム数:I_{now}
1回のログインボーナス:L
残り日数:D
通常楽曲プレイ回数:C_{normal}
イベント楽曲プレイ回数:C_{event}
総ポイント数:P_{total}
総アイテム数:I_{total}
余りアイテム数:I_{rest}

次にP_{goal}を求める式をうにうに考えると以下の様になる。
 P_{goal} = P_{normal} \times C_{normal} + P_{event} \times C_{event} + P_{now}

C_{normal}C_{event}の関係は以下の通りなので
C_{event} = \frac{I_{normal} \times C_{normal} + L \times D + I_{now}}{I_{event}}

これをP_{goal}の式に当てはめると
P_{goal} = P_{normal} \times C_{normal} + P_{event} \times (\frac{I_{normal} \times C_{normal} + L \times D + I_{now}}{I_{event}}) + P_{now}

これをC_{normal}について解くと、以下のようになる。結構美しい感じの式。

C_{normal} = \frac{I_{event} \times (P_{goal} - P_{now}) - P_{event} \times (L \times D + I_{now})}{P_{normal} \times I_{event} + P_{event} \times C_{normal}}

これが求まれば、先程のC_{event}の式に当てはめれば良い。

P_{total}I_{rest}
P_{total} = P_{normal} \times C_{normal} + P_{event} \times C_{event} + P_{now}
I_{total} = I_{normal} \times C_{normal} + L \times D + I_{now}
I_{rest} = I_{total} - I_{event} \times C_{event}

になる。これで計算式は出来た。

2.実は……

さっきの計算式で完璧。実装すればOK……ではない。
実際はC_{normal}C_{event}は少数になるので、整数にすると\lfloor C_{normal} \rfloor\lfloor C_{event}\rfloorになる。
この値で計算すると、当然P_{goal}P_{total}が超えられない事がある。

その為、計算機では以下の様な形で調整を行う事にした。

もしP_{goal} > P_{total}ならば、P_{goal} \leq P_{total}になるまで以下を繰り返す
I_{rest} < 150
→ 通常楽曲1回プレイ
150 \leq I_{rest} < 300
→ イベント楽曲等倍1回プレイ
300 \leq I_{rest} < 600
→ イベント楽曲2倍1回プレイ
600 \leq I_{rest}
→ イベント楽曲4倍1回プレイ

3.プログラムに……

コードはここに。
github.com


以上。

2017年を漢字一文字でまとめる①:「変」編

2017年も残す所、後2日。
去年もやった今年のまとめを残しておこうと思う。
個人的な今年を表す漢字を元にまとめていく。

今年のまとめ「変」編

続きを読む

ARで宮本フレデリカが飛び出す?!「Frederica.AR」をSerendipity Paradeで限定配布!

5/13(土)より、宮城セキスイハイムスーパーアリーナより

THE IDOLM@STER CINDERELLA GIRLS 5thLIVE TOUR

Serendipity Parade!!!

が開催されます。

開催に合わせ、去年も配布しましたARを使った飛び出す宮本フレデリカアプリ

Frederica.AR(ARデリカ)

をツアーの期間中、私と名刺交換した方限定で配布いたします。

DLは本記事下部のURLからお願い致します。

※パスワードはお会いした際に直接聞いていただくか、後程DMかリプライで聞いて頂ければと思います。 DLパスワードは無くしました。いらないからね。

DLの際は以下の注意事項をご確認の上、インストール頂ければと思います。

①本アプリはAndroid限定のアプリとなります。iOS端末ではインストール出来ません。

②ストアを介さない野良アプリとなります。「設定>セキュリティ>提供元不明のアプリ」より設定を許可して下さい。

③ブラウザによってはアプリがzipファイルでDLされてしまう事があります。その際は別のブラウザをご利用下さい。(PCでDL、スマフォに転送という方法でも問題ありません。)

④本アプリはキャプチャ機能が実装されています。キャプチャ画像は以下のフォルダに保存されます。 /storage/emulated/0/Android/data/com.Saru.FreName2/files/ 自動的にメディアスキャンを実行するように変更しました。その為、ギャラリーアプリやアルバムアプリに自動的に表示されます。 もし見つからなければFredericaというフォルダを探していただければと思います。

ダウンロードURL

https://storage.googleapis.com/t-shirt/FredericaName2.apk

https://storage.googleapis.com/t-shirt/qr.PNG

5周年記念ツアー楽しみましょう٩(๑òωó๑)۶

javascriptで1ヶ月後(nヶ月前/後)を計算する

「ある日から1ヶ月前/後を計算したい。」
よくありそうなこんな処理。単純にsetMonthの加減だけで良いのであれば楽なのだが、
日本の一ヶ月の定義はこんな感じだったりする。

「週、月又は年の初めから期間を起算しないときは、
その期間は、最後の週、月又は年においてその起算日に応当する日の前日に満了する。
ただし、月又は年によって期間を定めた場合において、最後の月に応当する日がないときは、
その月の末日に満了する。」

民法第143条第2項(暦による期間の計算):http://www.minnpou-sousoku.com/category/article/6/143_2.html


つまり最終月に同じ日あったら前日で、もし同じ日が無ければ月末日に合わせてね。

というルール。
JRの定期券とかもこういうルールらしい。
ぶっちゃけ初めて知った。

で、これを守ろうとすると単純なsetMonthの加減では収まらなくなる。
つまり独自実装が必要。
ところがどっこい調べてみてもこれをコードとして書いている記事が特に無い。
まぁ日本にローカライズされすぎているからかもしれないし、
こんな厳密性を求めるのは交通系や契約書作成とかそういう限られた場所になるだろうから
記事にする人が少ないからかも。

そんな事をふと思ってとりあえず作ったので記事にしておく。

続きを読む