SlideShare a Scribd company logo
1 of 40
∼シチュエーション別∼
Perlでちょいモテアルゴリズム



  2012/01/27 Livedoor DeNA 合同勉強会
     萬野有生 @DeNA id: mandy_44
Case1:
Case1:
「運命の人なら誕生日くらい当て
 られるよね!?9回で当てられ
 ないと・・・(*́ω`*)」
Case1:
「運命の人なら誕生日くらい当て
 られるよね!?9回で当てられ
 ないと・・・(*́ω`*)」




電波ですか?a(°Д°ill
彼女の誕生日を9回以内に当てよ!
ただしはずれると彼女は誕生日が
それより後か前か教えてくれる。
1/1   1/2   ・・・   6/30   7/1    7/2    ・・・   12/30 12/31




7/1   7/2   ・・・   9/30   10/1   10/2   ・・・   12/30 12/31




7/1   7/2   ・・・   8/14   8/15   8/16   ・・・   9/29   9/30
#!/usr/bin/perl

use strict;
use warnings;
                                    中間値を取ってきてその
my $MAX_LOOP = 9;
                                    前後どちらにあるか判定
my $doy = 250; # 9/7
my ($min $max) = (0, 365);

my $ans;
for (1..$MAX_LOOP) {
                                     計算量はO(log2n)
    my $mid = int(($min+$max)/2);

    if ($mid == $doy) {
        $ans = $mid;                 並列N分探索は強力
        last;
    }
    elsif($mid > $doy) {
        $max = $mid;
    }
    else {
        $min = $mid;
    }
}

print "ans: ", $ans, "n";
#!/usr/bin/perl

use strict;
use warnings;
                                     中間値を取ってきてその
my $MAX_LOOP = 9;
                                     前後どちらにあるか判定
my $doy = 250; # 9/7
my ($min $max) = (0, 365);

my $ans;
for (1..$MAX_LOOP) {
                                      計算量はO(log2n)
    my $mid = int(($min+$max)/2);

    if ($mid == $doy) {
        $ans = $mid;                  並列N分探索は強力
        last;
    }
    elsif($mid > $doy) {
        $max = $mid;
    }
    else {
        $min = $mid;
                                    じわりじわりと攻めていく
    }
}

print "ans: ", $ans, "n";
Case2:
Case2:
「私、1日でなるべくいっぱい映画
 を見たいの☆(ゝω・)vキャピ」
Case2:
「私、1日でなるべくいっぱい映画
 を見たいの☆(ゝω・)vキャピ」




DVD借りようよ(;・ ・)
n本の映画が上映されている。各映
画は時刻siに始まりeiに終了する。
できるだけ多くの映画を見たいと
き何本見ることができるか。
ただし途中入退場は出来ない。
2       4

1       3       5

                    時間
2       4

   1       3       5

                       時間




1.一番開始時間の早いものから見る
2.一番時間の短いものから見る
3.一番終了時間の早いものから見る
2       4

       1       3       5

                           時間




   1.一番開始時間の早いものから見る
   2.一番時間の短いものから見る
   3.一番終了時間の早いものから見る


今、その時点で一番○○なものを
選んでいく
2       4

       1       3       5

                           時間




   1.一番開始時間の早いものから見る
   2.一番時間の短いものから見る
   3.一番終了時間の早いものから見る


今、その時点で一番○○なものを
                                貪欲法
選んでいく
#!/usr/bin/perl

use strict;
use warnings;
                                                       終了時間でソート
# 映画のリスト
                                                           ↓
my @movies = ([1,3], [2,5], [4,7], [6,9], [8,10]);
@movies = sort { $a->[1] <=> $b->[1] } @movies;      順番に今見ることが出来
my $ans = 0;                                             るかを判定
my $end = 0; # 前回見た映画の終了時刻
                                                           ↓
for my $movie (@movies) {
    if ($movie->[0] > $end) {                        見れるものがあれば見る
        $ans++;
        $end = $movie->[1];
    }
}                                                      計算量はO(n)
print "ans: ", $ans, "n";
#!/usr/bin/perl

use strict;
use warnings;
                                                       終了時間でソート
# 映画のリスト
                                                           ↓
my @movies = ([1,3], [2,5], [4,7], [6,9], [8,10]);
@movies = sort { $a->[1] <=> $b->[1] } @movies;      順番に今見ることが出来
my $ans = 0;                                             るかを判定
my $end = 0; # 前回見た映画の終了時刻
                                                           ↓
for my $movie (@movies) {
    if ($movie->[0] > $end) {                        見れるものがあれば見る
        $ans++;
        $end = $movie->[1];
    }
}                                                      計算量はO(n)
print "ans: ", $ans, "n";




                      仕事も恋も貪欲さが大事
Case3:
Case3:
「何でも食べていいんだよねっ?
 何食べたら一番お腹いっぱいに
 なるかなー♪(・ ・)」
Case3:
「何でも食べていいんだよねっ?
 何食べたら一番お腹いっぱいに
 なるかなー♪(・ ・)」




5万円まででお願いします
    (ヽ ω`)
n種類の料理のリストがある。
各料理はpiの値段でviの量がある。
X万円以内で一番量が多くなる料理
の組み合わせを見つけよ。
※ただし料理は1種類につき1回し
か頼めない
i番目の料理を食べるか食べないかで総当たり
                 → 計算量はO(2^n)
i番目の料理を食べるか食べないかで総当たり
                 → 計算量はO(2^n)

    i番目の料理を食べる、食べない、に分解



      食べた時           食べない時
X-pi円でi番目以外の料    X円でi番目以外の料理で
理で最も量を食べたい       最も量を食べたい
i番目の料理を食べるか食べないかで総当たり
                 → 計算量はO(2^n)

    i番目の料理を食べる、食べない、に分解



      食べた時              食べない時
X-pi円でi番目以外の料       X円でi番目以外の料理で
理で最も量を食べたい          最も量を食べたい



                動的計画法
i番目の料理を食べるか食べないかで総当たり
                 → 計算量はO(2^n)

    i番目の料理を食べる、食べない、に分解



      食べた時              食べない時
X-pi円でi番目以外の料       X円でi番目以外の料理で
理で最も量を食べたい          最も量を食べたい



                動的計画法

 一つ前や一つ後を考えたときに相似形が出てくる
 ような問題はDPで解きやすい!
i番目(i=0∼n-1)までの料理をj万円以内で食
べた時の量の最大値をdp[i+1][j]とおく



i→i+1とするときの遷移を考えると、以下の
漸化式が導ける
i番目(i=0∼n-1)までの料理をj万円以内で食
    べた時の量の最大値をdp[i+1][j]とおく



    i→i+1とするときの遷移を考えると、以下の
    漸化式が導ける


             dp[i][j] (j < v[i])
dp[i+1][j] = max(dp[i][j], dp[i][j-p[i]]+v[i]) (それ以
             外)
#!/usr/bin/perl

use strict;
use warnings;
use List::Util qw(max);

my   $n   =   4;                        計算量はたかだかO(nX)
my   @p   =   (2, 1, 3, 2);
my   @v   =   (3, 2, 4, 2);
my   $X   =   5;

my @dp = ([0, 0, 0, 0, 0, 0]);
for my $i (0..$n-1) {
    for my $j (0..$X) {
        if ($j < $p[$i]) {
            $dp[$i+1][$j] = $dp[$i][$j];
        }
        else {
            $dp[$i+1][$j]
                = max($dp[$i][$j], $dp[$i][$j-$p[$i]] + $v[$i]);
        }
    }
}

print "max_v: ", $dp[$n][$X], "n";
#!/usr/bin/perl

use strict;
use warnings;
use List::Util qw(max);

my   $n   =   4;                        計算量はたかだかO(nX)
my   @p   =   (2, 1, 3, 2);
my   @v   =   (3, 2, 4, 2);
my   $X   =   5;

my @dp = ([0, 0, 0, 0, 0, 0]);
for my $i (0..$n-1) {
    for my $j (0..$X) {
        if ($j < $p[$i]) {
            $dp[$i+1][$j] = $dp[$i][$j];
        }
        else {
            $dp[$i+1][$j]
                = max($dp[$i][$j], $dp[$i][$j-$p[$i]] + $v[$i]);
        }
    }
}

print "max_v: ", $dp[$n][$X], "n";



                              過去の思い出は大切に
Case4:
Case4:
「今度の旅行楽しみだねー♪でも
 私最短距離で移動しないと怒っ
ちゃうぞっ(o≧▽゚)o」
Case4:
「今度の旅行楽しみだねー♪でも
 私最短距離で移動しないと怒っ
 ちゃうぞっ(o≧▽゚)o」




新幹線で(ry (;́ `)
n個の地点がある。
各地点間の道路の距離が与えられ
た時、地点iから地点jまでの最短経
路を求めよ。
3
        2

                 9
    8                 10    4
1




                 11
            12             この問題は左図のようなグラフで表される
7
                      5
                             (この場合は重み付き無向グラフ)
             6


    1.n以下の整数kを取る
    2.(1∼k) (i,j)のグラフを考える
    3.この時のi,j間の最短経路をpi,jとする
    4.このグラフに地点k+1を加える
    5.この時のi,j間の最短経路は以下のどちらか
3
        2

                 9
    8                    10       4
1




                 11
            12                  この問題は左図のようなグラフで表される
7
                         5
                                  (この場合は重み付き無向グラフ)
             6


    1.n以下の整数kを取る
    2.(1∼k) (i,j)のグラフを考える
    3.この時のi,j間の最短経路をpi,jとする
    4.このグラフに地点k+1を加える
    5.この時のi,j間の最短経路は以下のどちらか

                     pi,jまたはpi,k+1+pk+1,j
3
        2

                 9                ワーシャルフロイド
    8                    10       4
1




                 11
            12                  この問題は左図のようなグラフで表される
7
                         5
                                  (この場合は重み付き無向グラフ)
             6


    1.n以下の整数kを取る
    2.(1∼k) (i,j)のグラフを考える
    3.この時のi,j間の最短経路をpi,jとする
    4.このグラフに地点k+1を加える
    5.この時のi,j間の最短経路は以下のどちらか

                     pi,jまたはpi,k+1+pk+1,j
#!/usr/bin/perl
                               $p[$i][$j]は、
use strict;
use warnings;
                               直通の道あり → 2点間の距離d
my $n = 12;                    直通の道なし → (十分大きな数)
my ($s, $g) = (2, 5);
my @p = init_p();              $i == $j    →0
for my $k (1..$n) {            で初期化する
    for my $i (1..$n) {
        for my $j (1..$n) {
            if ($p[$i][$k] + $p[$k][$j] < $p[$i][$j]) {
                $p[$i][$j] = $p[$i][$k] + $p[$k][$j];
            }
        }
    }
}

print "ans: ", $p[$s][$g], "n";
                                                     計算量はO(n^3)
#!/usr/bin/perl
                               $p[$i][$j]は、
use strict;
use warnings;
                               直通の道あり → 2点間の距離d
my $n = 12;                    直通の道なし → (十分大きな数)
my ($s, $g) = (2, 5);
my @p = init_p();              $i == $j    →0
for my $k (1..$n) {            で初期化する
    for my $i (1..$n) {
        for my $j (1..$n) {
            if ($p[$i][$k] + $p[$k][$j] < $p[$i][$j]) {
                $p[$i][$j] = $p[$i][$k] + $p[$k][$j];
            }
        }
    }
}

print "ans: ", $p[$s][$g], "n";
                                                     計算量はO(n^3)


                    ときには遠回りも必要(?)
Thank you very much for your attention.

More Related Content

What's hot

Elixirだ 第1回 - 基礎だ -
Elixirだ 第1回 - 基礎だ -Elixirだ 第1回 - 基礎だ -
Elixirだ 第1回 - 基礎だ -Joe_noh
 
リストモナドを作ってみた
リストモナドを作ってみたリストモナドを作ってみた
リストモナドを作ってみたAtsushi Kanehara
 
第7回社内勉強会「Code Sucks - 人の振り見て我が振り直せ」
第7回社内勉強会「Code Sucks - 人の振り見て我が振り直せ」第7回社内勉強会「Code Sucks - 人の振り見て我が振り直せ」
第7回社内勉強会「Code Sucks - 人の振り見て我が振り直せ」Hiromu Shioya
 
姫路IT系勉強会 Vol.11 第0回L-1グランプリ bash
姫路IT系勉強会 Vol.11 第0回L-1グランプリ bash姫路IT系勉強会 Vol.11 第0回L-1グランプリ bash
姫路IT系勉強会 Vol.11 第0回L-1グランプリ bashJun Nogata
 
Deep Learningと他の分類器をRで比べてみよう in Japan.R 2014
Deep Learningと他の分類器をRで比べてみよう in Japan.R 2014Deep Learningと他の分類器をRで比べてみよう in Japan.R 2014
Deep Learningと他の分類器をRで比べてみよう in Japan.R 2014Takashi J OZAKI
 
これからの「言語」の話をしよう ―― 未来を生きるためのツール
これからの「言語」の話をしよう ―― 未来を生きるためのツールこれからの「言語」の話をしよう ―― 未来を生きるためのツール
これからの「言語」の話をしよう ―― 未来を生きるためのツールNobuhisa Koizumi
 
詳説ぺちぺち
詳説ぺちぺち詳説ぺちぺち
詳説ぺちぺちdo_aki
 

What's hot (11)

Elixirだ 第1回 - 基礎だ -
Elixirだ 第1回 - 基礎だ -Elixirだ 第1回 - 基礎だ -
Elixirだ 第1回 - 基礎だ -
 
リストモナドを作ってみた
リストモナドを作ってみたリストモナドを作ってみた
リストモナドを作ってみた
 
WUPC2012
WUPC2012WUPC2012
WUPC2012
 
第7回社内勉強会「Code Sucks - 人の振り見て我が振り直せ」
第7回社内勉強会「Code Sucks - 人の振り見て我が振り直せ」第7回社内勉強会「Code Sucks - 人の振り見て我が振り直せ」
第7回社内勉強会「Code Sucks - 人の振り見て我が振り直せ」
 
姫路IT系勉強会 Vol.11 第0回L-1グランプリ bash
姫路IT系勉強会 Vol.11 第0回L-1グランプリ bash姫路IT系勉強会 Vol.11 第0回L-1グランプリ bash
姫路IT系勉強会 Vol.11 第0回L-1グランプリ bash
 
数数
 
Applicative functor
Applicative functorApplicative functor
Applicative functor
 
Deep Learningと他の分類器をRで比べてみよう in Japan.R 2014
Deep Learningと他の分類器をRで比べてみよう in Japan.R 2014Deep Learningと他の分類器をRで比べてみよう in Japan.R 2014
Deep Learningと他の分類器をRで比べてみよう in Japan.R 2014
 
これからの「言語」の話をしよう ―― 未来を生きるためのツール
これからの「言語」の話をしよう ―― 未来を生きるためのツールこれからの「言語」の話をしよう ―― 未来を生きるためのツール
これからの「言語」の話をしよう ―― 未来を生きるためのツール
 
勉強会課題①
勉強会課題①勉強会課題①
勉強会課題①
 
詳説ぺちぺち
詳説ぺちぺち詳説ぺちぺち
詳説ぺちぺち
 

Viewers also liked

Perlでちょいモテデザインパターン
PerlでちょいモテデザインパターンPerlでちょいモテデザインパターン
PerlでちょいモテデザインパターンYuki Manno
 
Perlと電子工作をつなげてみた v1.1.0
Perlと電子工作をつなげてみた v1.1.0Perlと電子工作をつなげてみた v1.1.0
Perlと電子工作をつなげてみた v1.1.0aokcub
 
YAPC2011-Perlでちょいモテ電子工作
YAPC2011-Perlでちょいモテ電子工作YAPC2011-Perlでちょいモテ電子工作
YAPC2011-Perlでちょいモテ電子工作Yuki Manno
 
やったーPICで作曲できたよー\(^o^)/
やったーPICで作曲できたよー\(^o^)/やったーPICで作曲できたよー\(^o^)/
やったーPICで作曲できたよー\(^o^)/aokcub
 
Arduino 入門
Arduino 入門Arduino 入門
Arduino 入門mitunaga
 
Python, RaspberryPi, Arduinoで作る消費電力モニタリングシステム
Python, RaspberryPi, Arduinoで作る消費電力モニタリングシステムPython, RaspberryPi, Arduinoで作る消費電力モニタリングシステム
Python, RaspberryPi, Arduinoで作る消費電力モニタリングシステムJunichi Kakisako
 

Viewers also liked (6)

Perlでちょいモテデザインパターン
PerlでちょいモテデザインパターンPerlでちょいモテデザインパターン
Perlでちょいモテデザインパターン
 
Perlと電子工作をつなげてみた v1.1.0
Perlと電子工作をつなげてみた v1.1.0Perlと電子工作をつなげてみた v1.1.0
Perlと電子工作をつなげてみた v1.1.0
 
YAPC2011-Perlでちょいモテ電子工作
YAPC2011-Perlでちょいモテ電子工作YAPC2011-Perlでちょいモテ電子工作
YAPC2011-Perlでちょいモテ電子工作
 
やったーPICで作曲できたよー\(^o^)/
やったーPICで作曲できたよー\(^o^)/やったーPICで作曲できたよー\(^o^)/
やったーPICで作曲できたよー\(^o^)/
 
Arduino 入門
Arduino 入門Arduino 入門
Arduino 入門
 
Python, RaspberryPi, Arduinoで作る消費電力モニタリングシステム
Python, RaspberryPi, Arduinoで作る消費電力モニタリングシステムPython, RaspberryPi, Arduinoで作る消費電力モニタリングシステム
Python, RaspberryPi, Arduinoで作る消費電力モニタリングシステム
 

Similar to 20120127 nhn

純粋関数型アルゴリズム入門
純粋関数型アルゴリズム入門純粋関数型アルゴリズム入門
純粋関数型アルゴリズム入門Kimikazu Kato
 
Usp友の会勉強会、ジャクソン構造図の巻(前編)
Usp友の会勉強会、ジャクソン構造図の巻(前編)Usp友の会勉強会、ジャクソン構造図の巻(前編)
Usp友の会勉強会、ジャクソン構造図の巻(前編)umidori
 
巨大数スライドWeb用
巨大数スライドWeb用巨大数スライドWeb用
巨大数スライドWeb用__sappy__
 
プログラミングコンテストでの動的計画法
プログラミングコンテストでの動的計画法プログラミングコンテストでの動的計画法
プログラミングコンテストでの動的計画法Takuya Akiba
 
プログラミングコンテストでのデータ構造 2 ~動的木編~
プログラミングコンテストでのデータ構造 2 ~動的木編~プログラミングコンテストでのデータ構造 2 ~動的木編~
プログラミングコンテストでのデータ構造 2 ~動的木編~Takuya Akiba
 
わかりやすいパターン認識 4章
わかりやすいパターン認識 4章わかりやすいパターン認識 4章
わかりやすいパターン認識 4章Motokawa Tetsuya
 
[DL輪読会]Reward Augmented Maximum Likelihood for Neural Structured Prediction
[DL輪読会]Reward Augmented Maximum Likelihood for Neural Structured Prediction[DL輪読会]Reward Augmented Maximum Likelihood for Neural Structured Prediction
[DL輪読会]Reward Augmented Maximum Likelihood for Neural Structured PredictionDeep Learning JP
 
Rsa暗号で彼女が出来るらしい
Rsa暗号で彼女が出来るらしいRsa暗号で彼女が出来るらしい
Rsa暗号で彼女が出来るらしいYosuke Onoue
 
070 統計的推測 母集団と推定
070 統計的推測 母集団と推定070 統計的推測 母集団と推定
070 統計的推測 母集団と推定t2tarumi
 
Chiba.pm #1 lt @studio3104
Chiba.pm #1 lt @studio3104Chiba.pm #1 lt @studio3104
Chiba.pm #1 lt @studio3104Satoshi Suzuki
 
「plyrパッケージで君も前処理スタ☆」改め「plyrパッケージ徹底入門」
「plyrパッケージで君も前処理スタ☆」改め「plyrパッケージ徹底入門」「plyrパッケージで君も前処理スタ☆」改め「plyrパッケージ徹底入門」
「plyrパッケージで君も前処理スタ☆」改め「plyrパッケージ徹底入門」Nagi Teramo
 

Similar to 20120127 nhn (11)

純粋関数型アルゴリズム入門
純粋関数型アルゴリズム入門純粋関数型アルゴリズム入門
純粋関数型アルゴリズム入門
 
Usp友の会勉強会、ジャクソン構造図の巻(前編)
Usp友の会勉強会、ジャクソン構造図の巻(前編)Usp友の会勉強会、ジャクソン構造図の巻(前編)
Usp友の会勉強会、ジャクソン構造図の巻(前編)
 
巨大数スライドWeb用
巨大数スライドWeb用巨大数スライドWeb用
巨大数スライドWeb用
 
プログラミングコンテストでの動的計画法
プログラミングコンテストでの動的計画法プログラミングコンテストでの動的計画法
プログラミングコンテストでの動的計画法
 
プログラミングコンテストでのデータ構造 2 ~動的木編~
プログラミングコンテストでのデータ構造 2 ~動的木編~プログラミングコンテストでのデータ構造 2 ~動的木編~
プログラミングコンテストでのデータ構造 2 ~動的木編~
 
わかりやすいパターン認識 4章
わかりやすいパターン認識 4章わかりやすいパターン認識 4章
わかりやすいパターン認識 4章
 
[DL輪読会]Reward Augmented Maximum Likelihood for Neural Structured Prediction
[DL輪読会]Reward Augmented Maximum Likelihood for Neural Structured Prediction[DL輪読会]Reward Augmented Maximum Likelihood for Neural Structured Prediction
[DL輪読会]Reward Augmented Maximum Likelihood for Neural Structured Prediction
 
Rsa暗号で彼女が出来るらしい
Rsa暗号で彼女が出来るらしいRsa暗号で彼女が出来るらしい
Rsa暗号で彼女が出来るらしい
 
070 統計的推測 母集団と推定
070 統計的推測 母集団と推定070 統計的推測 母集団と推定
070 統計的推測 母集団と推定
 
Chiba.pm #1 lt @studio3104
Chiba.pm #1 lt @studio3104Chiba.pm #1 lt @studio3104
Chiba.pm #1 lt @studio3104
 
「plyrパッケージで君も前処理スタ☆」改め「plyrパッケージ徹底入門」
「plyrパッケージで君も前処理スタ☆」改め「plyrパッケージ徹底入門」「plyrパッケージで君も前処理スタ☆」改め「plyrパッケージ徹底入門」
「plyrパッケージで君も前処理スタ☆」改め「plyrパッケージ徹底入門」
 

20120127 nhn

Editor's Notes

  1. \n
  2. \n
  3. \n
  4. \n
  5. \n
  6. \n
  7. \n
  8. \n
  9. \n
  10. \n
  11. \n
  12. \n
  13. \n
  14. \n
  15. \n
  16. &amp;#x9069;&amp;#x7528;&amp;#x4F8B;&amp;#x306F;&amp;#x30A8;&amp;#x30EC;&amp;#x30D9;&amp;#x30FC;&amp;#x30BF;&amp;#x30FC;&amp;#x3068;&amp;#x304B;\n
  17. \n
  18. \n
  19. \n
  20. \n
  21. \n
  22. \n
  23. \n
  24. \n
  25. &amp;#x5B9F;&amp;#x7528;&amp;#x4F8B;&amp;#x3068;&amp;#x3057;&amp;#x3066;&amp;#x30AB;&amp;#x30FC;&amp;#x30C9;&amp;#x30B2;&amp;#x30FC;&amp;#x30E0;&amp;#x306E;&amp;#x6700;&amp;#x5927;&amp;#x30B3;&amp;#x30B9;&amp;#x30C8;&amp;#x306B;&amp;#x5BFE;&amp;#x3059;&amp;#x308B;&amp;#x6226;&amp;#x529B;&amp;#x306E;&amp;#x6700;&amp;#x5927;&amp;#x5316;&amp;#x3001;&amp;#x306A;&amp;#x3069;\n
  26. \n
  27. \n
  28. \n
  29. \n
  30. \n
  31. \n
  32. &amp;#x30C0;&amp;#x30A4;&amp;#x30AF;&amp;#x30B9;&amp;#x30C8;&amp;#x30E9;&amp;#x6CD5;&amp;#x3068;&amp;#x3044;&amp;#x3046;&amp;#x3082;&amp;#x306E;&amp;#x3082;&amp;#x3042;&amp;#x308B;&amp;#x304C;&amp;#x91CD;&amp;#x307F;&amp;#x304C;&amp;#x8CA0;&amp;#x306E;&amp;#x6642;&amp;#x306B;&amp;#x304A;&amp;#x304B;&amp;#x3057;&amp;#x304F;&amp;#x306A;&amp;#x308B;\n&amp;#x3053;&amp;#x308C;&amp;#x306F;&amp;#x7121;&amp;#x5411;&amp;#x30B0;&amp;#x30E9;&amp;#x30D5;&amp;#x3060;&amp;#x3063;&amp;#x305F;&amp;#x304C;&amp;#x6709;&amp;#x5411;&amp;#x30B0;&amp;#x30E9;&amp;#x30D5;&amp;#x3067;&amp;#x3082;WF&amp;#x306F;&amp;#x9069;&amp;#x7528;&amp;#x53EF;&amp;#x80FD;\n&amp;#x5B9F;&amp;#x7528;&amp;#x4F8B;&amp;#x306F;&amp;#x4E57;&amp;#x308A;&amp;#x63DB;&amp;#x3048;&amp;#x6848;&amp;#x5185;&amp;#x3001;&amp;#x306A;&amp;#x3069;\n
  33. \n