koboriakira.com

AIZU ONLINE JUGDEというサイトで、諸先輩方のコードを拝見させてもらいながら勉強するエントリ。

今回の問題は「バトンリレーゲーム/Baton Relay Game」というもの。

模範解答

以下、hs484さんのコードより。コメントアウトは、コボリが勝手に付け足しています。

学習

問題を見て、迷ったのは次の点。 脱落したあと、その脱落者を含まないように次の数をカウントできるかどうか。 自分だったら、

  • 「脱落したかどうか」の配列をつくって、カウントをすべきかどうか毎度処理する* 1回の操作ごとに配列を作り直す(脱落者を配列に入れないようにする)

の2つが浮かんだが、ベストには思えない。

おおまかな流れ

  1. 生徒のノードをつくる。生徒は、「自分の前後の生徒が何番か?」ということと「脱落していないか?」という情報をもつ2. 宣言された数に応じて、バトンを持つ生徒(cur)を動かしていく。
  2. 上の操作が完了したら、バトンを持つ生徒を脱落させ、その前後の生徒を関連づけさせる。
  3. 上記を繰り返し、最後に結果を出力処理の負荷の大きさは自分の考えた方法と似ていた。「宣言された数だけ繰り返し処理をしないようにできれば」と思ったが、今回はこれがベストか。

ただ、ノードを作ってグラフとして処理する方法は考えられなかった。たしかに点と線で考えられる問題なのだから、グラフで考えるべきだよなあ。そうすれば、上のように前後の関連づけも簡単にできる。

for文の様々な書き方の種類

Javaを学んでいくと、「こんな書き方もできるんだ!」と感じることが増えるが、なかでもfor文はいろんなパターンがある。今回はイテレータを利用したfor文を使っていた。while文で処理してもいいだろう。

下の2つは参考サイト。 Javaで使えるfor文の種類いろいろ at HouseTect,JavaScriptな情報をあなたに

イテレータと拡張 for文 | じっくり学ぶ Java講座


5年の休止期間を経て、M-1開催がついに発表されました。 昨年末、THE MANZAIはM-1を殺した―中川家から博多華丸・大吉までという記事を書いた人間からすると、今年のM-1はやはり注目度の高い大会になることでしょう。

しかし、それは同時に「2015年のM-1は楽しくなりそう」ということには直結しません。むしろ、コボリは最初愕然としていました。思わずツイートしてしまいましたが、

今冬復活「M-1グランプリ」資格は結成15年以内!(webザテレビジョン) - Yahoo!ニュース http://t.co/1ZvarFYyzn
最悪だー!!!!! もちろん見るけどさあ。

— コボリアキラ (@kobori_akira) 2015, 5月 23
15年にするってことは、結局2010年のM-1に出れたコンビでも出れる、ってことですからね。カナリアだって笑い飯だって出場できる。チャレンジ精神が全くないっすよねー。

— コボリアキラ (@kobori_akira) 2015, 5月 23
【どこよりも早い、2015年M-1出場者予想】http://t.co/9sbzBI5vFP

— コボリアキラ (@kobori_akira) 2015, 5月 23

こんな感じで(後述しますが、すこし誤解もありました。それでもあまり感想は変わらないですが)、非常に興奮したツイートをしていました(笑)。

今回は、上のツイート時よりは情報も集まったので、そこらへんをまとめつつ、2015年のM-1に対する視点のひとつを提示してみようと思います。

「結成15年以内」は失敗ではないか?

M-1が再開するにあたって、一番気にしていたのはそのルールでした。 『THE MANZAI』の「プロであれば結成年は関係ない」 というルールを受けて、M-1は何かしらの変更をしてくるか? ということです。 結果としては、結成からの年数以外は変わりませんでした。

出場資格はプロ・アマ・所属事務所を問わず、2人以上のコンビで結成15年以内(2000年1月1日以降結成)。賞金金額は1000万円。
「M-1グランプリ」詳細発表 出場資格がコンビ結成15年以内へ変更 (リアルライブ) - Yahoo!ニュース

