
ある夫婦3組が2人乗りのボートで対岸に渡るという縦型探索アルゴリズムをC言語でプログラミングしたいのですが、どのようなプログラミングをすればよいのでしょうか?
ルールは、
1、夫婦の妻は一人では対岸に渡ることができない。(一人で戻るのは可能)
2、妻は、自分の旦那以外とは一緒に渡れない
です。
縦型探索なので、OpenListやClosedListを使うのですが、わかりません。
回答でもヒントでもよいのでよろしくお願いします。
またなにか、わからないことやくわしいことが聞きたいなどもどんどんかきこんでください。
お願いします。
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
C言語で実装するという話だと、情報系の大学生のレベルを超えていると思います。
C言語はあきらめて、Promelaという言語、SPIN model checkerというツールを用いて解くことをオススメします。
No.2
- 回答日時:
A=夫 a=妻
B=夫 b=妻
C=夫 c=妻
移動可能なパターン
1=A
2=Aa
3=AB
4=AC
5=B
6=Bb
7=BC
8=C
9=Cc
こっち あっち
AaBbCc AaBbCc 回 可能パターン
111111 000000 01 123456789
回が奇数ならこっちからあっちに行くターン
回が偶数ならあっちからこっちに行くターン
可能パターンの内数字の小さい方からやっていく事にする
AaBbCc AaBbCc 回 可能パターン 試行パターン
111111 000000 01 123456789 1
011111 100000 02 -00000000 -
行きと同じ状態で帰る事になる可能パターンの項目は '-'で記載
すると、2回目で手詰まりとなる
試行パターン 1が手詰まりだったので1個戻し試行パターン2でやってみる
AaBbCc AaBbCc 回 可能パターン 試行パターン
111111 000000 01 123456789 2
001111 110000 02 1-0000000 1
行きと同じとなる試行パターン2 を '-' とすると、他に可能なパターンは 1のみ
AaBbCc AaBbCc 回 可能パターン 試行パターン
111111 000000 01 123456789 2
001111 110000 02 1-0000000 1
101111 010000 03 -03456789 3
前回と同じになる試行パターン1 を '-' また a は居ないため可能パターン2は
成立しないため '0' で記載した、すると次は 試行パターン 3(AB)となる
AaBbCc AaBbCc 回 可能パターン 試行パターン
111111 000000 01 123456789 2
001111 110000 02 1-0000000 1
101111 010000 03 -03456789 3
000111 111000 04 12-000000 1
同様に続けていくと
AaBbCc AaBbCc 回 可能パターン 試行パターン
111111 000000 01 123456789 2
001111 110000 02 1-0000000 1
101111 010000 03 -03456789 3
000111 111000 04 12-000000 1
100111 011000 05 -00400089 4
000101 111010 06 123-50780 1
100101 011010 07 -00000000 -
7回目で手詰まりになったので、1つ前の試行パターンを次に可能な2にする
AaBbCc AaBbCc 回 可能パターン 試行パターン
111111 000000 01 123456789 2
001111 110000 02 1-0000000 1
101111 010000 03 -03456789 3
000111 111000 04 12-000000 1
100111 011000 05 -00400089 4
000101 111010 06 123-50780 2
110101 001010 07 1-0000000 1
010101 101010 06 -03450780 3
: : : :
イメージとしてはこんな感じになっていく
んじゃないかな
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
今日より前の書き方 マクロ
-
DataGridViewでyyyy/MM/dd
-
1本あたり○円と表示する時どの...
-
WEBで動作するカレンダーとアイ...
-
指定した日付が、その月の第何...
-
テキストボックスにカレンダー...
-
「eclipseで作るカレンダー(ス...
-
ExcelVBAでSQLサーバの日付時刻...
-
【VBA】土日をスキップして日付...
-
Eclipseの対応する括弧の強調表...
-
システム日付とは?
-
エクセルのVBAで日付を検索し転...
-
このPASMOの通知来ないようにで...
-
SIM無しアップデート方法
-
スマホ 電話の着信・受信履歴が...
-
iPhoneのプッシュ通知の過去履...
-
iPhoneの通知が何故か来なくな...
-
スマホにYahooニュースが来ない...
-
ラインの通知設定有りにしてる...
-
shurikenのメールデータをエク...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Eclipseの対応する括弧の強調表...
-
DataGridViewでyyyy/MM/dd
-
ユーザーフォームのラベルに日...
-
エクセルのVBAで日付を検索し転...
-
VisualBasic6.0のFormat関数で...
-
VB6.0 のformat関数について
-
JSPからYYYYMMDDで日付入力する
-
「eclipseで作るカレンダー(ス...
-
システム日付とは?
-
該当の日付以外を消去するプロ...
-
今日より前の書き方 マクロ
-
【VBA】土日をスキップして日付...
-
1本あたり○円と表示する時どの...
-
完全一致の検索
-
指定した日付が、その月の第何...
-
3人のじゃんけんのプログラム
-
コンボボックスに日付を表示する
-
excelのVBAについて、以下のコ...
-
VBA 表作成 続続
-
【Excel VBA】条件に合った行の...
おすすめ情報