質問編集履歴
2
質問文変更
title
CHANGED
File without changes
|
body
CHANGED
@@ -5,6 +5,8 @@
|
|
5
5
|
行きと帰りの関数を作り、行きでは通った経路を記録していき探索を続け、(6,6)の地点に到達したら、帰りの関数を呼び出すプログラムを作ります。
|
6
6
|
帰りの関数では、行きの経路を避け探索し、経路を見つけたらカウントしていくプログラムを作ります。
|
7
7
|
以下のようにコードをなんとなくですが、作成してみました。
|
8
|
+
今回実行するとcountが0と表示されました。上手く動いていないことはわかるのですが、
|
9
|
+
どこをどのように改善すればよいのでしょうか。
|
8
10
|
ご助言よろしくお願いします。
|
9
11
|
|
10
12
|
```
|
1
(n,n)までと実際の数値でなく変数に置き換えました。
title
CHANGED
File without changes
|
body
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
X-Y座標(0,0)から(
|
1
|
+
X-Y座標(0,0)から(n,n)までをマス?の境界を通り最短経路で往復する場合を考えます。
|
2
2
|
行きで通った経路は帰りでは通れません。
|
3
3
|
このとき、最短経路のパターンを数えるプログラムをpythonで作成したいです。
|
4
4
|
考えたプログラム構造としては、
|
@@ -12,6 +12,7 @@
|
|
12
12
|
#これが0か1かで経路を通ったか判断
|
13
13
|
#path_keiro[i][j][0]はx+1へ
|
14
14
|
#path_keiro[i][j][1]はy+1へ
|
15
|
+
n=int(3)#今回は3とする
|
15
16
|
i =int(0)
|
16
17
|
j=int(0)
|
17
18
|
#i,jはそれぞれ(x,y)座標の(i,j)とする
|
@@ -20,15 +21,15 @@
|
|
20
21
|
def Ouro(i,j,path_keiro):
|
21
22
|
|
22
23
|
|
23
|
-
if i==j==
|
24
|
+
if i==j==n: #行きの探索終了 帰りのプログラムを実行
|
24
25
|
return kiro(i,j,path_keiro)
|
25
26
|
|
26
|
-
elif i<
|
27
|
+
elif i<n and path_keiro[i][j][0]==0:
|
27
28
|
path_keiro[i][j][0]=1
|
28
29
|
Ouro(i+1,j,0)
|
29
30
|
|
30
31
|
|
31
|
-
elif j<
|
32
|
+
elif j<n and path_keiro[i][j][1]==0:
|
32
33
|
path_keiro[i][j][1]=1
|
33
34
|
Ouro(i,j+1,0)
|
34
35
|
|