ただし、まあアマチュアの出場についてはどうでもよいとしても(笑・ 第二の変ホ長調が出る可能性は残された)、「結成からの年数」の変更は重要です。というか、ここだけが勝負でした。

「15年」にした理由

結成からの年数を15年以内にした理由は、ざっくり言えば「 M-1のチャンスを失っていたコンビへの配慮 」です。

2010年大会までは出場資格は結成10年以内だったが、今大会の出場資格変更について「今回の復活まで5年のブランクがあります。出場資格をこれまでと同様に結成10年以内とした場合、現在結成11年目の方はラストイヤーの挑戦チャンスを失ってしまったことになります。それらのことも踏まえて今年は結成15年以内とする事にいたしました」と理由を説明。
「M-1グランプリ」詳細発表 出場資格がコンビ結成15年以内へ変更 (リアルライブ) - Yahoo!ニュース

上の発言を信じれば、「今回だけは15年でいこう」ということで、芸人あるいは芸人のファンにしてみれば「ありがとう!

これで僕たち(私のファン)もM-1に出れます!」という感じでしょうか。 しかし、だとしても個人的にはこの 「15年以内」は良策ではなかったと思います。 ### あらためて島田紳助の意図を思い出すあらためて、ですが、M-1は島田紳助により、2つの目的をもって創設されました。 Wikipediaを引用しながら書けば、ひとつは「単純におもろい奴を決めるコンテストをする 」こと。そしてもうひとつは、「 結果の出ないコンビの辞めるキッカケをつくる 」ことでした。

後者について、実際に辞めるべきかどうかは置いておくにしても、M-1の着想が「 若手目線」で行われていたことは事実です。そして、だからこその面白さがM-1にはありました。

たしかに現状のママでは、今年結成11年目のコンビはM-1に出るチャンスを逃します。しかし、これはミスリードもいいところで、彼らには一度も出るチャンスが無かったわけではない。結成5,6年目の頃は出場ができたわけで、そこでチャンスを掴めなかっただけです。

また、M-1だけがスターを生み出すわけではありません。チャンスを掴む芸人はその次代に応じてチャンスを掴んでいるはずです。

そういう意味で、「若手目線」を壊してしまった今年のM-1については、その _優しさのプラスよりもM-1らしさを失ったことのマイナスが大きい_と思っています。THE MANZAIとの差異化もしづらくなりましたし。

まとめに

というわけで、結成年数というのがM-1にとってかなり重要だということだけでもご理解いただければ幸いです。

最後にポジティブな話をすれば、笑い飯はすでに不出場を明確にしており、もしかすると暗黙の了解的に「M-1の空気」が作られていく可能性はあるかもしれません。

また、その他にも、THE MANZAIと同時期の開催によるネタ被りや、審査員の問題(とくに松本人志が座るかどうかは重要)。さらには「もし菊川怜がまたアシスタントを務めたらどうしよう」など、心配は尽きませんが、開催される限りはとにかく楽しいものになってくれればいいなあと思っています(笑)。 準決勝は見に行きたいな!


AIZU ONLINE JUGDEというサイトで、諸先輩方のコードを拝見させてもらいながら勉強するエントリ。

今回の問題は「ザ・スクエアーズ/The Squares」というもの。

模範解答

以下、sawfishさんのコードより(前回と一緒だ!

なんて人なんだ)。コメントアウトは、コボリが勝手に付け足しています。

学習

おおまかな流れ

  1. フィールドと避難者を設定する。向きを示す文字列の配列と、向きによる「次に進む方向」の配列をつくっておく2. まず、避難者それぞれについて、進行方向の確定をさせる。とりあえず「今向いている方向が進めるかどうか」から考え、それが無理なら問題文の通りに次案を検討していく3. 全員の進行方向が確定したら移動フェーズに入る。優先度(prio)を使いながら、同じ場所に避難者が着かないように移動させる。このとき、移動前の場所を床(避難者のいない場所)にしておくことを忘れずに4. それぞれの避難者について、非常口に立っていたら迷路から取り除く。
  2. まだ避難者が残っていれば、残った避難者だけで上記の処理を繰り返し行う。180秒(180カウント)したら強制的に終了。

