Kezdőoldal » Számítástechnika » Programozás » Hogyan oldjam meg ezt a...

Hogyan oldjam meg ezt a feladatot?

Figyelt kérdés

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!


2010. dec. 16. 21:12
 1/5 A kérdező kommentje:
*programozást
2010. dec. 16. 21:17
 2/5 A kérdező kommentje:

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?

2010. dec. 16. 21:37
 3/5 anonim ***** válasza:

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.

2010. dec. 16. 22:05
Hasznos számodra ez a válasz?
 4/5 A kérdező kommentje:

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.

2010. dec. 16. 22:21
 5/5 A kérdező kommentje:
Közben rájöttem, hogy egészen jól működik, amit írtam. A kérdésem mostmár csak az volna, hogy tényleg ilyen egyszerű a megoldás, hogy legeneráltatok egy sorozatot, aztán ha nem jó, ismét, egészen, amíg jó lesz, vagy van erre valami szebb megoldás?
2010. dec. 17. 08:40

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!