„Programozás/Algoritmusok” változatai közötti eltérés

Kommentezés
(Formázás)
(Kommentezés)
 
===<!--19. -->Pénzváltási probléma egy megoldásának előállítása táblázat-kitöltéssel===
:'''Nem ''kötelező mindkét kód, választható, egyébként is egyanaz, csak az egyik Pseudokódan a másik meg Javában van.'''''
<pre>
int[] PénzVáltás(int E, int P[n]){
</pre>
:'''A táblázat kitöltésének logikája:'''
:Olyan kiszámítási sorrendet kell megállapítani, amelyre teljesül, hogy amikor az (X, i) rész-
problémát számítjuk, akkor ennek összetevőit már korábban kiszámítottuk. Mivel az (X, 1)
részproblémáknak nincs összetevőjük, ezért közvetlenül kiszámíthatóak, azaz a táblázat első
az i − 1-edik sor minden elemét. Tehát a táblázat-kitöltés sorrendje: soronként (alulról felfelé), ̋
balról-jobbra haladó lehet.
:'''Java kód'''
<pre>
public class PenzValt1{
int i,x;
for (x=1; x<=E; x++) //inicializálás
VT[x][0]=false; //0 sor végig false
VT[0][0]=true; //semmit, érmék nélkül ki lehet rakni
VT[P[0]][0]=true; //inicializálás vége
for (i=1; i<n; i++) //kitöltjük a táblázatot az összes lehetséges P-re balról-jobbra
for (x=1; x<=E; x++) //kitöltjük a táblázatot az összes lehetséges X-re alulról-fölfele
'''VT[x][i]= P[i]==x || VT[x][i-1] || x>=P[i] && VT[x-P[i]][i-1];'''
VT[x][i-1] ||
x>=P[i] && VT[x-P[i]][i-1];
int db=0; x=E; i=n-1;
if (!VT[E][n-1]) return null;
Névtelen felhasználó