u++の備忘録

【遊戯王デュエルリンクス】迷宮作成でモクバ40ハイスコア

モクバ40は、スキル「迷宮作成」で特殊召喚できる「迷宮壁―ラビリンス・ウォール―」を突破できない。
あとはハイスコアのパーツを揃えるだけ。トドメの際に「トラップ・ジャマー」で「攻撃の無力化」をカウンターする。

デッキレシピ

f:id:upura:20170620214806p:plain

結果

f:id:upura:20170620214709p:plain

【遊戯王デュエルリンクス】狩場で世界大会最終予選進出 デッキレシピあり

遊戯王デュエルリンクス世界大会の予選が6月1日から行われています。
www.konami.com

このたび、ようやく最終予選進出を決めることができました。
f:id:upura:20170608103442p:plain

デッキレシピはこちら。スキルは狩場です。
f:id:upura:20170608103542p:plain

デッキ構築で意識したのは、どんな相手にも柔軟に対応できること、すなわち安定性です。
予選を突破するには、最後の段階で強敵相手に5連勝が必要です。そのため可能な限り事故を減らすため、予選途中まで2枚入れていた「突撃指令」をデッキから抜きました。それに伴いハーピーをバニラから効果ありに変更し「憑依するブラッド・ソウル」「黄泉へ渡る船」というメタカードを採用しました。

ちなみに最後の5連勝の相手は、以下の通りでした。

  1. 遊戯(ディスティニー・ドロー)
  2. ペガサス(マインドスキャン)
  3. 孔雀舞(狩場)
  4. 竜崎(恐竜王国)
  5. 遊戯(ディスティニー・ドロー)

森友学園問題で話題の「忖度」を含む新聞記事数が爆発的に増えていた

本日、朝日新聞デジタルに下記のような記事が出ていました。

www.asahi.com

中身についての議論は別にして、最近「忖度(そんたく)」という言葉が過度に登場しているなぁと、ふと思いました。この気付きが正しいものか確かめるべく、「忖度」を含む記事の掲載数の推移を見てみることにしてみました。

検索対象

朝日新聞オンライン記事データベース「聞蔵(きくぞう)II ビジュアル」を用いて、1985年以降の「朝日新聞」「朝日新聞デジタル」に掲載された「忖度」を含む記事を検索しました。

f:id:upura:20170510103043p:plain

検索結果

合計454個の記事がヒットしました。その結果をExcelにコピペし、月ごとに集計した結果を以下に示します。

f:id:upura:20170510104228p:plain

横軸は対象期間内で「忖度」を含む記事が初登場する1987年8月から1カ月単位で分けました。青色の棒グラフは月ごとの「忖度」を含む記事数を示し、橙色の折れ線は累積比率を示します。

森友学園問題で「忖度」が注目され始めたのは2017年3月。2017年1月以降の記事数を見るだけでも、森友学園問題を契機に「忖度」を含む記事が爆発的に増えていると分かります。

  • 1月……3件
  • 2月……4件
  • 3月……37件
  • 4月……65件
  • 5月……17件

※5月は10日午前10時時点

GWの予定がないのでブログ更新してたら1日平均5000PVいった

GWは特に何も予定がなかったので、毎日ブログを更新していました。

この4日間の合計PV数は22011に達しました。楽しいGWでした。

f:id:upura:20170507203636p:plain

PK戦の先行有利は新制度「ABBAルール」で是正されるかモンテカルロシミュレーションで検証してみた

先行有利のPK戦

 サッカーのトーナメント制の大会で同点となった場合など、勝敗をつけるために行われるPK戦。当然のように交互にボールを蹴り合っていた制度の変更が、欧州サッカー連盟によって現在議論されているそうです。

www.soccer-king.jp

その理由は、現在のPK戦は先行が有利であることにあります。イギリスの教育・研究機関ロンドン・スクール・オブ・エコノミクス(LSE)の研究によると、1970年から2000年にかけて行なわれた主要な大会のPK戦2,820件を分析した結果、最初に蹴ったチームの60%が勝利していると分かったそうです。

この結果について、研究を主導した教授のイグナシオ・パラシオス・ウエルタは「ポイントを先行されることからくる精神的なプレッシャーが、後に蹴るチームのパフォーマンスに明らかに影響をおよぼしている」と分析しています。定量化はしづらいですが、定性的には納得の行く話です。

新制度「ABBAルール」とは?

新制度「ABBAルール」では、一回蹴るごとに先攻と後攻が入れ替わります。AとBが戦う場合、以下のような順番でボールを蹴っていくことになります。

A→B→B→A→A→B→B→A→A→B

この最初の四つを取って「ABBAルール」と呼ばれているようです。

この制度は現在クロアチアで行われているU-17欧州選手権チェコで行われているU-17女子欧州選手権で試行されています。欧州サッカー連盟によると、今後も試行試験が続けられ、その結果次第で世界的に導入される可能性があるとのことです。

ABBAルール」の効果は?

今回はこの「ABBAルール」が「PK戦の先行有利」の是正に繋がるのか、シミュレータの作成を通じて議論してみたいと思います。具体的には、以下の作業を行いました。

  1. 現在のPK戦を再現するシミュレータの作成
  2. ↑のシミュレータにおいてボールを蹴る順番のみを変更し、先攻の勝率の変化を調査

以下では、それぞれの作業について説明します。

現在のPK戦を再現するシミュレータの作成

最初に、現在のPK戦を再現するシミュレータを作成しました。

