1
値1を通るが0の値を通さないmxnランダム生成バイナリ行列が供給されています。上から下へのフローのパスがあるかどうかを判断する必要がありますランダム生成された行列1は互いに隣接していなければなりません。これはMatlabのプログラミング用です。 問題をコードする方法やアルゴリズムの例については、参考にしてください。バイナリ行列を通るフロー
私は最初に一番上の行の最初の1を検索するいくつかのコードを持っています。 コードtherafterは、現在の1の下に隣接するすべての周囲の位置を検索します。フローは斜めに、直接左または右に移動することができます。唯一の1の次
方法がある場合、私は行列の上から下へ横断する、上記制限が与えられ、参照するには目的が
Random=randi([0 1],6,6)
n =0;
while Random[0,n] ~= 1
n=n+1;
end
CoOrds = [0,n];
for i = 0:5
if Random[i+1, n-1] == 1
n=n-1;
elseif Random [i,n-1] == 1
i = i-1;
n = n-1;
elseif Random [i+1,n] ==1
n=n;
elseif Random [i+1,n+1] ==1
n=n+1;
elseif Random[i,n+1] == 1
i = i-1;
n=n+1;
end
end
「ランダム[0、n]〜= 1」 –
そして、将来のすべての「ランダム」へのアクセスは、MATLAB構文を使用するように修正してください。 –
[深さ優先検索(DFS)](https://en.wikipedia.org/wiki/Depth-first_search)と[幅優先検索(BFS)](https:// en.wikipedia.org/wiki/Breadth-first_search)。あなたの答えを見つけるために関数でmatlabのビルドを使用することができるかもしれませんが、私はアルゴリズムを見て、それらを学ぶことをお勧めします、彼らは非常に有用であり、広く普及しています。 – mpaskov