Kezdőoldal » Számítástechnika » Programozás » Hogyan oldanátok meg az...

Hogyan oldanátok meg az alábbi feladatot?

Figyelt kérdés
Készítsünk programot, amely meghatározza n db egész szám legkisebb közös többszörösét!

2022. okt. 12. 17:08
1 2 3
 11/26 A kérdező kommentje:
Sikerült prímtényezőkre bontanom az n db egész számot, de hogy a legkisebb közös többszörösüket meghatározzam ebből, az már nem megy. Olyan sok adatot kell átgondolnom, hogy nem megy.
2022. okt. 15. 10:28
 12/26 anonim ***** válasza:
56%

Le van irva huszmillio helyen, hogy kell ket szam legkisebb kozos tobbszoroset kiszamolni, tele van a net kesz algoritmussal ra. Tessek: [link]

N db szam legkisebb kozos tobbszorosehez meg csak vegig kell iteralnod a szamokon.

2022. okt. 15. 10:41
Hasznos számodra ez a válasz?
 13/26 A kérdező kommentje:
Nem kettő számról van szó, hanem n darabról. Ha csak végig kell iterálni a számokon, akkor miért nem látok itt egy pontos megoldást? Szerintem senki nem tudja megoldani.
2022. okt. 15. 11:05
 14/26 anonim ***** válasza:

Jah, senki nem tudja megoldani a vilagon.

[link]

2022. okt. 15. 11:26
Hasznos számodra ez a válasz?
 15/26 anonim ***** válasza:

Ha megvannak a prímtényezők, akkor 2 szám lkkt-hez összeszorzod azokat, ami valamelyik szám prímtényezője (halmazok uniója)


a,b,c szám lkkt-je pedig úgy kapod, hogy a és b lkkt-t kiszámolod, majd az így kapsz egy x számt, és kiszámolod lkkt(x,c)-t


vagyis lkkt(a,b,c) = lkkt(c, lkkt(a,b))

És ezt lehet tetszőleges n számig

2022. okt. 15. 17:36
Hasznos számodra ez a válasz?
 16/26 anonim ***** válasza:
0%

Pythonban van egy megoldásom. Nem teszteltem agyon, de működni látszik.


Látom, hogy a kulcsszavak alapján Pascalban kellene, ezért meg merem osztani. :)


[link]

2022. okt. 15. 18:27
Hasznos számodra ez a válasz?
 17/26 anonim ***** válasza:
45%

Tegyük fel, hogy KÉT szám legkisebb közös többszörösét ki tudjuk számolni. (Jelüljük most itt a, b legkisebb közös többszörösét [a, b]-vel.


A feladat persze akárhány számra vonatkozik.


[x₁, x₂, x₃, x₄, x₅, x₆, x₇, x₈] = ?


Három tételt használjunk föl ahhoz, hogy az akárhány számra vonatkozó legkisebb közös többszöröst visszavezessük a két számra vonatkozó legkisebb közös többszörösre.


[x₁, x₂, x₃, x₄, x₅, x₆, x₇, x₈] = [[[[[[[x₁, x₂], x₃], x₄], x₅], x₆], x₇], x₈]


az elfajuló esetek miatt pedig még két tételt vegyünk hozzá:


[] = 1

[x] = x


vagyis a nulla darab számra vonatozóan formálisan az 1, eredményt tekintsük, mint elfajuló esetet, egyetlen számra vonatkzóan pedig magát a számot.


Úgy is mondhatnám, hogy a legkissebb közös többszörös mint művelet egységelemes félcsoportképző művelet lehetne, az asszociativ tulajdonsággal, és az 1-gyel mint neutrális elemmel.


A gyakorlat terén ez azt jelenti, hogy már ciklussal meg lehet oldani.


legyen egy cikluson kívüli változó a lkktN. Ennek adjuk az 1 kezdőértéket. Ezután egy cikluson pörgessünk végig az N darab számon, és mindegyikkel ,,műveletezzük össze'' a külső változót:


Ciklus k := 1-től N-ig, a ciklusmagban pedig lkktN := [lkktN, xₖ]


Tehát a megoldás:


Függvény [x₁, x₂, x₃,... xₙ] kiszámolására:

lkktN := 1

Ciklus k := 1-től N-ig, a ciklusmagban lkktN := [lkktN, xₖ]

Visszaadott érték: lkktN


Most már csak a párban, a számpárra működő [a, b] legisebb közös többszörös képző függvyényt kell megírni.

2022. okt. 16. 03:23
Hasznos számodra ez a válasz?
 18/26 anonim ***** válasza:
0%

Ez pedig pl. mehet az euklideszi algoritmussal,

Ehhez először egy pillanatra fogalkozzunk egy másik fogalommal, egy ,,társfogalommal'', a legnagyobb közös osztóval.


jelölje az a, b szám legnagyobb közös osztóját (a, b)


a leglényegesebb összefüggés, amit kihasználhatunk, az alábbi képlet:


(a, b) * [a, b] = a * b


vagyis ez alapján


[a, b] = a * b / (a, b)

2022. okt. 16. 03:26
Hasznos számodra ez a válasz?
 19/26 anonim ***** válasza:
0%

Tehát most már a programunk egy további függvénnyel bővülhet. Valahogy így:


Függvény lkktN kiszámolására:

tmp := 1

Ciklus k := 1-től N-ig, a ciklusmagban tmp := lkkt2(tmp, xₖ)

Visszaadott érték: tmp



Függvény lkkt2(a, b) kiszámolására:

Ha a = 0 vagy b = 0, adj vissza 0-t, különben pedig:

Visszaadott érték: a * b / lnko2(a, b)

2022. okt. 16. 03:46
Hasznos számodra ez a válasz?
 20/26 anonim ***** válasza:
33%

Most akkor már csak lnko2 függvény megírása van hátra, vagyis két adott szám legkisebb közös többszörösének kiszámítása. Ez már mehet az euklideszi algoritmussal:


[link]


de mehet akár a ,,hagyományos'' módon is, a prímtényezőből való összerakással.

2022. okt. 16. 03:54
Hasznos számodra ez a válasz?
1 2 3

Kapcsolódó kérdések:




Minden jog fenntartva © 2025, 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!