いちごみるく
※・・・本当は10本で十分なのですが、予算がおりたので使っちゃえ、ということで.....
6本ですよね?

6C2*16C2-(4+3+2+1)*2で
   5月30日(木) 0:08:38     40594
だいすけ
iPadのSafariからは解答用紙使えないんですね・・・
何回送ってもエラーになるので、急いでパソコン立ち上げて送りました(汗

最短ルート15、に、余計な道120、をかけて、1800。
ただし、だぶってるのが20。(正方形ができる場合。)
1800-20=1780
   5月30日(木) 0:08:56     40595
きょろ文
120*15=1800
重複が正方形をできる場合を考えて
(1+4+2+3)*2 = 20

1780
   5月30日(木) 0:12:21     40596
Mr.ダンディ
苦戦の末、他の方と同様
(6C2)*(16C2)−20=1780  という式となりました。
   5月30日(木) 0:58:19     40597
鼈甲
22-6=14と間違えてからというもの…
   5月30日(木) 1:22:27     40598
あめい
8本のとり方はひとつの最短コースあたり、残り16本から2本選ぶので120通り×15=1800通り。ここで最短コースで曲がり角の数は、1,2,3,4の4パターンあり、2本道を加えると角ひとつにつき1つの別最短ルートができるので角1(2通り)角2(4通り)角3(6通り)角4(3通り)で1×2+2×4+3×6+4×3=40通りが重複するので、半分の20通りを引き1780通りになりました。みなさんのようにひとつの式にまとめて考える方法がいつもできず、場合分けになってしまいます。
   5月30日(木) 9:25:38     40599
uchinyan
はい,こんにちは。さて,今回の問題は...
う〜む,分かってしまえば「なぁ〜んだ,そんなことか。」という感じなのですが,結構苦労しました (^^;
結局,こんな感じ。

最短経路にさらに修復する道路を 2 本追加する,という方針で考えます。
最短経路は 6C2 = 15 通り。
この各々の場合に残りの 2 本の道路を追加するので,それぞれの最短経路に対して 16C2 = 120 通りずつで,
合計 120 * 15 = 1800 通り。
しかし,このうち,異なる最短経路の曲がる箇所が最小格子の正方形の相対する頂点二つになるのに対して 1 通りずつ重複があるので,
曲がる箇所の総数,
1 * 2 + 2 * 4 + 3 * 6 + 4 * 3 = 40 箇所
の半分 20 通りを引いて,
1800 - 20 = 1780 通り
になります。
ネコの住む家   5月31日(金) 10:58:36     40600
uchinyan
掲示板を読みました。
今回は皆さん同じ解法のようですね。
ネコの住む家   5月30日(木) 13:26:59   MAIL:uchi@sco.bekkoame.ne.jp   40601
次郎長
私は1800まではすぐに分かりましたが、その後、いくら重複しているのかが、皆さんのようにすっきりと理解できず、その後ずいぶん時間がかかりました。
明日は京都の散策。しとしと雨を期待していましたが、晴れて暑くなりそうで・・うまく行かないものです。
   5月30日(木) 22:46:38     40602
たけちゃん
引き算する20は,正方形部分を「斜め移動」と考えて,
縦3つ横1つ斜め1つの順列で,5!/3! ともできますね.
   5月31日(金) 17:35:08     40603
???
ベタなヤツを作ってしまいました。
10本ではなく、6本では?
Option Explicit
'.o-21-o-22-o
'.|....|....|
'18...19...20
'.|....|....|
'.o-16-o-17-o
'.|....|....|
'13...14...15
'.|....|....|
'.o-11-o-12-o
'.|....|....|
'.8....9...10
'.|....|....|
'.o--6-o--7-o
'.|....|....|
'.3....4....5
'.|....|....|
'.o--1-o--2-o
Dim a(8) As Integer
Sub Macro1()
Cells(1, 1).Value = 0
Call saiki(1)
End Sub
Sub saiki(ByVal n As Integer)
Dim j As Integer
If n = 1 Then
a(1) = 1
Else
a(n) = a(n - 1) + 1
End If
While a(n) <= 22
If n < 8 Then
Call saiki(n + 1)
ElseIf check(1) Then
Cells(1, 1).Value = Cells(1, 1).Value + 1
For j = 1 To 8
Cells(Cells(1, 1).Value, j + 1).Value = a(j)
Next j
End If
a(n) = a(n) + 1
Wend
End Sub
Private Function check(ByVal x As Integer) As Integer
Dim b(22) As Integer
Dim j As Integer
check = 0
For j = 1 To 22
b(j) = 0
Next j
For j = 1 To 8
b(a(j)) = 1
Next j
If b(1) + b(2) + b(5) + b(10) + b(15) + b(20) = 6 Then
check = 1
ElseIf b(1) + b(4) + b(7) + b(10) + b(15) + b(20) = 6 Then
check = 1
ElseIf b(1) + b(4) + b(9) + b(12) + b(15) + b(20) = 6 Then
check = 1
ElseIf b(1) + b(4) + b(9) + b(14) + b(17) + b(20) = 6 Then
check = 1
ElseIf b(1) + b(4) + b(9) + b(14) + b(19) + b(22) = 6 Then
check = 1
ElseIf b(3) + b(6) + b(7) + b(10) + b(15) + b(20) = 6 Then
check = 1
ElseIf b(3) + b(6) + b(9) + b(12) + b(15) + b(20) = 6 Then
check = 1
ElseIf b(3) + b(6) + b(9) + b(14) + b(17) + b(20) = 6 Then
check = 1
ElseIf b(3) + b(6) + b(9) + b(14) + b(19) + b(22) = 6 Then
check = 1
ElseIf b(3) + b(8) + b(11) + b(12) + b(15) + b(20) = 6 Then
check = 1
ElseIf b(3) + b(8) + b(11) + b(14) + b(17) + b(20) = 6 Then
check = 1
ElseIf b(3) + b(8) + b(11) + b(14) + b(19) + b(22) = 6 Then
check = 1
ElseIf b(3) + b(8) + b(13) + b(16) + b(17) + b(20) = 6 Then
check = 1
ElseIf b(3) + b(8) + b(13) + b(16) + b(19) + b(22) = 6 Then
check = 1
ElseIf b(3) + b(8) + b(13) + b(18) + b(21) + b(22) = 6 Then
check = 1
End If
End Function
   6月1日(土) 14:02:48     40604
Mr.ダンディ
図1ではなく図2のように、修復した8個所すべてを通ってBに到達する場合の数であれば
34(通り)と出ましたが・・・・いかがなものでしょうか ?
(こちらを求めても 面白い問題ができるように思いました)
   6月2日(日) 1:41:57     40605
かっちゃん
水曜日の朝、電車の中で考えても重複する20通りの数え方がわからず・・・。しばらく放置してました。
   6月2日(日) 23:38:05     40606