Kezdőoldal » Számítástechnika » Programozás » Ezt a szám háromszöges feladat...

Ezt a szám háromszöges feladatot hogy lehetne megoldani PHP nyelven?

Figyelt kérdés

Adott ez a háromszög:


1

2 1

4 1 8

2 2 3 4


A feladat:

Irányítatlan (fentről lefelé vagy lentről fölfelé ugyanaz), az adott

elem alatt közvetlenül álló két elemből az egyiket választva végighaladunk a

háromszögön függőleges irányban. Például:

1 -> 1 -> 8 -> 4, 1 -> 1 -> 1 -> 2


1. feladat

Hány lehetséges út van egy N magas háromszögben?

2. feladat

Írjon parancssori programot a maximális összegű út összegének megtalálása. A

programnak "nagyon nagy" (pl. 50 magas) háromszögekre is hamar (1 sec alatt,

körül) le kell tudnia futni egy mai átlagos gépen. A program a standard

bemeneten kapja a háromszöget, soronként a sorokat (sorhatároló karakter a \n), az

elemek egyetlen szóközzel vannak elválasztva. A program kimenete egyetlen szám

legyen, a maximális összegű út összege.


Odáig eljutottam,hogy multidimenziós tömbben vannak a számok,és két ciklus kell. Fejben persze megvannak az utak,csak nem tudom,hogy kivitelezzem PHP-ban.


Előre is köszönöm a válaszokat!



2018. nov. 13. 21:03
 1/5 anonim ***** válasza:
42%

Az N magas számú útvonalat úgy számolnám ki, hogy összeszoroznám a háromszögek lehetséges útvonalait


tehát ha legalulra akarsz eljutni, akkor 1*2*3 itt a példában, és ha ezt így írod, akkor később bármilyen más módosításnál kijöhet, ha pl mindenhol 3 számod van, akkor is



a másodikra a megoldás, hogy megkeresed minden sorban a legnagyobb számot (esetleg rendezéssel) és azokat összeadod (persze kódból)

1+2+8+4

2018. nov. 13. 21:18
Hasznos számodra ez a válasz?
 2/5 A kérdező kommentje:

Köszi szépen a választ! :)


Az első feladatnál az 1*2*3 hogy jött ki? Nem úgy van,hogy 1*2*3*4? Tehát a sorok száma?

2018. nov. 13. 22:06
 3/5 anonim ***** válasza:

ja, hogy az összes lehetőségek száma kell és nem az X. elemhez?

akkor igen be kell még szorozni, akkor mindet kell

2018. nov. 13. 22:46
Hasznos számodra ez a válasz?
 4/5 anonim ***** válasza:

1, N!

2, Nem elég minden sorban a legnagyobb lehetséges elemet választva végigmenni, ahogy az első írja, az már ennél a példánál is hibás eredményt adna.

Dinamikus programozással kell megoldani, soronként kiszámolod, hogy odáig mennyi a minimális összeg és ezt elmented, a következő sornál ezt használod.

2018. nov. 14. 06:21
Hasznos számodra ez a válasz?
 5/5 anonim ***** válasza:

1. Nem N!, a feladat szerint mindig a közvetlenül alatta álló két elemből kell választani, ergo minden lépésnél két választásod van. N magas háromszögben N-1 lépésed van, tehát a válasz 2^(N-1). Ha ez az analógia átláthatóbb, fogd fel úgy, hogy minden lépésnél fordulhatsz jobbra, vagy balra, és az útvonalak felírhatóak jobb és bal sorozataként (azaz bináris formában).


2. Ennek az egyik legegyszerűbb megoldása, hogy a háromszög minden pontjához kiszámolod az addigi leghosszabb útvonal hosszát. Elindulsz mondjuk a háromszög aljáról, az alsó sornál az út addigi hossza adott, a benne levő értékek. Majd soronként felfelé haladva minden pontnál megnézed, hogy a két alatt levő elem közül melyiknek nagyobb az addigi összesített hossza, és a nagyobbik számot hozzáadva az adott pont értékéhez megkapod a ponthoz vezető leghosszabb út hosszát. Ezt viszed egészen a tetejéig, amikoris a csúcsban megkapod a leghosszabb odavezető út hosszát.

2018. nov. 15. 03:13
Hasznos számodra ez a válasz?

Kapcsolódó kérdések:





Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!