Kezdőoldal » Számítástechnika » Programozás » Hogyan lehet 1 ciklussal...

Hogyan lehet 1 ciklussal megoldani az alábbi feladatot?

Figyelt kérdés
Adva van az értékpapírok értékei egy tömbben. A tömb meghatározza, hogy hanyadik percben mennyit ér az értékpapír dollárban. Írjunk egy függvényt PHP-ban, ami meghatározza, hogy 1 vétellel és 1 eladással mennyi a lehető legnagyobb profit! A függvény paramétere a tömb. Eladás csak vétel után történhet. Azonos időben nem történhet eladás vagy vétel. Meg lehet oldani 1 ciklussal? A tömb adott, feltölteni nem kell. Példatömb: [10,7,8,9,11,6,5]

2017. júl. 13. 14:45
1 2
 1/11 anonim ***** válasza:
49%

Meg lehet oldani 1 ciklussal?

Meglehet


Hogyan lehet 1 ciklussal megoldani az alábbi feladatot?

Cache-eléssel:

- mi volt az eddigi legnagyobb

- mi volt az eddigi legkisebb, ami a legnagyobb előtt volt időben

tehát pl. a 6-ot és 5-t nem fogadjuk el, mert ott negatívba mennénk nyereségileg.


Innentől a tiéd. :) Feltett kérdésekre válaszoltam :D

2017. júl. 13. 15:40
Hasznos számodra ez a válasz?
 2/11 A kérdező kommentje:
Szerintem ez nem 1 ciklus. Azt állítod, hogy az 5 és a 6 nem lehet. Márpedig az eredménynek 6-nak kell lennie.
2017. júl. 13. 16:25
 3/11 A kérdező kommentje:
11-5=6
2017. júl. 13. 16:26
 4/11 A kérdező kommentje:
Bocs elírtam: 7-11=4
2017. júl. 13. 16:56
 5/11 A kérdező kommentje:
azaz abs(7-11)=4
2017. júl. 13. 16:56
 6/11 anonim ***** válasza:

[10,7,8,9,11,6,5]


Igen. Így van 5 és 6 kizáró.

Ha nem rendelkezel részvénnyel, akkor meg kell venni ugyebár, hogy eladhassad. A leírás 1 szóval se mondta, hogy rendelkezünk.

Tehát ha megveszed bármelyik pillanatban, és az utolsóban eladod a profitod negatív.


10-ért veszed 5-ért eladod: -5

6-ért veszed 5-ért eladod: -1

és sorolhatnám.


Feladat: "1 vétellel és 1 eladással mennyi a lehető legnagyobb profit!"

2017. júl. 13. 17:12
Hasznos számodra ez a válasz?
 7/11 sharkxxx ***** válasza:

A rendes megoldáshoz rekurzív függvényre van szükség.

A rekurzív függvényben van egy ciklus is.


Itt van a pascal forráskódja:

[link]

2017. júl. 13. 21:24
Hasznos számodra ez a válasz?
 8/11 A kérdező kommentje:
Az önhívó függvénnyel az a baj, hogyha meghívja még egyszer a függvényt, akkor újra átmegy a tömbön. A tömbön egyszer lehet végigmenni ciklusváltozó segítségével.
2017. júl. 14. 09:34
 9/11 A kérdező kommentje:
Elsőnek: a második feltételt ki tudnád fejteni? Mi volt az eddigi legkisebb, ami a legnagyobb előtt volt időben?
2017. júl. 14. 09:38
 10/11 anonim ***** válasza:

Meg lehet csinálni. Mire van ehhez szükséged?

Számon kell tartanod:

- Az eddigi legkisebb értéket (min_value)

- Az eddigi legnagyobb profitot. (max_profit) (és az ehhez tartozó vétel-, illetve adás időpontot, ha ezt is vissza akarod adni).


A módszer:

- Előszöris beállítod a min_value értékét a tömb első elemére, a max_profitot meg 0-ra (feltételezhető, hogy ha nem tudunk nyereséget produkálni, inkább nem is veszünk részvényt, így 0-nál sosem lesz kisebb a végeredmény)

- Eztán végigmész a tömbön (célszerűen a második értéktől kezdve), és megnézed, hogy:

1. Ha kisebb az értéke min_value-nál, akkor beállítod a min_value értékét a tömb aktuális elemére.

2. Ha nagyobb nála, akkor megnézed, hogy a különbségük nagyobb-e max_profit-nál. Ha igen, akkor beállítod a max_profit értékét erre a különbségre.


A tömb végére érve megkapod a maximális profitot ami lehetséges (valamint a minimális értéket a tömbben).

2017. júl. 14. 13:21
Hasznos számodra ez a válasz?
1 2

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!