質問編集履歴
4
誤り訂正
test
CHANGED
File without changes
|
test
CHANGED
@@ -83,7 +83,7 @@
|
|
83
83
|
点3の次数:2
|
84
84
|
点4の次数:2
|
85
85
|
|
86
|
-
Final Path: 1 -> 3 -> 0 -> 2 -> 4 ->
|
86
|
+
Final Path: 1 -> 3 -> 0 -> 2 -> 4 -> 1
|
87
87
|
Total Distance: 3311.1
|
88
88
|
```
|
89
89
|
|
3
脱字
test
CHANGED
File without changes
|
test
CHANGED
@@ -85,7 +85,7 @@
|
|
85
85
|
|
86
86
|
Final Path: 1 -> 3 -> 0 -> 2 -> 4 -> 0
|
87
87
|
Total Distance: 3311.1
|
88
|
-
``
|
88
|
+
```
|
89
89
|
|
90
90
|
### 前提
|
91
91
|
Greedy法でグラフの最短経路を見つけるプログラムを書いています。
|
2
追加
test
CHANGED
File without changes
|
test
CHANGED
@@ -1,5 +1,91 @@
|
|
1
1
|
### 実現したいこと
|
2
|
-
C言語でGreedy法を修正してほしいです。
|
2
|
+
C言語でGreedy法を修正してほしいです。以下のような実行結果が出力されるようにしたいです。
|
3
|
+
|
4
|
+
以下は理想の実行結果です。
|
5
|
+
```ここに言語を入力
|
6
|
+
1-3: 165.4
|
7
|
+
0-3: 185.3
|
8
|
+
0-1: 449.1
|
9
|
+
1-4: 617.7
|
10
|
+
0-2: 750.4
|
11
|
+
2-3: 855.6
|
12
|
+
3-4: 871.2
|
13
|
+
1-2: 1015.1
|
14
|
+
0-4: 1055.9
|
15
|
+
2-4: 1592.3
|
16
|
+
//1-3を追加後の次数
|
17
|
+
点0の次数:0
|
18
|
+
点1の次数:1
|
19
|
+
点2の次数:0
|
20
|
+
点3の次数:1
|
21
|
+
点4の次数:0
|
22
|
+
|
23
|
+
//0-3を追加後の次数
|
24
|
+
点0の次数:1
|
25
|
+
点1の次数:1
|
26
|
+
点2の次数:0
|
27
|
+
点3の次数:2
|
28
|
+
点4の次数:0
|
29
|
+
|
30
|
+
//0-1を追加後の次数
|
31
|
+
点0の次数:1
|
32
|
+
点1の次数:1
|
33
|
+
点2の次数:0
|
34
|
+
点3の次数:2
|
35
|
+
点4の次数:0
|
36
|
+
|
37
|
+
//1-4を追加後の次数
|
38
|
+
点0の次数:1
|
39
|
+
点1の次数:2
|
40
|
+
点2の次数:0
|
41
|
+
点3の次数:2
|
42
|
+
点4の次数:1
|
43
|
+
|
44
|
+
//0-2を追加後の次数
|
45
|
+
点0の次数:2
|
46
|
+
点1の次数:2
|
47
|
+
点2の次数:1
|
48
|
+
点3の次数:2
|
49
|
+
点4の次数:1
|
50
|
+
|
51
|
+
//2-3を追加後の次数
|
52
|
+
点0の次数:2
|
53
|
+
点1の次数:2
|
54
|
+
点2の次数:1
|
55
|
+
点3の次数:2
|
56
|
+
点4の次数:1
|
57
|
+
|
58
|
+
//3-4を追加後の次数
|
59
|
+
点0の次数:2
|
60
|
+
点1の次数:2
|
61
|
+
点2の次数:1
|
62
|
+
点3の次数:2
|
63
|
+
点4の次数:1
|
64
|
+
|
65
|
+
//1-2を追加後の次数
|
66
|
+
点0の次数:2
|
67
|
+
点1の次数:2
|
68
|
+
点2の次数:1
|
69
|
+
点3の次数:2
|
70
|
+
点4の次数:1
|
71
|
+
|
72
|
+
//0-4を追加後の次数
|
73
|
+
点0の次数:2
|
74
|
+
点1の次数:2
|
75
|
+
点2の次数:1
|
76
|
+
点3の次数:2
|
77
|
+
点4の次数:1
|
78
|
+
|
79
|
+
//1-4を追加後の次数
|
80
|
+
点0の次数:2
|
81
|
+
点1の次数:2
|
82
|
+
点2の次数:2
|
83
|
+
点3の次数:2
|
84
|
+
点4の次数:2
|
85
|
+
|
86
|
+
Final Path: 1 -> 3 -> 0 -> 2 -> 4 -> 0
|
87
|
+
Total Distance: 3311.1
|
88
|
+
``
|
3
89
|
|
4
90
|
### 前提
|
5
91
|
Greedy法でグラフの最短経路を見つけるプログラムを書いています。
|
@@ -285,6 +371,7 @@
|
|
285
371
|
Final Path: 1 -> 0 -> 0 -> 2 -> 0
|
286
372
|
Total Distance: 2557.5
|
287
373
|
```
|
374
|
+
|
288
375
|
network.txt
|
289
376
|
```ここに言語を入力
|
290
377
|
5
|
1
試したことを追加
test
CHANGED
File without changes
|
test
CHANGED
@@ -299,4 +299,11 @@
|
|
299
299
|
2 4 1592.3
|
300
300
|
3 4 871.2
|
301
301
|
```
|
302
|
-
|
302
|
+
### 試したこと
|
303
|
+
一応自分なりに考えた閉路を求めるアルゴリズムは、
|
304
|
+
①追加する辺の両端の点を始点と終点し、あらかじめ訪問済みにする。
|
305
|
+
②始点から行き止まりまで探索し、最後の値を戻り値として返す。
|
306
|
+
③②と同様に終点から行き止まりまで探索し、最後の値を戻り値として返す。
|
307
|
+
④もし、始点からの戻り値と終点からの戻り値が一致すれば閉路があるとし、値が一致しなければ閉路はないする。
|
308
|
+
|
309
|
+
こんな感じのアルゴリズムを考えてみたのですが実装が上手くいかず困っていたので質問しました。
|