優先度の処理の仕方

今回は、複数の避難者が同じ場所に移動する場合の対処に唸らされた。簡略すれば、それは「予約システム」のようなものだ。

方向付けが確定したとき、次に進むであろう場所に自分の向きを数値として入れておく。そうすると、2人目以降の数値が入るとき、どちらの数値(予約)を優先すべきか決められるわけだ。

最初は「まとめて処理すればいいのに」と思っていたが、ここの処理を理解して、方向付けと移動を分けて処理する大切さを理解した。

ArreyDeque

これまでArrayListとHashMapしかコレクションフレームワーク(コレクション=オブジェクトの集合を操作するために用意されたJava標準のAPI。今知った・笑)を使っていなかったが、ArrayDequeというのもあるようだ。

ArrayDequeは、両端キューとも呼ばれ、先頭末尾の双方から要素を出し入れできるキューの実装です。ArrayDequeを利用することで、キュー(FIFO:First
In First Out)やスタック(LIFO:Last In First Out)といったデータ構造を表現できます。 ArrayDeque |
Javaコード入門

アナロジーとして、ロケットペンシルのようなものか。真ん中の処理はできないが、1個ずつ取り出しつつ、目的の番が来たらそれを処理して、もう一度戻したり(あるいは捨てたり)できるイメージ。

メソッドは、offer()で末尾に登録し、poll()で先頭を取得and削除する。

今回の例では、これで避難者の脱出処理を上手に行うことができる。たとえば、5人いる中の2人目が脱出した場合、次の処理からは4人で行える。これはメモリの観点からも良いのかもしれない。

ちなみに、TreeMapという、勝手にソートしてくれるHashMapもあることを知った。便利そう。


Javaについて、基礎中の基礎は終わったような感じがしてきた。 しかし、まだ自信というほどのものはない。それは主に、「知ってる技が少ない=メソッドやクラスに関する知識が足りない 」ことと「 アルゴリズムのパターンを知らない 」ことが原因かと思っている。

そう悩んでいたところ、 AIZU ONLINE JUGDEというサイトに当たった。このサイトでは、いろんな言語に関する練習問題を多く載せてくれている。

難度は「“Hello World”を出力しなさい」という簡単な問題から、よく練られたアルゴリズムが要求されるような問題まで、いろんなレベルの問題が揃い、独学の身にとっては嬉しい。

さらに、このサイトは他の人の書いた(正解の)コードも公開されているため、これが非常に勉強になる。

というわけで、諸先輩方のコードを拝見させてもらいながら勉強してみようと思う。今回の問題は「錬金マスター/Wrought Gold Master」というもの。

模範解答

以下、sawfishさんのコードより。コメントアウトは、コボリが勝手に付け足しています。

学習

おおまかな流れ

  1. アイテムのインスタンスを作り、そのインスタンスの中にレシピリストを作り、必要なアイテム(インスタンス)を登録する。
  2. 指定されたアイテムについて、「レシピが存在しなければ、購入金額が最低費用」、「存在するなら、素材ごとの最小費用の合計を最小値」とする非常にシンプルな処理。自分だったらItemクラスとRecipeクラスを作ってしまいそうだ。たしかに、必要な素材はアイテムの情報として登録すべきだろう。

インスタンスの作成方法

まず気になったのが、下の箇所。

Item item = getItemInstance(br.readLine());itemTable.put(item.name, item);自分がインスタンスを作るときは、たいてい配列でインスタンスを作っていたのだが(item[0]みたいな)、模範解答では、

「itemインスタンスを生成する」→「マップにアイテムの名前とインスタンスを登録する」→「itemインスタンスを生成する」→「マップに登録」

の繰り返しでインスタンスを生成し、コントロールできるようにしている。これをすることで、(例えば今回のように)名前からあるインスタンスを持ってくることができるようになる。すごい。

また、2回目にitemインスタンスを生成するとき、1回目に生成したitemインスタンスを上書きするものだと思っていたが、どうやらそういう訳でもないらしい。

