質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

550閲覧

境界条件が多数あるランダムウォークについて

Fallout_18

総合スコア124

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2018/07/13 07:06

編集2018/07/13 07:07

以下のシェルピンスキーのカーペット
イメージ説明
のランダムウォークを書こうとするときに
↑ ↓ → ← = 1/4の確率で移動するとします。
左下原点で、スタートするとして、上の図の0の部分は計算しないという意味です。

python

1#sample 2for x in range(0,27): 3 if x ==...: 4 for y in range(0,27): 5 if y ==....: 6 elif y===...: 7 else: 8 elif x....: 9 for y in range(0,27) 10 if y ==....: 11 elif y ==....: 12 else y ==...: 13. 14. 15. 16. 17 else: 18 for y in range(0,27): 19. 20. 21.

のように、私の場合、境界条件で書こうとするのですが、上の図の場合、ものすごく条件文が多くなってしまい、あまりよくないとおもいまして、他に工夫したやり方があるのか聞きたく質問しました。
上の図がちょうど2次元配列なので、これをうまく使ったやり方などですね。。
宜しくお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

efcode

2018/07/13 14:38

「0の部分では計算しない」とは移動候補として隣が0の方向は使用しないと言う事?乗った時に計算しないで移動を継続するって事?位置X,Yが整数ならカーペットの配列を用意して参照しながらやるだけだと思うけど
Fallout_18

2018/07/14 08:53 編集

0の部分は移動できないということです!やはりそうなってしまいますか。。
guest

回答1

0

ベストアンサー

カーペットをnp.arrayで持ってるとして、
itertools.productと[-1,0,1]で方向を生成して、
周りのマスを足し合わせて遷移確率を計算して、
サンプルすればよいのでは?

端は0で囲むと例外処理が減っていいですよ。

投稿2018/07/13 11:35

mkgrei

総合スコア8560

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Fallout_18

2018/07/14 08:57

チャレンジしてみます、ありがとうございます!!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問