Pažravý algorytmus.
Pažravý algorytmus.
Dobrý deň, chcel by som poprosiť o pomoc pri práci jedného projektu. Riešenie si viem predstaviť, popripade "spraviť" na papier, ale moje programovacie schopnosti sú slabé a neviem sa pohnúť. Zadanie:
Auto cestuje zo štartového do cieľového mesta a zastavuje iba kvôli čerpaniu benzínu alebo v cieli. Napíšte program, ktorý vypočíta, na ktorých benzínových čerpadlách na trase sa má auto zastaviť, aby počet nutných zastávok bol čo najmenší.
Na vstupe vášho programu bude maximálny počet kilometrov, ktoré vie auto prejsť s plnou nádržou a kilometráž možných zastávok auta na ceste (stúpajúca postupnosť kilometrov, na ktorých sa nachádzajú benzínové čerpadlá a posledné číslo predstavuje cieľ).
Príklad zadania:
Auto prejde najviac 100 km na plnú nádrž. Kilometráž možných zastávok: (0, 56, 99, 144, 184, 204, 259, 320, 328, 378) je napríklad trasa z Bratislavy do Popradu. Použite pažravý algorytmus.
Som vďačný za každú pomoc a radu. Ďakujem
Auto cestuje zo štartového do cieľového mesta a zastavuje iba kvôli čerpaniu benzínu alebo v cieli. Napíšte program, ktorý vypočíta, na ktorých benzínových čerpadlách na trase sa má auto zastaviť, aby počet nutných zastávok bol čo najmenší.
Na vstupe vášho programu bude maximálny počet kilometrov, ktoré vie auto prejsť s plnou nádržou a kilometráž možných zastávok auta na ceste (stúpajúca postupnosť kilometrov, na ktorých sa nachádzajú benzínové čerpadlá a posledné číslo predstavuje cieľ).
Príklad zadania:
Auto prejde najviac 100 km na plnú nádrž. Kilometráž možných zastávok: (0, 56, 99, 144, 184, 204, 259, 320, 328, 378) je napríklad trasa z Bratislavy do Popradu. Použite pažravý algorytmus.
Som vďačný za každú pomoc a radu. Ďakujem
-
harrison314
Hardcore addict
- Príspevky: 8223
- Registrovaný: 27 máj 2009, 20:42
- Bydlisko: Bratislava
- Kontaktovať používateľa:
Re: Pažravý algorytmus.
nanapisal si v akom jazyku si zelas riesnie,
a na fore sa neriesia domace ulohy, napis co mas a pomozeme ti
a na fore sa neriesia domace ulohy, napis co mas a pomozeme ti
Re: Pažravý algorytmus.
Aha, prepáč. Riešenie sa realizuje v jave. No tak na vstupe mam "n" počet km kolko spraví auto na plnú nádrž a A[], kde mám kilometráž miest v ktorých sú pumpy. Kedže treba pužiť pažravý alg štartujem s plnou nadržou, prehladavam pole a hladam max po kade dojdem bez dalsieho potrebneho natankovania. Toto opakujem dalej až kým som neni v cieli. Problem mam v podmienkach, nejako som sa v tom stratil
-
harrison314
Hardcore addict
- Príspevky: 8223
- Registrovaný: 27 máj 2009, 20:42
- Bydlisko: Bratislava
- Kontaktovať používateľa:
Re: Pažravý algorytmus.
tak sem pastni kod a prosim sformatovany a v tagoch code
Re: Pažravý algorytmus.
dajme tomu že plná nádrž vydá na 100km a ked mam kilometre zadané napr [0, 56, 99, 144, 184, 204, 259, 320, 328, 378]. Tak to realizujem 1. zastavenie na 99.km + natankovanie 2.zastavenie 184 + natankovanie 3.zastavenie 254, 4. natankovanie 328. Problem je s tým kódom 
-
harrison314
Hardcore addict
- Príspevky: 8223
- Registrovaný: 27 máj 2009, 20:42
- Bydlisko: Bratislava
- Kontaktovať používateľa:
Re: Pažravý algorytmus.
skusim to naisat s pameti
skontroluj to ci to ide, momentalne nem nic co preklada Javu
Kód: Vybrať všetko
public static int CountOfStops(int[] pumps, int fuel)
{
int count =0;
int range = fuel;
for(int i=0;i<pumps.getLenght()-1;i++)
{
if(pumps[i+1]>=range)
{
range= pumps[i]+fuel;
count++;
}
}
return count;
}
Re: Pažravý algorytmus.
Cannot find symbol getLenght. Prosím ťa ako potom zadefinujem tie kilometre na vstupe ? myslel som že je to riešiteľné v main class bez použitia premenných v triede
-
audiotrack
VIP
- Príspevky: 25958
- Registrovaný: 09 sep 2005, 18:39
- Kontaktovať používateľa:
Re: Pažravý algorytmus.
má tam preklep, getLenght má byt getLength. Ja si teda syntax javy moc už nepamätám, ale nemá to byť Array.getLength(pumps)? Alebo potom pumps.length()Pencooo napísal:Cannot find symbol getLenght. Prosím ťa ako potom zadefinujem tie kilometre na vstupe ? myslel som že je to riešiteľné v main class bez použitia premenných v triede
Tou tvojou otázkou neviem čo myslíš. Ako to chceš riešiť bez použitia premenných? Načítaš vstupy, a pošleš ich ako parametre do tej funkcie čo ti napísal.
Re: Pažravý algorytmus.
Pardon, ten preklep s písmenkom som si všimol, prepísal ale aj tak píše chybu netbeans. Keď to budem robiť pomocou tej garrisonovej funkcie kde potom zadám tie kilometre jednotlivých zastávok ?
-
audiotrack
VIP
- Príspevky: 25958
- Registrovaný: 09 sep 2005, 18:39
- Kontaktovať používateľa:
Re: Pažravý algorytmus.
tie vstupujú ako pole na miesto prvého parametra. Veď ty nevieš ani čítať jednoduchú funkciu, tak sa nedivím že to nevieš naprogramovať sám
Re: Pažravý algorytmus.
Ešte jedna otazočka, keď volám metódu a zadávam argumenty za pumps[] v akom tvare sa to píše? nejak mi to nechce zobrať
-
harrison314
Hardcore addict
- Príspevky: 8223
- Registrovaný: 27 máj 2009, 20:42
- Bydlisko: Bratislava
- Kontaktovať používateľa:
Re: Pažravý algorytmus.
Ja som vravel ze syntax si uz nepametam,Pencooo napísal:Ešte jedna otazočka, keď volám metódu a zadávam argumenty za pumps[] v akom tvare sa to píše? nejak mi to nechce zobrať
zavolas ju tak ze das nazov triedy v ktorej ju mas , bodka, CountOfStops a das parametre
JAVA - program
Auto cestuje zo štartového do cieľového mesta a zastavuje iba kvôli čerpaniu benzínu alebo v cieli. Napíšte program, ktorý vypočíta, na ktorých benzínových čerpadlách na trase sa má auto zastaviť, aby počet nutných zastávok bol čo najmenší.
Vie mi niekto poradiť ako vypíšem pumpy kde auto stálo?
//autoeditácia príspevku (23 Jan 2013, 17:01)
tak do if podmienky som len doplnil "System.out.println(pumpy);" a vyzera ze to funguje
)
Vie mi niekto poradiť ako vypíšem pumpy kde auto stálo?
Kód: Vybrať všetko
public static void main(String[] args) {
int[] pumpy={0,56,99,144,184,204,259,320,378};
int fuel = 100;
System.out.println(PocetZastavok(pumpy, fuel));
}
public static int PocetZastavok(int[] pumpy, int palivo)
{
int pocet =0;
int dojazd = palivo;
for(int i=0;i<pumpy.length-1;i++)
{
if(pumpy[i+1]>=dojazd)
{
dojazd= pumpy[i]+palivo;
pocet++;
}
}
return pocet;
}
}
tak do if podmienky som len doplnil "System.out.println(pumpy);" a vyzera ze to funguje
Re: Pažravý algorytmus.
pozri prosím novú temu harrison. A dakujem ti:)
-
audiotrack
VIP
- Príspevky: 25958
- Registrovaný: 09 sep 2005, 18:39
- Kontaktovať používateľa:
Re: Pažravý algorytmus.
Nie, to ty použi starú tému
A nemáš zač