PHPで作って覚えるDI Container - その1 - DI is 何

さっき妹がめちゃくちゃリズミカルにチョコレイトディスコのメロディで「く・ろ・や・な・ぎ・徹子♪」とか言いながら部屋に入って来て私の明日のテスト中に無限ループする曲が決まった。詰んだ。
鬼道:土門がリズミカルにチョコレイトディスコのメロディで「く、ろ、や、な、ぎ、徹子♪」とか言いながら部屋に入ってきて明日のテスト中に頭の中で無限ループする曲が決まった。詰んだなこれは
辻「休み時間にテスト勉してたら、本条が突然チョコレイトディスコのリズムに合わせて 本条「く・ろ・や・な・ぎ・徹子♪」 って歌って踊り出してテスト中に俺の脳内でループする曲が決まった。詰んだ」
半田:俺の部屋でマックスと一緒に勉強してんだけど、さっきトイレから帰って来たマックスがめちゃくちゃリズミカルにチョコレイトディスコのメロディで「く・ ろ・や・な・ぎ・徹子♪」とか言いながら部屋に入って来て俺の明日のテスト中に無限ループする曲が決まった。詰んだ。
ジェニファー「さっきレベッカがめちゃくちゃリズミカルにチョコレイトディスコのメロディで「く・ ろ・や・な・ぎ・徹子♪」とか言いながら部室に入って来て私の明日のテスト中に無限ループする曲が決まった。詰んだ。」
輝:さっき隼人がリズミカルにチョコレイト・ディスコのメロディで「く・ろ・や・な・ぎ・徹子♪」とか言いながら部屋に入ってきたせいで無限ループしてテストの採点がはかどらない。
調:さっき切ちゃんが、無意識なんだろうけど恐ろしくリズミカルに「チョコレイト・ディスコ」のメロディで「く・ろ・や・な・ぎ・徹子♪」と言いながら私の隣に来て、この後のテスト中に無限ループする曲が決まった。詰んだ。
明日葉 :さっきお兄ぃがめちゃくちゃリズミカルにチョコレイトディスコのメロディで「く・ ろ・や・な・ぎ・徹子♪」とか言いながら部屋に入って来てあたしの明日のテスト中に無限ループする曲が決まった。詰んだ。
さっき妹がめちゃくちゃリズミカルにチョコレイトディスコのメロディで「く・ろ・や・な・ぎ・徹子♪」とか言いながら部屋に入って来て私の明日のテスト中に無限ループする曲が決まった。詰んだ。
パカ「さっきネコサイバーがめちゃくちゃリズミカルにチョコレイトディスコのメロディで「く・ろ・や・な・ぎ・徹子♪」とか言いながら部屋に入って来て俺の明日のテスト中に無限ループする曲が決まった。詰んだ」
タクト:さっきボッスンさんがめちゃくちゃリズミカルにチョコレイトディスコのメロディで「く・ ろ・や・な・ぎ・徹子♪」とか言いながら廊下を歩いて行って、ボクの明日のテスト中に無限ループする曲が決まった。詰んだ。
欅坂// 沈黙した恋人よ 少女には戻れない 東京タワーはどこから見える? 夏の花は向日葵だけじゃない これテスト期間ループしてたお気に入り
繰来:さっき凛がめちゃくちゃリズミカルにチョコレイトディスコのメロディで「く・ろ・や・な・ぎ・徹子♪」とか言いながら部屋に入ってきて僕の明日のテスト中に無限ループする曲が決まった。詰んだ。
さっき十束さんがめちゃくちゃリズミカルにチョコレイトディスコのメロディで「く・ろ・や・な・ぎ・徹子♪」とか言いながら部屋に入って来て俺の明日のテスト中に無限ループする曲が決まった。詰んだ。
さっき妹がめちゃくちゃリズミカルにチョコレイトディスコのメロディで「く・ろ・や・な・ぎ・徹子♪」とか言いながら部屋に入って来て私の明日のテスト中に無限ループする曲が決まった。詰んだ。
さっき妹がめちゃくちゃリズミカルにチョコレイトディスコのメロディで「く・ ろ・や・な・ぎ・徹子♪」とか言いながら部屋に入って来て私の明日のテスト中に無限ループする曲が決まった。詰んだ。
希乃:さっき優子がめちゃくちゃリズミカルにチョコレイトディスコのメロディで「く・ ろ・や・な・ぎ・徹子♪」とか言いながら部屋に入って来て私の明日のテスト中に無限ループする曲が決まった。詰んだ。
【コピペ】霧野「さっき狩屋がめちゃくちゃリズミカルにチョコレイトディスコのメロディで『ご・う・え・ん・じ・修也♪』とか歌いながら部室に入って来て、俺の明日のテスト中に無限ループする曲が決まった。詰んだ」 神童「待て霧野、なんで今俺に言った。俺まで頭から離れないんだが。詰んだ」
さやか: さっき杏子がめちゃくちゃリズミカルにチョコレイトディスコのメロディで 「く・ろ・や・な・ぎ・徹子♪」 とか言いながら部屋に入って来て私の明日のテスト中に無限ループする曲が決まった。詰んだ。
天使ヶ原:さっき笑美がめちゃくちゃリズミカルにチョコレイトディスコのメロディで 「く・ろ・や・な・ぎ・徹子♪」 とか言いながら教室に入って来て私の今日のテスト中に無限ループする曲が決まった。 詰んだ
ソフィア「さっきダビデが凄いリズミカルにチョコレイトディスコのメロディで「く・ ろ・や・な・ぎ・徹子♪」とか言いながら生徒会室に入って来て私の明日のテスト中に無限ループする曲が決まった。詰んだわ…」
さっき妹がめちゃくちゃリズミカルにチョコレイトディスコのメロディで「く・ろ・や・な・ぎ・徹子♪」とか言いながら部屋に入って来て私の明日のテスト中に無限ループする曲が決まった。詰んだ。
アイビー「さっきバカ妹がめちゃくちゃリズミカルにチョコレイトディスコのメロディで『く・ろ・や・な・ぎ・徹子♪」とか言いながら部屋に入って来て僕の明日のテスト中に無限ループする曲が決まった。詰んだ。フィルド殺す」
上原:[さっき堀木が、無意識にだろうけど恐ろしくリズミカルにチョコレイトディスコのメロディで「く・ろ・や・な・ぎ・徹子♪」とか言いながら俺の隣に来て、俺の次の時間のテスト中に無限ループする曲が決まった。詰んだ。]
さっき妹がめちゃくちゃリズミカルにチョコレイトディスコのメロディで「く・ろ・や・な・ぎ・徹子♪」とか言いながら部屋に入って来て私の明日のテスト中に無限ループする曲が決まった。詰んだ。
さっき妹がめちゃくちゃリズミカルにチョコレイトディスコのメロディで「く・ろ・や・な・ぎ・徹子♪」とか言いながら部屋に入って来て私の明日のテスト中に無限ループする曲が決まった。詰んだ。
さっき妹がめちゃくちゃリズミカルにチョコレイトディスコのメロディで 「く・ろ・や・な・ぎ・徹子♪」 とか言いながら部屋に入って来て私の明日のテスト中に無限ループする曲が決まった。 詰んだ
さっき妹がめちゃくちゃリズミカルにチョコレイトディスコのメロディで「く・ろ・や・な・ぎ・徹子♪」とか言いながら部屋に入って来て私の明日のテスト中に無限ループする曲が決まった。詰んだ。
さっき妹がめちゃくちゃリズミカルにチョコレイトディスコのメロディで「く・ろ・や・な・ぎ・徹子♪」とか言いながら部屋に入って来て私の明日のテスト中に無限ループする曲が決まった。詰んだ。 cmlla6
謙也:さっき侑士がめちゃくちゃリズミカルにチョコレイトディスコのメロディで「く・ ろ・や・な・ぎ・徹子♪」とか言いながら部屋に入って来て俺の明日のテスト中に無限ループする曲が決まった。詰んだ。
さっき妹がめちゃくちゃリズミカルにチョコレイトディスコのメロディで「く・ろ・や・な・ぎ・徹子♪」とか言いながら部屋に入って来て私の明日のテスト中に無限ループする曲が決まった。詰んだ。
さっき妹がめちゃくちゃリズミカルにチョコレイトディスコのメロディで 「く・ろ・や・な・ぎ・徹子♪」 とか言いながら部屋に入って来て私の明日のテスト中に無限ループする曲が決まった。 詰んだ
肩パン:さっき宮﨑がめちゃくちゃリズミカルにチョコレイトディスコのメロディで「く・ ろ・や・な・ぎ・徹子♪」とか言いながら部屋に入って来て私の明日のテスト中に無限ループする曲が決まった。詰んだ
宍戸:さっき千葉がめちゃくちゃリズミカルにチョコレイトディスコのメロディで「く・ ろ・や・な・ぎ・徹子♪」とか言いながら教室に入って来て俺の明日のテスト中に無限ループする曲が決まった。詰んだ。
十座:さっきめちゃくちゃリズミカルにチョコレイトディスコのメロディで「く・ろ・や・な・ぎ・徹子♪」って歌ってる太一とすれ違って、俺の明日のテスト中に無限ループする曲が決まった。詰んだ
三ツ谷「さっき風道がめちゃくちゃリズミカルにチョコレイトディスコのメロディで「く・ろ・や・な・ぎ・徹子♪」とか言いながら入って来て明日のテスト中に無限ループする曲が決まった。詰んだ。」
チュウキ:さっきセイランが、無意識にだろうが恐ろしくリズミカルにチョコレイトディスコのメロディで「く・ろ・や・な・ぎ・徹子♪」とか言いながら僕の隣に来て、僕の次の時間のテスト中に無限ループする曲が決まった。詰んだ。
美嘉「さっき妹がめちゃくちゃリズミカルにチョコレイトディスコのメロディで「く・ろ・や・な・ぎ・徹子♪」とか言いながら部屋に入って来て私の明日のテスト中に無限ループする曲が決まった。詰んだ」
さっき妹がめちゃくちゃリズミカルにチョコレイトディスコのメロディで 「く・ろ・や・な・ぎ・徹子♪」 とか言いながら部屋に入って来て私の明日のテスト中に無限ループする曲が決まった。 詰んだ
まゆり: さっき叶鳴がめちゃくちゃリズミカルにチョコレイトディスコのメロディで「く・ろ・や・な・ぎ・徹子♪」とか言いながらすれ違って明日のテスト中に無限ループする曲が決まった。終わった。
桑藤:さっき亮樹がめちゃくちゃリズミカルにチョコレイトディスコのメロディで『く・ろ・や・な・ぎ・徹子♪』とか言いながら教室に入って来て俺の今日のテスト中に無限ループする曲が決まった。詰んだ
さっき妹がめちゃくちゃリズミカルにチョコレイトディスコのメロディで 「く・ろ・や・な・ぎ・徹子♪」 とか言いながら部屋に入って来て私の明日のテスト中に無限ループする曲が決まった。 詰んだ
茂庭「さっき鎌ちがめちゃくちゃリズミカルにチョコレイトディスコのメロディで「く・ ろ・や・な・ぎ・徹子♪」とか言いながら部室に入って来て、俺の明日のテスト中に無限ループする曲が決まった。詰んだ」
凛太郎:さっき兄貴がめちゃくちゃリズミカルにチョコレイトディスコのメロディで 「く・ろ・や・な・ぎ・徹子♪」とか言いながら部屋に入って来て、俺の明日のテスト中に無限ループする曲が決まった。 詰んだ。
和泉守「さっき獅子王がめちゃくちゃリズミカルにチョコレイトディスコのメロディで「く・ろ・や・な・ぎ・徹子♪」とか言いながら教室に入って来て今からのテスト中に無限ループする曲が決まった。詰んだ」
越野「さっき彦一がめちゃくちゃリズミカルにチョコレイトディスコのメロディで「く・ ろ・や・な・ぎ・徹子♪」とか言いながら体育館に入って来てオレの明日のテスト中に無限ループする曲が決まった。詰んだ」
さっき妹がめちゃくちゃリズミカルにチョコレイトディスコのメロディで「く・ろ・や・な・ぎ・徹子♪」とか言いながら部屋に入って来て私の明日のテスト中に無限ループする曲が決まった。詰んだ。
倉持「さっき沢村がめちゃくちゃリズミカルにチョコレイトディスコのメロディで『く・ろ・や・な・ぎ・徹子♪』とか言いながら部屋に入って来て俺の明日のテスト中に無限ループする曲が決まった。詰んだ」
さっき妹がめちゃくちゃリズミカルに、チョコレイトディスコのメロディで 「く・ ろ・や・な・ぎ・徹子♪」 とか言いながら、部屋に入って来た。 私の明日のテスト中に無限ループする曲が決まった。 詰んだ。
一誠:さっきゼノヴィアが、めちゃくちゃリズミカルにチョコレイトディスコのメロディで「く・ ろ・や・な・ぎ・徹子♪」とか言いながら部屋に入って来て、俺の明日のテスト中に無限ループする曲が決まった。詰んだ。
さっき妹がめちゃくちゃリズミカルにチョコレイトディスコのメロディで「く・ろ・や・な・ぎ・徹子♪」とか言いながら部屋に入って来て私の明日のテスト中に無限ループする曲が決まった。詰んだ。

