Hogyan oldjam meg ezt a feladatot?
Sziasztok!
Nagyon régen tanultam programozsát, most hobbi szinten tanulom újra, még nagyon az elején járok a felfrissítésnek, és egy olyan algoritmust próbálok kiagyalni, ami biztosan nagyon egyszerű, de nem bírok győzni fölötte. Most PHP-t tanulok (korábban Pascalt), de nem feltétlenül egy hibátlan kódra van szükségem, jöhet általánosságban egy algoritmus is, vagy néhány logikai támpont, hogy hogyan építhetném fel.
A lényeg röviden. Adott három változó:
- $tomb = egész számokat tartalmazó tömb, bármennyi elemet tartalmazhat, melyek 1-től 10-ig terjednek.
- $darab = egész szám
- $osszeg = egész szám
A feladat az volna, hogy állítson össze egy $darab darabból álló sorozatot $tomb elemeiből úgy, hogy a sorozat számainak összege $osszeg legyen.
Tíz évvel ezelőtt nem ment rosszul a programozás, nagyon szerettem, de úgy látom, jobban berozsdásodtam, mint hittem, mert azt sem tudom, hogy fogjak neki.
Tudom, hogy Nektek ez egyszerű.. :))
Nagyon várom a válaszokat!
Pedig jó lenne.. :))
Van egy olyan megoldásom, hogy generáltatok véletlenszerűen egy $darab számú sorozatot, és megnézem, hogy a kapott számok összege megfelelő-e. Ha nem, akkor újragenerálja, és addig ismétel, amíg nem megfelelő.
Ez elvégzi, amit kell, de elég buta megoldásnak tartom. Hogyan lehet ezt elegánsabban megoldani?
Ha jól értem akkor pl:
$tomb = array( 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 );
$darab = 2;
$osszeg = 10;
$a = $tomb[1]*$tomb[4];
if( $a == $osszeg ){
print $a;
}
Lehet hogy nem jól értettem, egy kicsit írd le részletesebben hogy milyen sorozatokat kell öszseállítani.
Nem egészen így gondoltam.
A tömb elemei véletlenszerű számokból állnak 1-től 10-ig.
Vegyünk konkrét példát:
$tomb = array(2,6,9,5,5,4,1,8,10,3,7)
$darab = 21;
$osszeg = 95;
$tomb elemeiből véletlenszerűen összeállít egy 21 elemből álló számsorozatot, úgy, hogy a kapott sorozat elemeinek összege egyenlő legyen $osszeg értékével.
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
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!