最近、道順に関する組み合わせを題材にした組合せ爆発の動画が話題になっており、
それを見たのですが・・・
同じ所を2度通らない道順の組み合わせでの式がわかりません・・・
最短距離に関する組み合わせは、高校数学で習うと思うですが、最短距離でなく同じ所を2度通らない組み合わせに式など存在するのでしょうか?(画像参照)
2x2の場合、最短距離は6通りですが、2度通らない条件だと12になってしまいます。
3x3の場合、最短距離は20通りですが、2度通らない条件だと184通り
4x4の場合、最短距離は70通りですが、2度通らいない条件だと8512通りになります。
2度通らない条件での式が存在すれば、敷や解き方教えていただけないでしょうか?
もし「アルゴリズム」というものを使用しなければ回答することができなければ、アルゴリズムのさわりだけでも教えていただけると嬉しいです。
よろしくお願いします。
No.3ベストアンサー
- 回答日時:
No.2です。
動画見ました。
あの終わり方はちょっと寂しいですね。
さて、道順の数を求める方法ですが、動画でも「最先端のアルゴリズム技術」と述べていますし、
No.2で示したリンク先にも正方形の場合は数が書いてあるだけであったので、やはりアルゴリズムを使うしかないのだと思います。
そこで実際にプログラムを書いてみました。言語はVBScript(WScript)ですが、VBAでも「Call Kumiawase_Bakuhatsu」の行を削除すれば動きます。
使ったアルゴリズムですが、行けるところに行ってゴールに到達したら数えるという単純なものなのです。
なお、このプログラムで実用的に計算できるのはせいぜい5x5だと思います。
もし6以上の数を入れて計算が終わらなくなったら、VBScriptならタスクマネージャからプロセスの終了を、VBAならBreak (Ctrl + Pause)を行ってください。
Option Explicit
Dim N '1辺の点の数 兼 終点の座標
Dim No_Entry() '立入禁止地図。立入禁止(外、立入済)は1、立入可は 0
Dim Counter
Dim x_Next, y_Next '次(周囲)の点の座標加算値の配列
Call Kumiawase_Bakuhatsu 'VBscriptの実行開始点・VBAでは削除(orコメントアウト)
Sub Kumiawase_Bakuhatsu() '初期化と計数開始
Dim i
N = InputBox("正方形の分割数(1辺の道の数)を入力してください") + 1
ReDim No_Entry(N + 1, N + 1) '立入禁止地図の初期化
For i = 0 To N + 1 '外にはみ出さないように周囲は立入禁止
No_Entry(0, i) = 1: No_Entry(N + 1, i) = 1
No_Entry(i, 0) = 1: No_Entry(i, N + 1) = 1
Next
x_Next = Array(0, 0, -1, 1) '次(周囲)の点のx座標加算値・上下左右の順
y_Next = Array(-1, 1, 0, 0) '次(周囲)の点のy座標加算値・上下左右の順
Counter = 0 '道順数カウンタ初期化
Call Michi_Jun(1, 1) '道順数計数開始。開始点は座標(1,1)
MsgBox N - 1 & " x " & N - 1 & vbCrLf & vbCrLf & Counter & " 通り"
End Sub
Sub Michi_Jun(ByVal x, ByVal y) '道順数計数
Dim i
If x = N And y = N Then '終点なら道順が見つかったので
Counter = Counter + 1 'カウントし、
Else '終点でないなら
No_Entry(x, y) = 1 '現在地を立入禁止にし、
For i = 0 To 3 '次の点のうち行けるところに(再帰的に最後まで)行き
If No_Entry(x + x_Next(i), y + y_Next(i)) = 0 Then
Call Michi_Jun(x + x_Next(i), y + y_Next(i))
End If '(どこにも行けなければそのま現在地で)
Next '行けるところすべてに行って現在地に戻ってきたら
No_Entry(x, y) = 0 '現在地の立入禁止を解除し、
End If
End Sub '戻る。
2度も回答有り難うございます!
ちょっと儚いですよね・・・
数学の壮大さを目の当たりにしました(
わざわざプログラムを書いてくださりありがとうございます!
戸惑いながらも、実際に実行してみましたー
いやぁ・・・すごいですね
感激しました!!
5x5でも40秒かかってしまいました(
6x6は、5分たっても返答帰ってこないので、まだ放置していますw
簡単なものでも、結果が膨大になると、やはり時間も膨大にかかってしまうんですね(
VBScript というものを初めて知る切っ掛けにもなりましたし、とても感謝しています。
ありがとうございます!
No.2
- 回答日時:
最短距離でない場合の式ですが、英語のページが1つだけみつかりました。
http://www.iwriteiam.nl/Crook_path.html
チェスのrook path 問題というものと同等だと書いてありますが、rook pathっていったい何でしょうね。
まず、経路の数え方の基準ですが、質問者様は変の長さ(道の数)で数えていますがリンク先は点の数で数えていました。そのため、質問者様の数え方の方が1だけ大きくなっていますのでご注意ください。
以下、リンク先の内容を質問者様の数え方で書きます。
まず、1xnは2^nと単純です。
2以上の場合ですが、とても複雑なようです。
2xn、3xn、4xnの場合は、nが大きいところでの漸化式が書いてありましたが、正方形などnが大きくないところでは数が書いてあるのみでした。
ともかく難しい数学の話であるうでに英語なのでよくわからないというのが正直なところです。
参考URL:http://www.iwriteiam.nl/Crook_path.html
回答ありがとうございます!
数式で取り扱うと、とても難しくなるんですね・・・
やはり、2xn、3xn、4xnの個別の式はあるが、2x2、3x3、4x4...と大きくしていく際の式はないのか、気になります・・・
わざわざ英語の解説ページを探してくださりありがとうございます!
No.1
- 回答日時:
この回答への補足
リンク先を熟読してみましたが、残念ながら書かれているのは、既に式が分かっている「最短ルートでの道順」です。
最短ではなく、「『同じ所を2度通らず』スタートからゴールまで行く道順の個数」を求めたいのです。
様々な計算を行いましたが、見つからず・・・
数学って難しいですよね・・・
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- タクシー タクシーの運賃ってなぜJRのような大都市近郊区間のような最短経路の運賃計算にしないのですか? 実際の 7 2023/06/27 11:30
- 陸上 長距離を高校でやってます。 元短距離で体重が重めだったことで過度な減量を行い短距離の速筋を失ってから 1 2023/05/27 17:23
- 数学 自動車の平均速度について。 3 2023/05/23 18:18
- その他(法律) 2車線以上であっても、歩行者は横断歩道がない道路を横断できますよね? 3 2022/04/19 15:58
- その他(地域情報・旅行・お出掛け) 質問です。 今度、年が開けると、京橋から東福寺京阪で移動したあと、東福寺から敦賀までJR在来線で行き 3 2022/12/29 11:18
- 物理学 こちらの束縛条件について解説しているサイトで https://note.com/manabu_phy 5 2022/08/31 09:23
- その他(車) 「高速道路の合流」についての質問です。 2 2022/07/24 23:09
- 数学 一次関数の最短距離の問題です。 A(4,3)B(0,2)がある。x軸上にAP+PBが最短となるように 3 2022/12/16 01:12
- その他(結婚) 賛成 反対 意見ください 4 2022/12/26 20:08
- その他(結婚) 反対か賛成か 7 2022/12/23 00:40
おすすめ情報
- ・「みんな教えて! 選手権!!」開催のお知らせ
- ・漫画をレンタルでお得に読める!
- ・「黒歴史」教えて下さい
- ・2024年においていきたいもの
- ・我が家のお雑煮スタイル、教えて下さい
- ・店員も客も斜め上を行くデパートの福袋
- ・食べられるかと思ったけど…ダメでした
- ・【大喜利】【投稿~12/28】こんなおせち料理は嫌だ
- ・前回の年越しの瞬間、何してた?
- ・【お題】マッチョ習字
- ・モテ期を経験した方いらっしゃいますか?
- ・一番最初にネットにつないだのはいつ?
- ・好きな人を振り向かせるためにしたこと
- ・【選手権お題その2】この漫画の2コマ目を考えてください
- ・2024年に成し遂げたこと
- ・3分あったら何をしますか?
- ・何歳が一番楽しかった?
- ・治せない「クセ」を教えてください
- ・【大喜利】【投稿~12/17】 ありそうだけど絶対に無いことわざ
- ・【選手権お題その1】これってもしかして自分だけかもしれないな…と思うあるあるを教えてください
- ・集合写真、どこに映る?
- ・自分の通っていた小学校のあるある
- ・フォントについて教えてください!
- ・これが怖いの自分だけ?というものありますか?
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・10代と話して驚いたこと
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
「原点に返る」と「原点に戻る...
-
複素数平面と座標平面の対応に...
-
右下の小さい数字について
-
2次関数y=ax^2のグラフは点A(4,...
-
座標(x,y)間(=2点)の...
-
解析学の重心を求める問題を教...
-
3点との座標との距離によってあ...
-
どうして、rcosα、rsinαになる...
-
二点の座標から角度を求めるには?
-
高校1年の数学なのですが 因数...
-
座標変換
-
複素数平面についてです ①xy平...
-
円柱と球の共通部分の表面積
-
数学の、確率と漸化式の問題です。
-
正四面体ABCDの頂点からおろし...
-
メビウスの輪と複素数は関係な...
-
置換でu/vやtを使う理由は?
-
複素数平面についての質問です...
-
2次関数の重心の検算方法
-
【数学】 解説の下から4行目が...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
座標(x,y)間(=2点)の...
-
右下の小さい数字について
-
重分積分の極座標変換について
-
「原点に返る」と「原点に戻る...
-
距離と方向角から座標を求める...
-
等角螺旋(らせん)の3次元的...
-
三角関数 範囲が-πからπのとき...
-
距離、方位角から座標を求める方法
-
測量座標と算数座標の違い
-
エクセルでグラフの作り方 軌...
-
複素数平面と座標平面の対応に...
-
複素数平面についてです ①xy平...
-
極座標と直交座標の変換について
-
なぜベクトルの外積の向きが右...
-
楕円の角度とは?
-
空間上の測定された点群から最...
-
「0でない2つのVのベクトルu,v...
-
2点からその延長線上にある点の...
-
複数の点(x,y)を通る曲線を,指...
-
外積が右ねじの向きであること...
おすすめ情報