Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

章末問題 4.6回答例 でメモ参照のインデックスが負数になる可能性がある #18

Open
ichihara-3 opened this issue Aug 12, 2022 · 0 comments

Comments

@ichihara-3
Copy link

章末問題4.6の解答例で、w - a[i - 1]が負数になる可能性があり、その場合次の再起実行時の memoへの参照が負数になります。
そのため、想定外の書き換えや、a[i-1]の値が大きいときにはvectorの領域外への参照により結果が不定となる現象が発生し得ます。

if (func(i - 1, w - a[i - 1], a)) return memo[i][w] = 1;

例えば、以下のような入力は必ずNoになるはずですが、私の実行環境ではYesが出力されることがありました。

20
5
7 9 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 51 53 55

解決策としては、func()内で w<0 のときfalseで返却してしまうなどが考えられると思います

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant