質問編集履歴

4

誤り訂正

2023/07/21 07:48

投稿

t-xxx5
t-xxx5

スコア6

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 -> 0
86
+ Final Path: 1 -> 3 -> 0 -> 2 -> 4 -> 1
87
87
  Total Distance: 3311.1
88
88
  ```
89
89
 

3

脱字

2023/07/20 23:22

投稿

t-xxx5
t-xxx5

スコア6

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

追加

2023/07/20 23:20

投稿

t-xxx5
t-xxx5

スコア6

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

試したことを追加

2023/07/20 19:33

投稿

t-xxx5
t-xxx5

スコア6

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
+ こんな感じのアルゴリズムを考えてみたのですが実装が上手くいかず困っていたので質問しました。