8
極端なホワイトウォーターカヌー
かなり速いホワイトウォーター川をカヌーでaいでいます。突然、パドルが爆発し、パドルなしで川を急流で急降下する危険な状況に陥ります。幸運なことに、あなたにはまだプログラミングスキルがあるので、急流を乗り切るのを助けるために、カヌーの横にプログラムを彫ることにします。ただし、プログラムを作成するカヌーの側面には表面積があまりないため、プログラムをできるだけ短くする必要があります。 川は8 x 16グリッドとして表すことができます。列にの番号0を付け7、行にの番号0を付け15ます。 y --------15 --------14 --------13 --------12 --------11 --------10 --------9 --------8 --------7 --------6 --------5 --------4 --------3 --------2 --------1 --------0 01234567 x 上:障害物のない完全に穏やかな普通の川。当然、これはあなたがいる川ではありません。 座標(4、0)から開始し、そこから(0,1)岩(oこれらの例ではで表される)に当たるまで、制御不能に川(ベクター)を上昇します。岩にぶつかると、55%の確率で岩を左に移動し(ベクトル(-1,1))、45%の確率で岩を右に移動します(つまりベクトル(1,1))。カヌーが左端または右端の列にある場合、常に中央に向かって移動します。岩がない場合は、まっすぐ上に移動します。 y ----x---15 ----xo--14 -o--x---13 ----x---12 ---ox---11 ---x----10 ---xo---9 ---ox---8 ----xo--7 -----x--6 ----ox--5 -o--x---4 ----x---3 ----xo--2 ----x---1 ----x---0 01234567 上:キャラクターを使用して表された、カヌーが通る可能性のあるルート x 川の地図を指定して、特定の列でカヌーが終了する確率を出力するプログラムを作成します。 プログラムに都合のよい方法(STDIN、コマンドライン引数、raw_input()ファイルからの読み取りなど)で入力を受け入れます。入力の最初の部分は、プログラムが確率を見つける列を表す0〜7の単一の整数です。その後x,yに、石の位置を表す形式のタプルのリストがあります。 例: 入力: 4 …