# -*- coding: utf-8 -*-
import random
random.seed(1)
scores_0 = []
scores_1 = []
kicker_count = 0
winners = []
r = 0.1 #リードされている時の成功率の下がり幅
kicker = 0
rest_kick_0 = 5
rest_kick_1 = 5

def shoot():
    if (kicker == 0 and sum(scores_0) < sum(scores_1)) \
        or (kicker == 1 and sum(scores_1) < sum(scores_0)):
        goal_prob = 0.81 - r
    else:
        goal_prob = 0.81
    if goal_prob > random.random():
        if kicker == 0:
            scores_0.append(1)
        else:
            scores_1.append(1)
    else:
        if kicker == 0:
            scores_0.append(0)
        else:
            scores_1.append(0)

def isSettlement():
    if kicker_count <= 9:
        if sum(scores_0) + rest_kick_0 < sum(scores_1) \
            or sum(scores_1) + rest_kick_1 < sum(scores_0):
                return 1
    else:
        if kicker_count % 2 == 1:
            if scores_0[int((kicker_count - 1) / 2)] - scores_1[int((kicker_count - 1) / 2)] != 0:
                return 1
    return 0

for j in range(100000):
    for i in range(1000):
        shoot()
        if kicker_count <= 9:
            if kicker == 0:
                rest_kick_0 -= 1
            else:
                rest_kick_1 -= 1

        if isSettlement():
            break
        
        # キックチーム交代
        kicker = 1 - kicker

        kicker_count += 1

    if sum(scores_0) < sum(scores_1):
        winners.append(1)
    else:
        winners.append(0)
    scores_0 = []
    scores_1 = []
    kicker_count = 0
    kicker = 0
    rest_kick_0 = 5
    rest_kick_1 = 5

print("先攻の勝率:" + str(1 - sum(winners)/len(winners)))

全員が均一な人間として非常に多くの回数(ここでは10万回)PK戦を実施した時に、先攻が何回勝つかを調べるプログラムです。

ここでハイパーパラメータとして、以下の二つを設定する必要があります。

  • 通常時のPKの成功率
  • リードされている時のPKの成功率

前者については、PK戦でない時のPK(つまりは試合中のPK)の成功率を採用することにしました。FIFA国際サッカー連盟)によれば、2006年ドイツ大会までのワールドカップ18大会では190回のPKが与えられ、得点できたのは154回。成功率は約0.81となります。

後者については、直接定義するのが難しいと感じたので「先攻の勝率が60%」という結果から推定することにしました。つまりは「リードされている時の成功率の下がり幅」をrという変数で表現し、この変数を変化させていく中で、最も「先攻の勝率が60%」に近づく時を調べました。

調べた結果を以下の図に示します。横軸はrの値、縦軸は先攻の勝率です。

f:id:upura:20170506201627p:plain

この図から読み取れるように、今回はr=0.1として話を進めることにしました。つまり「リードされている時のPKの成功率」は0.81-0.1=0.71と定義しました。この時、先攻の勝率は0.60668です。

ボールを蹴る順番の変更

さて、ここでようやく本題に移ります。先のプログラムでは交互にボールを蹴っていましたが、次のプログラムでは「ABABルール」を適用し、蹴る順番を変更します。この時に先攻の勝率がどうなるか(さらに言えば現状の60%より低くなるのか)が鍵となります。

プログラムの変更箇所は、以下の「キックチーム交代」の部分のみです。

        # キックチーム交代
        if kicker_count % 2 == 0:
            kicker = 1 - kicker

出力は、以下の通りでした。

先攻の勝率:0.51562

「ABABルール」でも先攻有利の状況は変わりませんが、現状に比べると大幅に不公平感は緩和されるようです。

「ホイールクリック」を知らずに損していた話

マウスのホイールをクリックすると、以下のような挙動になる。

  1. URLを新規タブで開く
  2. タブを閉じる

特に前者は今まで右クリックから選択していたので、目からウロコだった。後者は今までのCtrl+wで良い気もする。

【Jリーグ第10節 浦和―鹿島】試合内容以外は最高だった

本日4日に開催されたJリーグ第10節鹿島戦@埼玉スタジアム2002を見に行きました。浦和サポです。

晴天に恵まれ、来場者全員にオリジナルトートバッグを配布するサービスもありました。

f:id:upura:20170504213606j:plain

5/4(木・祝) 鹿島戦、『REDS025th ビッグトートバッグ』を来場者全員にプレゼント|URAWA RED DIAMONDS OFFICIAL WEBSITE

また試合前のコレオも質が高く、非常に心地よい時間を過ごせました。

f:id:upura:20170504213809j:plain
f:id:upura:20170504213814j:plain
f:id:upura:20170504213815j:plain

ただ、折角の素晴らしいお膳立ても、試合内容のせいで全て台無しでした。

比較的試合を支配していたにもかかわらず、金崎の個人技から失点。その後も幾度となくチャンスを作りましたが、最後の部分での決定力を欠き0―1で終戦しました。正直、前半を折り返すくらいの段階で「あ、いつもの負けパターンかな」と悟っている自分もいました。

個人的には、個々の選手の技術やチームの戦術では、鹿島に全く劣っていないと思います。にもかかわらず残念な結果になってしまうのは、認めたくないですが鹿島と浦和に根付くメンタリティの違いなのかなと……。

「今年こそ戴冠を」と意気込んでいた中での大宮戦に次ぐ連敗。どうしても気落ちしてしまいますね。