「new Item」とコードを書くぐらいだから、きっと新規作成なのだろう。

三項条件演算子

if文の省略について、そろそろ勉強してもよいだろう。単純な処理はこういった1行で済むコードで済ませておきたいところ。

条件式 ? 式1 : 式2 「式1」は、条件がtrue出会った場合。「式2」はfalseの場合。

StringTokenizerクラスについて

レシピをつくるときに、StringTokenizerクラスを使っているのも勉強になった。これは入力された文章を半角スペースごとに区切ってくれるクラスメソッド(?)だ。これまで、標準入力を読み取って、その文字列をsplitメソッドで分けて処理していたが、このような方法もある。

ちなみに、nextToken()で次の文字列(トークン)を取得し、countToken()で残りの文字列の数を取得できるよう。


来月6月10日、w-inds.のニューシングル「In Love With The Music」が発売されます。 友人がカラオケで歌っていた「LOVE IS THE GREATEST THING」で気になって、「HYBRID DREAM」あたりからドハマりした自分ですが、まさかこんなに熱心に追うことになるとは思ってもみませんでした。

そして、そんな感情を今まで以上に高ぶらせてくれるのが、今作「In Love With The Music」です。

「In Love With The Music」の感想

2種類の「音楽的な進化」

とにもかくにも、まず一聴していただければ「デビュー15年目に突入し、ますます音楽的な進化を見せつけるw-inds.」というオフィシャルのコメントが誤りでないことは自明かと思います。「2015年の音楽・ベスト10」に入るのは確実でしょう。

そして個人的には、彼らのいう「音楽的な進化」というのが2種類あるように思えました。

『Timeless』からの進化

ひとつは、前作『Timeless』からの進化です。とくに「Make You Mine」や「Good Time」あたりの、いわゆる「レトロモダン」路線を引き継いでいます。これ、w-inds.ファンの人で私みたいな性格なら絶対に押さえておきたいところですが、

世界のトレンドを取り入れながらも、いつまでも色褪せないという思いをタイトルに込めた”Timeless”(Timeless=時代を超越した、永遠)。そして
エレクトロダンスミュージックへの傾倒から2年を経て たどり着いた大人の心地良さの溢れるレトロモダンなアルバムが完成しました。
w-inds.tv|w-inds. 10th ALBUM「Timeless」収録曲&ジャケ写公開!
|INFORMATION

というコメントがオフィシャルで出ています。「『Another World』や『MOVE LIKE THIS』とはまた一味違いまっせ」ってことですね。その結果、ハウスやエレクトロのような楽曲からヒップホップ・R&B;への揺り戻しが起こり、「Make You Mine」はライムスター宇多丸というベテランラッパーが2014年のナンバーワン楽曲に上げることにもなりました。 宇多丸が選ぶ 2014年J-POP NO.1楽曲 w-inds.『Make you mine』

ここらへんの驚き・感動は、拙ブログ(?)をいくつか拾い読みしていただければ、少しご理解いただけるかもしれません。意外とたくさん書いています。「僕なんてまだファンじゃないよ〜」とか猫被ってましたが、もうファンかもしれない。

w-inds. | コボリアキラの要約と反復