問題

用意された配列の値のうち、1つにプラス1して、すべての値と乗算した場合
どの値にプラス1するのがもっとも大きい結果になるか

0)
numbers = {1, 2, 3}
Returns : 12

1)
numbers = {1, 3, 2, 1, 1, 3}
Returns : 36
※数字は必ずしもユニークではない

2)
numbers = {1000, 999, 998, 997, 996, 995}
Returns : 986074810223904000

答えは非常に大きい数字になりますが、2の62乗を超えません

3)
numbers = {1, 1, 1, 1}
Returns : 36

自分なりの回答

<?
$numbers = array(1,1,1,1);
$target1 = 0;
for ($y = 0; $y < count($numbers); $y++){
  $target2 = 1;
  $numbers[$y] = $numbers[$y] + 1;
  for ($i = 0; $i < count($numbers); $i++) {
      $target2  = $target2 * $numbers[$i];
  }
  $numbers[$y] = $numbers[$y] - 1;
  if($target1 < $target2){
      $target1 = $target2;
  }
}
echo $target1;
?>

これだと2重にループするので配列に1000個値が入ってきたときにとんでもない数ループする
そしてメソッド化していないため、テストするさいに、配列の中身を書き換える必要があるため
ソースを書き換えることになってよろしくない

他の方の回答


