回答編集履歴

3

微修正

2018/08/03 19:51

投稿

episteme
episteme

スコア16614

test CHANGED
@@ -68,7 +68,7 @@
68
68
 
69
69
  for (i = N - 1; i >= 0; i--) {
70
70
 
71
- double* d = &a[I][N];
71
+ double* d = &a[i][N];
72
72
 
73
73
  *d /= a[i][i];
74
74
 

2

加筆

2018/08/03 19:51

投稿

episteme
episteme

スコア16614

test CHANGED
@@ -57,3 +57,27 @@
57
57
 
58
58
 
59
59
  [B']は a[N-1][N]を書き換えない。両者が同じワケがないやろ。
60
+
61
+
62
+
63
+ 毎回 a[i][N] にアクセスすることで速度低下を懸念するなら
64
+
65
+ ```
66
+
67
+ // [A'']
68
+
69
+ for (i = N - 1; i >= 0; i--) {
70
+
71
+ double* d = &a[I][N];
72
+
73
+ *d /= a[i][i];
74
+
75
+ for (j = i + 1; j < N; j++) {
76
+
77
+ *d -= a[i][j] * a[j][N] / a[i][i];
78
+
79
+ }
80
+
81
+ }
82
+
83
+ ```

1

微修正

2018/08/03 19:50

投稿

episteme
episteme

スコア16614

test CHANGED
@@ -6,9 +6,11 @@
6
6
 
7
7
  a[i][N] /= a[i][i];
8
8
 
9
- for (j = i + 1; j < N; j++)
9
+ for (j = i + 1; j < N; j++) {
10
10
 
11
11
  a[i][N] -= a[i][j] * a[j][N] / a[i][i];
12
+
13
+ }
12
14
 
13
15
  }
14
16