※ニクいのは、上記のような言い方は「エレクトロ期」の価値を下げてしまうことになりかねないのですが、「In Love With The Music」はエレクトロ期を歌詞で回収しているところです。誰かがツイッターで指摘していましたが(ご存知の方、教えていただけると嬉しいです)、ブリッジでは「Put Your Hands Up」、「FLY HIGH」、「New World」が引用されています。 (下の方です) > きっとバキバキに踊るであろう間奏の前の歌詞にput your hands upとかFLY HIGHとか新たな世界へとか入ってるのニクいー(´д`)

In Love With The Music_w-inds. http://t.co/NMHUjZBwq9

— 桂(けい) (@25kei25) 2015, 5月
16

「過去のw-inds.」からの進化

もうひとつは、エレクトロに傾向するより前の、過去のw-inds.からの進化です。「進化」というより 「アップデート」 と言ったほうが適切でしょうか。

たとえば「In Love With The Music」は、製作者の意図ではないと思いますがコボリが聴くかぎり、「Midnight Venus」や「song 4 U」の流れを汲んでいるように感じました。 これはコボリの勝手な見立てですが、

「レトロモダン」の萌芽はこの頃から、というよりデビュー時の「Forever Memories」から既にありました。 ですので、現在のw-inds.はこの15年の歴史をしっかりと踏まえた上で2015年という時代に合わせることができている、ものすごいユニットだと思っています。 以前日記に「今こそ過去曲のアップデートを 」と書いたことがありますが、そういう意味でTimelessツアーは本当に素晴らしかったですし(「Whose is that girl?」とかカッコ良すぎた)、「In Love With The Music」も新曲ながら物語を感じさせます。 ちなみにこのアップデートは、

Vo.の橘慶太の成長が無くして成立はしません。 ココらへんは素人なので勘弁ですが、緩急をつけた歌い方やリズムの取り方など、ボーカルの技術が格段に上がったことで、今回のような曲が出せていることは言うまでもありません。

※ダンスは本当にサッパリなのでアレですが、おそらくダンス・コーラスの緒方龍一、千葉涼平の2名も相当レベルアップしているんだと思います。今作だと、千葉涼平のラップパートの「音を上げて限界まで」の、すごいタメた最初の「お」が素晴らしいです。このテンポでこれだけタメをつくるのって結構難しいです。ぜひ試しに歌ってみてください。涼平くんより先に「お」って言ってしまうと思います。「お」のガマン比べですね(笑)。

期待されるカップリング曲と、ニューアルバム『Blue Blood』

という感じで、まだ発売前ですがザッと書いてみました。もう少し詳しく書きたいところもあるのですが、まだクリアな音源を聴けていないので、カップリング曲とともに楽しみに待つことにします(あと、「FANATSY」と同様、今回もリミックスやります!)

そして、7月はニューアルバム『Blue Blood』も発売になるということでして、こちらの内容も非常に気になります。「過去曲の再録」という_オッズ10万倍_ ぐらいの勝負に万札を放り投げつつ(笑)、レトロモダンをどこまで拡大していくかを期待したいと思います。

ちなみに、本当にちなみにですが、

「in love with 〜」という言葉遣いは、恋人との恋愛関係において使われるようです。今回みたいに比喩的な使い方は正しいんですかね(笑)。 I love youと I am in love with youのニュアンスの違い。 - 英語 |教えて!goo


※「つまらなくなるから、ネタバレは辞めてね」と最初に注意されたので、以下はネタバレを許容する人に向けて、ってことで一つよろしくお願いします。 > ―それにしても、監督たちの、下調べをしてこないっぷりが清々しいですよね。でも、その出たとこ勝負が映画全体の躍動感に繋がっていますね。

松尾:最後まで「ビズはさぁ~」って名前間違えてますから。でもよく知っている人が撮ったら「BiSはやっぱりすごい」で終わってしまったはずなんです。下調べなし、リスペクトのリの字も持たない人たちを彼女たちにブツけることに意義がありました。
[…]
松尾:渡辺君に限らず、『キャノンボール』シリーズって女性を相手にしているはずなのに、最終的には男の話になっちゃうんです。僕らはAV監督ですから男なんて撮りたくないんですが、このシリーズだけはどうしても男の話になってくる。今回も、BiSのドキュメンタリーなのに、BiSのことをほとんど紹介してませんからね。
AV監督VSアイドルの騙し合い 映画『BiSキャノンボール』の企み - 映画インタビュー :
CINRA.NET

というインタビュー記事を読み、「AVもBiSも、何もわからなくても観れるかな」と思って(BiSって、tengal6と一緒にラップしてなかったっけ?ぐらいの認識だったので、現状を知ってとても驚きました)、新宿テアトルで観てきました。

まあ、観たのは今日じゃなくてバレンタインなんですが、レビューを書いていたことを思い出しました。

映画の概要

本作は、昨年2014年に解散したBiSというアイドルグループの解散ライブ直前からその直後までを追ったドキュメンタリです。

ただひとつ特徴的なことは、メンバー6人を撮る 6人のカメラマンが全員「ハメ撮りを得意とするAV監督」である こと。映画のキャッチコピーの「アイドル vs AV監督」の文字通り、AV監督はアイドルをハメ撮りすることを目指して、密着取材を進めます。

という、概要だけでも賛否両論が出そうな内容ですが、実際の感想も様々。新宿テアトルのレイトショーの1週目興行収入の歴代1位を記録したように影響力が伺えます。

賛否両論【劇場版BiSキャノンボール】感想まとめ - Togetterまとめ

音楽のない映画、読み込めない<物語>

以降は、BiSのことも、この映画の前作にあたる『テレクラキャノンボール』のことも知らない、事前知識の無い人間から見た感想です。

まず、ものすごい単純に「解散ライブぐらい、最高の状態でやらせてあげなよ(苦笑)」という気持ち悪さ(怒り…かも)はエンディング後にもずっと残りました(今思い出しても同じ感覚です)。

映画に流れるBiSの音楽もあまり好きじゃなかったんですが、劇中で流れる曲のヒドさもあいまって、「 もしかして、音楽はどうでもいいのかな 」と。

※ちなみに、ここに並列することも失礼かとは思いますが、道重さゆみの卒業ライブがこの怒りを誘発したことは否めません。フクムラダッシュと同じぐらいのパフォーマンスを!

とは言わないけれど、いいパフォーマンスをしたい/見たいのは皆同じだと祈りたいところです。

もうひとつ、とくに感じたのは、この映画が<物語>を読み込むことを強く拒絶していたことです。つまり、この映画にカタルシスは訪れない。映画の中にいるのは、「一人のアイドルと、彼女を騙して良い画を撮ろうとする監督」であり、観客はそれをただ受け入れるだけでした。

多分「これは失敗についてのドキュメンタリーだ」とか言われてると思うんですが(監督が言ってました・笑)、まあそれもあまりポジティブには捉えられないですよね(笑)。

ヴェールに包まれた映画

というわけで、端的に「 つまらなかった 」ってことで終わってしまうんですが(苦笑)、それでもいくつか印象的なシーンが2つありました。

そのひとつは、「テンテンコ×ビーバップみのる」で、訳の分からない説得と相談を繰り返し、最終的にビーバップみのるは『プレイボーイ』に掲載されている彼女の写真の上に(自慰行為によって)顔射をするシーン。

そしてもうひとつは、「コショージメグミ×梁井一」で、ハメ撮りに失敗した悔しさから、撮影終了後に彼女の写真をサイドシートに貼り付けてドライブし、途中でナンパした素人女性にその写真をつけてハメ撮りをしたシーンです。こちらも最後は顔射でした。

この2つのシーンは、私には『ヴェールとファロス』を想起させるに十分すぎるものでした。 [amazonjs asin=“4434071858”locale=“JP” title=“ヴェール/ファロス―真理への欲望をめぐる物語”] 上の本は、コボリが大変お世話になった教授の著書です。

本書のポイントを簡潔にまとめると(すみません!!)、「真理があると想像=勘違いしているから、ヴェールを剥がし続ける=真理への探求を続けることになる。しかし、ヴェールを剥がしても中には何もない(orまた次のヴェールがある)ことに気づく」ことを説明しています。

もっと卑近に例えれば、「スカートをめくる前の興奮はものすごいが、実際にめくってパンティを観たときの興奮は大したことない。

われわれはスカートの外からしかパンティを見ることができないのだ 」という感じです(すみません!!!!!!!!!!)。

AV監督は、真理を追求する側として、アイドル(=偶像)にかかったヴェールを剥がそうとしました。しかし、剥がしたと思ったヴェールの中には、またヴェールがかかっていますし、そもそも中身など存在しません。

「わたしの精液は顔=《ファロス》には届かず、誌面や仮面=《ヴェール》に当たるしかない。」

誌面上/仮面上への射精は、このことをわかりやすく伝える映像だな、と感じました。


と、結論部を書けないまま忘れ去られていたテキストですが、とりあえず。