<?php
function check($arr) {
    asort($arr);
    $arr[0] += 1;
    return array_reduce($arr, function ($carry, $item)
    {
        $carry *= $item;
        return $carry;
    }, 1);
}

var_dump(check(array(1,2,3)));
?>

私の回答と違い、メソッド化してあるのでテストのさいにもコードを書き換えずテスト化
array_reduceを使用することによって、ループの数を私の回答から比べて半分に減らしている。

まとめ

短いですがまとめると
私の回答はゴリ押しで誰でも思いつくような回答ですが、phpにはarray_reduceやarray_filter等便利な配列用の関数がいろいろあるので
どういう関数があるのか見ておいたほうが、私のような恥ずかしいコードを書かなくて済みますな。

[紹介元] PHPタグが付けられた新着投稿 – Qiita PHPで作って覚えるDI Container – その1 – DI is 何

  • コメント

    1. 匿名希望
      2017/08/16(水) 12:29:31

      タクト:さっきボッスンさんがめちゃくちゃリズミカルにチョコレイトディスコのメロディで「く・ ろ・や・な・ぎ・徹子♪」とか言いながら廊下を歩いて行って、ボクの明日のテスト中に無限ループする曲が決まった。詰んだ。

    2. 匿名希望
      2017/08/16(水) 12:29:31

      欅坂//
      沈黙した恋人よ
      少女には戻れない
      東京タワーはどこから見える?
      夏の花は向日葵だけじゃない

      これテスト期間ループしてたお気に入り

    3. 匿名希望
      2017/08/16(水) 12:29:31

      繰来:さっき凛がめちゃくちゃリズミカルにチョコレイトディスコのメロディで「く・ろ・や・な・ぎ・徹子♪」とか言いながら部屋に入ってきて僕の明日のテスト中に無限ループする曲が決まった。詰んだ。

    4. 匿名希望
      2017/08/16(水) 12:29:31

      さっき十束さんがめちゃくちゃリズミカルにチョコレイトディスコのメロディで「く・ろ・や・な・ぎ・徹子♪」とか言いながら部屋に入って来て俺の明日のテスト中に無限ループする曲が決まった。詰んだ。

    5. 匿名希望
      2017/08/16(水) 12:29:31

      パカ「さっきネコサイバーがめちゃくちゃリズミカルにチョコレイトディスコのメロディで「く・ろ・や・な・ぎ・徹子♪」とか言いながら部屋に入って来て俺の明日のテスト中に無限ループする曲が決まった。詰んだ」

    記事に戻る

関連記事