アルゴリズム4)グリディ
2422 ワード
グリディ
1)Griddyアルゴリズム例-おつり
質問する
カウンターにはお釣りに使える500元、100元、50元、10元硬貨が無限に存在します.お客様に渡すお金はN元のペアでお探しのコインの最低個数です.△でも、おつりはいつも10の倍数です.
問題の説明
グリディアルゴリズムでこの問題を解決すれば、最大の通貨単位からお金を探すことができます.N元を探す時、まず500元を探して、それから100元、50元、10元の順序で探して、最も少ない硬貨の数はすべて探すことができます.
問題を解く
n = 1260
count = 0
# 큰 단위의 화폐부터 차례로 확인
coin = [500, 100, 50, 10]
for i in coin:
count += n // i
n %= i
print(count)
小銭を探す問題で、グリディアルゴリズムの正確性
グリディアルゴリズムで問題の解法を見つけるときは,その正しさを研究すべきである.小銭を探す問題は、持っている硬貨の中の大きな単位が常に小さい単位の倍数であるため、小さな単位の硬貨を総合して他の解を導くことができないため、GRADYアルゴリズムで最適解を求めることができる.
800元を探す場合、通貨単位は500元、400元、100元で、GRIDアルゴリズムは4つの硬貨(500元+100元)です.×3)探す必要があるが、この場合、最適な年は2枚の硬貨(400ウォン)だ.×2)おつりを出す.
したがって,Griddyアルゴリズムを用いて問題を解決する際には,Griddyアルゴリズムが常に最適解の正当性を求めることができるかどうかを調べる必要がある.
2)グリディアルゴリズムと動的プログラミングの比較
Reference
この問題について(アルゴリズム4)グリディ), 我々は、より多くの情報をここで見つけました https://velog.io/@alsgk721/알고리즘-4-그리디テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol