このページでは、授業で説明した内容に誤り・不適切な情報が あった場合についてアップデート情報をお知らせします。
2003/06/10
Knapsack Problemを解くサブプログラムにおいて、
変数iの範囲を間違って書いてました。
誤 | 正 |
for i = 2 to N - 1 for t = 1 to N*Vmax ... |
for i = 1 to N - 1 for t = 1 to N*Vmax ... |
2003/05/20
ダイクストラ(dijkstra)のアルゴリズムにおいて、
find_shortest_path()関数内部の一部を
授業中に正しく板書したかどうか気になったので、一応載せておきます。
cost[]を書き換える部分です。
誤(授業?) | 正 |
for ( ; numt > 0; numt--) { for (min = cost[m = v[0]], i = 1; i < numt; i++) { if (cost[v[i]] < min) min = cost[v[i]]; ... |
for ( ; numt > 0; numt--) { for (min = cost[m = v[0]], i = 1; i < numt; i++) { if (cost[v[i]] < min) min = cost[m = v[i]]; ... |
2003/05/13
行列積のスカラー積の演算回数を求めるダイナミックプログラミングのソースで、
大域変数mem[]の大きさを間違えていたと思います。正しくはN+1です。
誤 | 正 |
int mem[N][N]; |
int mem[N+1][N+1]; |
2003/05/06
プログラム knapsack_dp1(), knapsack_dp2() の関数の始めの変数宣言部。
コンパイラ処理系によって問題が生じるので、その場合は解決策1、解決策2の
いずれかを使用してください。
授業 | 解決策1 | 解決策2 |
void knapsack_dp1(int wl){ int v[wl + 1]; ... |
#define BIGENOUGH 10000 void knapsack_dp1(int wl){ int v[BIGENOUGH]; ... |
#include |