Pažravý algorytmus.

Programovacie jazyky, rady, poradňa...
Pencooo
Novice
Novice
Príspevky: 8
Registrovaný: 23 jan 2013, 13:34

Pažravý algorytmus.

Príspevok od používateľa Pencooo »

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
harrison314
Hardcore addict
Hardcore addict
Používateľov profilový obrázok
Príspevky: 8223
Registrovaný: 27 máj 2009, 20:42
Bydlisko: Bratislava
Kontaktovať používateľa:

Re: Pažravý algorytmus.

Príspevok od používateľa harrison314 »

nanapisal si v akom jazyku si zelas riesnie,
a na fore sa neriesia domace ulohy, napis co mas a pomozeme ti
Pencooo
Novice
Novice
Príspevky: 8
Registrovaný: 23 jan 2013, 13:34

Re: Pažravý algorytmus.

Príspevok od používateľa Pencooo »

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
Hardcore addict
Používateľov profilový obrázok
Príspevky: 8223
Registrovaný: 27 máj 2009, 20:42
Bydlisko: Bratislava
Kontaktovať používateľa:

Re: Pažravý algorytmus.

Príspevok od používateľa harrison314 »

tak sem pastni kod a prosim sformatovany a v tagoch code
Pencooo
Novice
Novice
Príspevky: 8
Registrovaný: 23 jan 2013, 13:34

Re: Pažravý algorytmus.

Príspevok od používateľa Pencooo »

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
Hardcore addict
Používateľov profilový obrázok
Príspevky: 8223
Registrovaný: 27 máj 2009, 20:42
Bydlisko: Bratislava
Kontaktovať používateľa:

Re: Pažravý algorytmus.

Príspevok od používateľa harrison314 »

skusim to naisat s pameti

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;
}

skontroluj to ci to ide, momentalne nem nic co preklada Javu
Pencooo
Novice
Novice
Príspevky: 8
Registrovaný: 23 jan 2013, 13:34

Re: Pažravý algorytmus.

Príspevok od používateľa Pencooo »

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
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Re: Pažravý algorytmus.

Príspevok od používateľa audiotrack »

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
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()

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.
Pencooo
Novice
Novice
Príspevky: 8
Registrovaný: 23 jan 2013, 13:34

Re: Pažravý algorytmus.

Príspevok od používateľa Pencooo »

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
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Re: Pažravý algorytmus.

Príspevok od používateľa audiotrack »

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
Pencooo
Novice
Novice
Príspevky: 8
Registrovaný: 23 jan 2013, 13:34

Re: Pažravý algorytmus.

Príspevok od používateľa Pencooo »

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
Hardcore addict
Používateľov profilový obrázok
Príspevky: 8223
Registrovaný: 27 máj 2009, 20:42
Bydlisko: Bratislava
Kontaktovať používateľa:

Re: Pažravý algorytmus.

Príspevok od používateľa harrison314 »

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ť
Ja som vravel ze syntax si uz nepametam,
zavolas ju tak ze das nazov triedy v ktorej ju mas , bodka, CountOfStops a das parametre
Pencooo
Novice
Novice
Príspevky: 8
Registrovaný: 23 jan 2013, 13:34

JAVA - program

Príspevok od používateľa Pencooo »

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?

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;
  
}
       
    }
//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 :))
Pencooo
Novice
Novice
Príspevky: 8
Registrovaný: 23 jan 2013, 13:34

Re: Pažravý algorytmus.

Príspevok od používateľa Pencooo »

pozri prosím novú temu harrison. A dakujem ti:)
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Re: Pažravý algorytmus.

Príspevok od používateľa audiotrack »

Nie, to ty použi starú tému :) A nemáš zač
Napísať odpoveď