|
| Apropos sjove opgaver Fra : Rune Zedeler |
Dato : 12-05-04 19:20 |
|
For et par år siden spurgte jeg herinde - men vi kom ikke frem til noget
svar. Nu må det være tid til at spørge igen:
Greedy-metoden for at betale et beløb er: Så længe, du ikke har betalt
hele beløbet, så betal den størst mulige mønt/seddel, der ikke er større
end beløbet.
F.eks. med danske mønter vil greedy-metoden for at betale 17 kroner
altså først betale en 10-krone, så en 5-krone og så en 2-krone. I alt 3
mønter.
Lad os for nemheds skyld nøjes med at regne i hele beløb, og lad os
antage, at ethvert møntsystem indeholder en 1-mønt, således at ethvert
beløb vil kunne betales.
Hvilke kriterier skal et mønt-system opfylde, for at greedy-metoden
altid vælger det minimale antal mønter?
Hvis I ikke kan komme frem med et komplet sæt af kriterier, vil jeg også
være interesseret i nødvendige eller tilstrækkelige kriterier.
-Rune
| |
Jeppe Stig Nielsen (12-05-2004)
| Kommentar Fra : Jeppe Stig Nielsen |
Dato : 12-05-04 21:05 |
|
Rune Zedeler wrote:
>
> Hvilke kriterier skal et mønt-system opfylde, for at greedy-metoden
> altid vælger det minimale antal mønter?
>
> Hvis I ikke kan komme frem med et komplet sæt af kriterier, vil jeg også
> være interesseret i nødvendige eller tilstrækkelige kriterier.
Det eneste jeg lige kan se, er en tilstrækkelig betingelse: At enhver
mønt er divisor i de større mønter. Men den er vel ikke nødvendig.
Har du en reference til den tidligere tråd?
--
Jeppe Stig Nielsen <URL: http://jeppesn.dk/>. «
"Je n'ai pas eu besoin de cette hypothèse (I had no need of that
hypothesis)" --- Laplace (1749-1827)
| |
Rune Zedeler (12-05-2004)
| Kommentar Fra : Rune Zedeler |
Dato : 12-05-04 21:36 |
| | |
tomov (12-05-2004)
| Kommentar Fra : tomov |
Dato : 12-05-04 21:19 |
|
Hvad med binær ?!
Det må da give mindste antal
1 2 4 8 16 ......
venligst
Tom
"Rune Zedeler" <rz@daimi.au.dk> skrev i en meddelelse
news:c7tpqk$luc$1@news.net.uni-c.dk...
> For et par år siden spurgte jeg herinde - men vi kom ikke frem til noget
> svar. Nu må det være tid til at spørge igen:
>
>
> Greedy-metoden for at betale et beløb er: Så længe, du ikke har betalt
> hele beløbet, så betal den størst mulige mønt/seddel, der ikke er større
> end beløbet.
> F.eks. med danske mønter vil greedy-metoden for at betale 17 kroner
> altså først betale en 10-krone, så en 5-krone og så en 2-krone. I alt 3
> mønter.
>
> Lad os for nemheds skyld nøjes med at regne i hele beløb, og lad os
> antage, at ethvert møntsystem indeholder en 1-mønt, således at ethvert
> beløb vil kunne betales.
>
> Hvilke kriterier skal et mønt-system opfylde, for at greedy-metoden
> altid vælger det minimale antal mønter?
>
> Hvis I ikke kan komme frem med et komplet sæt af kriterier, vil jeg også
> være interesseret i nødvendige eller tilstrækkelige kriterier.
>
> -Rune
>
| |
Rune Zedeler (12-05-2004)
| Kommentar Fra : Rune Zedeler |
Dato : 12-05-04 21:28 |
|
tomov wrote:
> Hvad med binær ?!
> Det må da give mindste antal
>
> 1 2 4 8 16 ......
Jeg forstår ikke helt, hvad du mener.
Du har da ret i at greedy-metoder virker i det binære møntsystem.
En tilstrækkelig betingelse for at en møntsystem virker er altså, at
alle mønter har værdien 2^n for et eller andet helt tal n.
Men det er en rimeligt indskrænket tilstrækkelig betingelse - og
nødvendig er den i hvert fald ikke.
-Rune
| |
Magnus Marius Rohde (12-05-2004)
| Kommentar Fra : Magnus Marius Rohde |
Dato : 12-05-04 21:26 |
|
Rune Zedeler <rz@daimi.au.dk> wrote:
> For et par år siden spurgte jeg herinde - men vi kom ikke frem til noget
> svar. Nu må det være tid til at spørge igen:
>
>
> Greedy-metoden for at betale et beløb er: Så længe, du ikke har betalt
> hele beløbet, så betal den størst mulige mønt/seddel, der ikke er større
> end beløbet.
> F.eks. med danske mønter vil greedy-metoden for at betale 17 kroner
> altså først betale en 10-krone, så en 5-krone og så en 2-krone. I alt 3
> mønter.
>
> Lad os for nemheds skyld nøjes med at regne i hele beløb, og lad os
> antage, at ethvert møntsystem indeholder en 1-mønt, således at ethvert
> beløb vil kunne betales.
>
> Hvilke kriterier skal et mønt-system opfylde, for at greedy-metoden
> altid vælger det minimale antal mønter?
Vil man ikke _altid_ få det minimale antal mønter med den metode? Hvis
der f.eks. kun fandtes 20'ere og 1'ere, så ville man betale kr. 17 med
17 1'ere og det er jo det mindste antal mønter man kan betale 17 kroner
med (altså hvis der kun fandtes 1'ere og 20'ere).
Magnus
--
OS X: Because making UNIX user-friendly was easier that fixing Windows
| |
Rune Zedeler (12-05-2004)
| Kommentar Fra : Rune Zedeler |
Dato : 12-05-04 21:37 |
|
Magnus Marius Rohde wrote:
> Vil man ikke _altid_ få det minimale antal mønter med den metode?
Nej.
Hvis der også fandtes 7-kroner, ville beløbet 14 optimalt kunne
udbetales med to 7-krone-mønter. Greedy-metoden ville bruge tre mønter
(en 10'er og to 2'ere).
-Rune
| |
Jeppe Stig Nielsen (13-05-2004)
| Kommentar Fra : Jeppe Stig Nielsen |
Dato : 13-05-04 14:22 |
|
Magnus Marius Rohde wrote:
>
> > Hvilke kriterier skal et mønt-system opfylde, for at greedy-metoden
> > altid vælger det minimale antal mønter?
>
> Vil man ikke _altid_ få det minimale antal mønter med den metode?
Nej, det vil man netop ikke. Kun ved visse møntsystemer.
Eksempler:
Hvis mønterne er {1,3,4} vil beløbet 6 ikke blive udbetalt optimalt af
Greedy.
Hvis møntsystemet er {1,5,12} vil Greedy fejle på beløbet 15.
Men med møntsystemet {1,2,5} virker Greedy på alle beløb. (Hvorfor?)
Det Rune spørger om, (der er vist mange der har misforstået det) er
hvilke møntsystemer der opfylder at Greedy altid virker, og hvilke
møntsystemer der opfylder at Greedy fejler for mindst ét beløb.
Det er ikke spor svært at anvise et konkret møntsystem der ligger i
den første kategori.
--
Jeppe Stig Nielsen <URL: http://jeppesn.dk/>. «
"Je n'ai pas eu besoin de cette hypothèse (I had no need of that
hypothesis)" --- Laplace (1749-1827)
| |
Anders Wegge Jakobse~ (12-05-2004)
| Kommentar Fra : Anders Wegge Jakobse~ |
Dato : 12-05-04 22:13 |
|
"Rune" == Rune Zedeler <rz@daimi.au.dk> writes:
> Hvilke kriterier skal et mønt-system opfylde, for at greedy-metoden
> altid vælger det minimale antal mønter?
Er det ikke nok at værdierne er de første N primtal? Og umiddelbart
kan vi endda have lige så mange seddelværdier, med møntværdi * 100.
--
/Wegge < http://outside.bakkelygaard.dk/~wegge/>
echo mail: !#^."<>"|tr "<> mail:" dk@wegge
| |
Henning Makholm (13-05-2004)
| Kommentar Fra : Henning Makholm |
Dato : 13-05-04 02:07 |
|
Scripsit Anders Wegge Jakobsen <wegge@bakkelygaard.dk>
> "Rune" == Rune Zedeler <rz@daimi.au.dk> writes:
> > Hvilke kriterier skal et mønt-system opfylde, for at greedy-metoden
> > altid vælger det minimale antal mønter?
> Er det ikke nok at værdierne er de første N primtal?
Det er et meget stramt kriterium. Det virker heller ikke.
Lad møntværdierne være alle primtal under 150. Find mønter der
tilsammen giver 122.
Den grådige metode vælger 113+7+2. Men det ville være bedre at vælge
103+19.
--
Henning Makholm "They are trying to prove a hypothesis,
they are down here gathering data every season,
they're publishing results in peer-reviewed journals.
They're wrong, I think, but they are still scientists."
| |
Ukendt (13-05-2004)
| Kommentar Fra : Ukendt |
Dato : 13-05-04 06:43 |
|
"Rune Zedeler" <rz@daimi.au.dk> wrote in message
news:c7tpqk$luc$1@news.net.uni-c.dk...
>
> Hvilke kriterier skal et mønt-system opfylde, for at greedy-metoden
> altid vælger det minimale antal mønter?
Forholdet mellem værdien for 2 på hinanden følgende møntstørrelser skal være
mindst 2. Dette opfylder det danske møntsystem.
hilsen
Uffe
| |
Ukendt (13-05-2004)
| Kommentar Fra : Ukendt |
Dato : 13-05-04 06:51 |
|
Efter at have læst den tidligere tråd (via Google), kan jeg se, at det ikke
holder. Tilbage i tænkeboksen
hilsen
Uffe
| |
jv (13-05-2004)
| Kommentar Fra : jv |
Dato : 13-05-04 07:07 |
|
1 - 2 - 5 - 10 - 20 - 50 -100 - 200 - 500 -1000 - 2000 - 5000 - 10000 -
20000 - 50000 osv.
Der vil max blive brugt 2 ens type mønter til at betale et givet beløb.
| |
Lasse Reichstein Nie~ (13-05-2004)
| Kommentar Fra : Lasse Reichstein Nie~ |
Dato : 13-05-04 16:50 |
|
"jv" <nospam@nospam.ig> writes:
> 1 - 2 - 5 - 10 - 20 - 50 -100 - 200 - 500 -1000 - 2000 - 5000 - 10000 -
> 20000 - 50000 osv.
>
>
> Der vil max blive brugt 2 ens type mønter til at betale et givet beløb.
Ja, den kender vi jo.
Er det mon et tilfælde at der højst bruges to af en slags mønt, og
at ingen mønters værdi er mere end halvdelen af den følgende?
/L
--
Lasse Reichstein Nielsen - lrn@hotpop.com
DHTML Death Colors: <URL: http://www.infimum.dk/HTML/rasterTriangleDOM.html>
'Faith without judgement merely degrades the spirit divine.'
| |
jv (14-05-2004)
| Kommentar Fra : jv |
Dato : 14-05-04 08:45 |
|
> Ja, den kender vi jo.
>
> Er det mon et tilfælde at der højst bruges to af en slags mønt, og
> at ingen mønters værdi er mere end halvdelen af den følgende?
>
>
oplægget var :
"Hvilke kriterier skal et mønt-system opfylde, for at greedy-metoden
altid vælger det minimale antal mønter?"
| |
Rune Zedeler (14-05-2004)
| Kommentar Fra : Rune Zedeler |
Dato : 14-05-04 12:56 |
|
Lasse Reichstein Nielsen wrote:
> Er det mon et tilfælde at der højst bruges to af en slags mønt,
Ja. Der var jo en gang hvor vi ikke havde 2-kroner.
Den gang virkede greedy også
> og
> at ingen mønters værdi er mere end halvdelen af den følgende?
Hmm, som før nævnt vil det stadig virke, hvis du tilføjer en 3- og en
4-krone.
-Rune
| |
Peter Weis (13-05-2004)
| Kommentar Fra : Peter Weis |
Dato : 13-05-04 09:29 |
|
Rune Zedeler <rz@daimi.au.dk> wrote:
> Hvilke kriterier skal et mønt-system opfylde, for at
> greedy-metoden altid vælger det minimale antal mønter?
Hvis der er en mønt for alle mulige værdier (1 kr, 2 kr, 3 kr, 4 kr
osv.), så vil Greedy-metoden altid vælge netop én mønt.
Mindre kan antallet af mønter for et givet beløb vel ikke blive.
mvh
Peter
| |
Ukendt (13-05-2004)
| Kommentar Fra : Ukendt |
Dato : 13-05-04 09:37 |
|
"Peter Weis" <p.weis@email.dk.slet> wrote in message
news:Xns94E868D95445Cpweisemaildk@127.0.0.1...
> Hvis der er en mønt for alle mulige værdier (1 kr, 2 kr, 3 kr, 4 kr
> osv.), så vil Greedy-metoden altid vælge netop én mønt.
> Mindre kan antallet af mønter for et givet beløb vel ikke blive.
Det er ikke det, der bliver spurgt om. Prøv at læse spørgsmålet igen.
| |
Bertel Lund Hansen (13-05-2004)
| Kommentar Fra : Bertel Lund Hansen |
Dato : 13-05-04 09:50 |
|
Uffe Kousgaard skrev:
>> Hvis der er en mønt for alle mulige værdier (1 kr, 2 kr, 3 kr, 4 kr
>> osv.), så vil Greedy-metoden altid vælge netop én mønt.
>> Mindre kan antallet af mønter for et givet beløb vel ikke blive.
>Det er ikke det, der bliver spurgt om. Prøv at læse spørgsmålet igen.
Men det kan hurtigt drejes til et svar på det opfølgende
spørgsmål:
En tilstrækkelig betingelse er at der findes en mønt for hvert
muligt beløb.
--
Bertel
http://bertel.lundhansen.dk/ FIDUSO: http://fiduso.dk/
| |
Peter Weis (13-05-2004)
| Kommentar Fra : Peter Weis |
Dato : 13-05-04 12:01 |
|
"Uffe Kousgaard" <look_at_ www.routeware.dk> wrote:
> Det er ikke det, der bliver spurgt om. Prøv at læse spørgsmålet igen.
Jeg har nu læst spørgsmålet igen.
Og jeg kan ikke se andet end at jeg angier en tilstrækkelig betingelse
for at Greedy metoden kommer med det mindste antal mønter.
I tilgift opnår jeg at det minimale antal mønter er mindst muligt.
Et andet møntsystem som vil betyde at Greedy metoden altid resulterer i
det mindste antal mønter er at der kun findes mønter med pålydende 1.
Men så vil det minimale antal mønter være maksimalt. Så her er også en
tilstrækkelig betingelse.
Jeg er udmærket klar over at det ikke er det svar der søges. Men det er
da bud på to møntsystemer som opfylder kravene.
mvh
Peter
| |
Lasse Reichstein Nie~ (13-05-2004)
| Kommentar Fra : Lasse Reichstein Nie~ |
Dato : 13-05-04 16:53 |
|
Peter Weis <p.weis@email.dk.slet> writes:
> Et andet møntsystem som vil betyde at Greedy metoden altid resulterer i
> det mindste antal mønter er at der kun findes mønter med pålydende 1.
Nu vi er ved mønten "1". Hvad med systemer hvor ikke alle mønters
værdier er et multiplum af den mindste mønts - vil de give mening?
Jeg vil sige nej, fordi så kan man ikke altid give tilbage, ... men
med mønterne 1 og 1.5 vil den grådige metode virke for alle beløb
der kan rammes.
/L
--
Lasse Reichstein Nielsen - lrn@hotpop.com
DHTML Death Colors: <URL: http://www.infimum.dk/HTML/rasterTriangleDOM.html>
'Faith without judgement merely degrades the spirit divine.'
| |
Stefan Holm (13-05-2004)
| Kommentar Fra : Stefan Holm |
Dato : 13-05-04 17:27 |
|
Peter Weis <p.weis@email.dk.slet> writes:
> Jeg er udmærket klar over at det ikke er det svar der søges. Men det er
> da bud på to møntsystemer som opfylder kravene.
Og så er der mellemløsningerne hvor der er mønter af alle værdier
indtil en given (endelig) grænse.
--
Stefan Holm
"jeg har både uddannelse og hjernen i omløb"
| |
Lasse Reichstein Nie~ (13-05-2004)
| Kommentar Fra : Lasse Reichstein Nie~ |
Dato : 13-05-04 17:43 |
|
Stefan Holm <nospam@algebra.dk> writes:
> Og så er der mellemløsningerne hvor der er mønter af alle værdier
> indtil en given (endelig) grænse.
Findes der mon et endeligt grådigt møntsystem, der holder op med at
virke grådigt hvis man fjerner den højeste mønt?
Jeg kan ikke lige finde en udvidelse af de ugrådige systemer jeg har
ved hånden der bliver grådige, men det er jo ikke noget bevis :)
/L
--
Lasse Reichstein Nielsen - lrn@hotpop.com
DHTML Death Colors: <URL: http://www.infimum.dk/HTML/rasterTriangleDOM.html>
'Faith without judgement merely degrades the spirit divine.'
| |
Torben Ægidius Mogen~ (13-05-2004)
| Kommentar Fra : Torben Ægidius Mogen~ |
Dato : 13-05-04 10:54 |
|
Rune Zedeler <rz@daimi.au.dk> writes:
> Greedy-metoden for at betale et beløb er: Så længe, du ikke har betalt
> hele beløbet, så betal den størst mulige mønt/seddel, der ikke er større
> end beløbet.
>
> Lad os for nemheds skyld nøjes med at regne i hele beløb, og lad os
> antage, at ethvert møntsystem indeholder en 1-mønt, således at ethvert
> beløb vil kunne betales.
>
> Hvilke kriterier skal et mønt-system opfylde, for at greedy-metoden
> altid vælger det minimale antal mønter?
Hvis der kun er to mønter: en 1'er og en A'er, så er den grådige
metode trivielt optimal.
Hvis vi har 1 og A, og skal finde en større mønt B, så vil den grådige
algoritme være optimal hvis B er n*A eller n*A-1 for n>=2. Bevis:
For et beløb X er den optimale betaling med 1'ere og A'ere af formen
a*A+k*1, hvor k<A.
Hvis B=n*A, så vil brug af B kunne mindske antallet af brugte mønter,
hvis a>=n. Hvis a<n er X<B og B bliver dermed ikke brugt.
Hvis B=n*A-1, så vil brugen af B'er ikke øge antallet af mønter hvis
a>=n: Man erstatter n*A med B og 1. Hvis antallet af 1'ere dermed
overstiger A-1, bliver antallet af mønter reduceret. Hvis a=n-1 og
k=A-1 er X=B. Hvis a=n-1 og k<A-1 eller hvis a<n-1, vil B ikke
blive brugt.
Vi har nu vist, at det aldrig kan øge antallet af mønter, hvis vi
grådigt bruger eet B. Men vi kan anvende samme argument på det
resterende antal A'ere og 1'ere, så grådig anvendelse af et
vilkårligt antal B'ere vil ikke øge antallet af mønter.
Dette er dog ikke en nødvendig betingelse: Hvis B>=A*A vil den grådige
algoritme være optimal, uanset om B opfylder ovenstående betingelse,
da brug af en B-mønt vil fjerne mindst A A'ere og tilføje mindre end A
1'ere.
Så for tre mønter 1<A<B er en tilstrækkelig betingelse at B>=A*A eller
at der er et n>=2 så B=n*A eller B=n*A-1.
Jeg er dog ikke sikker på, at dette er en nødvendig betingelse.
Uden at have undersøgt det nærmere vil jeg lave en hypotese, der siger
at et møntsystem er optimalt, hvis to på hinanden følgende mønter
opfylder kravet til A og B herover.
Torben
| |
Jeppe Stig Nielsen (13-05-2004)
| Kommentar Fra : Jeppe Stig Nielsen |
Dato : 13-05-04 15:57 |
|
"Torben Ægidius Mogensen" wrote:
>
> Så for tre mønter 1<A<B er en tilstrækkelig betingelse at B>=A*A eller
> at der er et n>=2 så B=n*A eller B=n*A-1.
>
> Jeg er dog ikke sikker på, at dette er en nødvendig betingelse.
Det er nok en god idé at nøjes med tre mønter.
Din betingelse er vist ikke nødvendig. Fx virker Greedy fint med mønt-
sættet {1,10,55}, men B=55 opfylder jo ingen af dine betingelser.
(Dette indlæg baserer jeg på et lille computerprogram som forhåbentlig
er korrekt (jeg er ikke programmør).)
--
Jeppe Stig Nielsen <URL: http://jeppesn.dk/>. «
"Je n'ai pas eu besoin de cette hypothèse (I had no need of that
hypothesis)" --- Laplace (1749-1827)
| |
Torben Ægidius Mogen~ (14-05-2004)
| Kommentar Fra : Torben Ægidius Mogen~ |
Dato : 14-05-04 13:39 |
|
Jeppe Stig Nielsen <mail@jeppesn.dk> writes:
> "Torben Ægidius Mogensen" wrote:
> >
> > Så for tre mønter 1<A<B er en tilstrækkelig betingelse at B>=A*A eller
> > at der er et n>=2 så B=n*A eller B=n*A-1.
> >
> > Jeg er dog ikke sikker på, at dette er en nødvendig betingelse.
>
> Det er nok en god idé at nøjes med tre mønter.
>
> Din betingelse er vist ikke nødvendig. Fx virker Greedy fint med mønt-
> sættet {1,10,55}, men B=55 opfylder jo ingen af dine betingelser.
Nej, jeg var godt klar over at betingelserne ikke var nødvendige. Jeg
har mens jeg stod under bruseren i morges forfinet betingelserne lidt:
I et møntsystem med mønterne 1<A<B er den grådige metode optimal hvis
enten:
1) B>=A*A
2) Der findes k og m, 0<k<=m<=A så B=(A-k)*A+m.
Betingelse 1 blev diskuteret i går. Betingelse 2 er en generalisering
af de to andre betingelser fra i går, og beviset for dens korrekthed
er som følger:
Hvis m=A kan B skrives som (A-k+1)*A og er dækket af argumentet fra i
går vedrørende n*A, hvor n>1. Så vi ser herefter kun på tilfældet
hvor m<A.
Hvis X<B bruges B ikke, og den grådige algoritme er følgelig optimal.
Hvis X=(A-k)*A+p, hvor m<=p<A, vil den grådige algoritme bruge 1*B og
(p-m)*1, ialt p-m+1 mønter. Hvis B ikke bruges, bruges (A-k)*A og
p*1. Da m>0 og k<A er dette mindst ligeså stort. Altså er den
grådige algoritme optimal.
Hvis X>(A-k+1)*A kan X skrives som (A-k+p)*A+q, hvor p>0 og 0<=q<A.
Uden brug af B, vil beløbet bruge (A-k+p)+q mønter. Med brug af een
B mønt er restbeløbet p*A+q-m. Hvis q>=m, kan det samlede beløb
betales med 1+p+q-m mønter, hvilket er mindre end eller lig med
A-k+p+q, da k<A og m>=0. Hvis q<m, bruges (p-1) A mønter og (A+q-m)
1'ere til restbeløbet, så det samlede beløb betales med p+q+A-m
mønter. Da k<=m er dette mindre end eller lig med (A-k+p)+q. Altså
vil brug af en B mønt ikke øge antallet af mønter.
Igen kan dette argument gentages på restbeløbet, så man dermed har at
den grådige algoritme er optimal.
Dit eksempel med A=10 og B=55 er dækket af dette, da B=(A-5)+5.
Lad os nu se om dette mere præcise krav nu er nødvendigt.
Lad os antage at A<B<A*A og B ikke kan skrives som (A-k)*A+m, hvor
0<k<=m<=A. Følgeligt kan B skrives som (A-k)*A+m, hvor 0<m<k (hvis
m=0 omskrives B til (A-k-1)*A+A, som giver optimal opførsel for den
grådige algoritme).
Vi skal nu for B=(A-k)*A+m, hvor 0<m<k<A, finde et X, hvor den
grådige algoritme ikke er optimal.
Vi lader X=(A-k+1)*A:
X = (A-k+1)*A = (A-k)*A+m+(A-m) = B+(A-m)
Den grådige algoritme vil bruge 1+A-m mønter. Ved kun at bruge A'ere
bruges A-k+1 mønter. Da m>k er A-k+1<1+A-m. Derfor er den grådige
algoritme suboptimal.
Altså er de opstillede krav både tilstrækkelige og nødvendige.
Torben
| |
Niels L. Ellegaard (13-05-2004)
| Kommentar Fra : Niels L. Ellegaard |
Dato : 13-05-04 19:35 |
|
Rune Zedeler <rz@daimi.au.dk> writes:
> Greedy-metoden for at betale et beløb er: Så længe, du ikke har
> betalt hele beløbet, så betal den størst mulige mønt/seddel, der
> ikke er større end beløbet.
Måske kan man komme videre ved at lede efter måder at repræsentere
beløbet nul i møntsystemet. Her er en halvfærdig ide. Måske kan de
inspirere nogen til en løsning. Lad møntsystemet være givet ved
mønterne c1, c2 .. cM. Det svarer altså til
c_1 = 25 øre, c_2 = 50 øre osv
Vi leder efter måder at repræsentere beløbet B. Jeg lader antallene
n'_1, n'_2 .... n'_M angive den "grådige" betalingskombination
Her angiver n'_1 eksempelvis hvor mange gange den grådige metode
bruger mønten c_1. Den grådige betalingskombination skal summe op til
beløbet B. Dette krav kan skrives
c_1 n'_1 + c_2 n'_2 + ... c_M n'_M = B
Desuden returnerer den grådige metode altid en betalingskombination
der opfylder følgende for alle i>1 (I det følgende vil jeg kalde denne
ulighed for "grådighedsuligheden")
c_1 n'_1 + c_2 n'_2 + .... c_(i-1) * n'_(i-1) < c_i
Jeg leder nu efter en metode betalingskombination, der bruge færre
mønter end den grådige. Denne betalingskombination er beskrevet ved
følgende antallene n_1, n_2 .... n_M. Kravet om brug af færre mønter
kan skrives således
n_1 + n_2 + ... n_M < n'_1 + n'_2 + ... n'_M
Den nye metode skal selvfælgelig også summe op til beløbet B
c_1 n_1 + c_2 n_2 + ... c_M n_M = B
Det skal det gælde for alle i at
ni => 0
n'_i =>0
Der må også være et krav om at den grådige metode bruger mønten c_M
mindst lige så mange gange som den optimale metode (kan dette krav
forbedres, så det også gælder for i<M ??)
n'_M => n_M
Det bliver lidt lettere at overskue alt det her, hvis vi reformulerer
det hele ved hjælp af differensen mellem de to kombinationer. Derfor
definerer jeg variablene dn_i ved
dn_i = n'_i - n_i
Hvis dn_i = 1 betyder det at den grådige metode bruger mønten c_i en
gang mere end den optimale metode. Vi leder efter en optimal metode
der bruger færre mønter end den grådige. Dette krav kan skrives
dn_1 + dn_2 + ... dn_M > 0
De to metoder skal summe op til samme beløb så det må gælde at
c_1 dn_1 + c_2 dn_2 + ... c_M dn_M = 0
Hvis vi bruger kravet n_i >= 0 og "grådighedsuligheden" får vi for
alle i>1
c_1 dn_1 + c_2 dn_2 + .... c_(i-1) * dn_(i-1) < c_(i)
Den grådige metode skal bruge mønten cM mindst lige så mange gange som
den mindre grådige. Dette giver, n'_M => n_M, så vi får
dn_M >= 0
(Dette krav virker utilstrækkeligt.. er det forresten nødtvendigt?)
Hvis man fifler lidt ved de ovenstående 4 krav så burde man kunne
finde et sæt nødtvendige og tilstrækkelige krav. Der findes garanteret
gode metoder til at løse et system af uligheder.
--
Niels L Ellegaard http://dirac.ruc.dk/~gnalle/
| |
|
|