• 締切済み

Cのプログラミングについての質問です

全零で任意のサイズの二次元配列を用意して、その中の要素の一つをランダムに選んで1に初期化する。 その選んだ要素の上下左右どれか一つをランダムに選んで1に初期化する。 再び1に初期化した要素を選んだら今度は0に初期化する。 以上の処理を任意の回数繰り返して、1同士が必ず上下左右で隣接してる配列を生成したいのですが、 どのように書いたら実現できるでしょうか。

みんなの回答

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.2

うん? 「1同士が必ず上下左右で隣接してる条件がほしいのですが全部つながらないように1と0ができるだけ入り組んだような配列にしたい」 の意味が分からん. 「全部」ってなんだ.

wanimaru7101
質問者

補足

失礼しました。 「全部つながらないように」は余計でした。 たとえば 000 010 000 となったり 001 010 000 となる場合を避けて繰り返していきたいのですが可能ですかね?

すると、全ての回答が全文表示されます。
回答No.1

1:全零で任意のサイズの二次元配列を用意 2:その中の要素の一つをランダムに選んで1に初期化 3:その選んだ要素の上下左右どれか一つをランダムに選んで1に初期化 4:再び1に初期化した要素を選んだら今度は0に初期化する 5:以上の処理を任意の回数繰り返す このように書いたら実現できます。

wanimaru7101
質問者

補足

ごもっともですが 1同士が必ず上下左右で隣接してる条件がほしいのですが全部つながらないように 1と0ができるだけ入り組んだような配列にしたいです・・・

すると、全ての回答が全文表示されます。

専門家に質問してみよう