Van olyan matematikai képlet, vagy eljárás, amivel meg lehet oldani ezt?
tegyük fel, hogy van egy elég nagy számunk (kb 10 jegyű), és tudjuk róla, hogy maximum négy féle egyjegyű szám szorzataiként megkaphatjuk ezt a számot úgy, hogy bármennyiszer felhasználhatjuk a számokat (pl: 2x3x2x4x5x3x4x4x4x2x3x5x5x5x5x5x4=2^3x3^3x4^5x5^6=3456000000). adott a számunk, nem tudjuk róla, hogy melyik max. négy szám segítségével kaphatjuk meg, nem tudjuk, hogy ezek hányszor szerepeltek. ebben az esetben ki tudjuk számolni mindig, hogy mi volt ez a négy szám, és hogy hányszor kell venni?
eddig csak arra jutottam, hogy a prímtényezőshöz hasonló felbontással megpróbálom lebontani a számot, de ekkor nagyon sok esetet végig kellene próbálgatni.
ha bármilyen ötleted van írd :)
az egyik ilyen szám amivel ki akarom számolni a 429981696, itt lehet tudni hogy csak három féle számot használ, de a többinél lehet három is és négy is
Ha jól értem a feladatot, akkor már ennél a példánál sem megy, tehát NEM tudjuk egyértelműen kiszámolni mindig.
429981696 = 2^16*3^8.
Így a (2 vagy 4 vagy 8) és (3 vagy 9) számok szerepelhetnek a szorzat alakban (a „vagy” itt a logikai megengedő vagy). Tehát a 3-féle szám lehet a
2, 3, 9: 2^16*9^3*3^2 = 2^16*9^2*3^4 = 2^16*9^1*3^6,
4, 3, 9: 4^8*9^3*3^2 = 4^8*9^2*3^4 = 4^8*9^1*3^6,
4, 8, 9: 8^2*4^5*9^4 = 8^4*4^2*9^4.
meg még egy csomó minden más felbontás is lehetséges, ezeket így fel lehet sorolni.
Persze van olyan szám, ahol ez egyértelműen megtehető.
(Ha félreértettem a feladatot, akkor bocsánat!)
A prímtényezős felbontás az első lépés. Minden prímnél csak a kitevők érdekelnek. Mivel csak egyjegyű számokról van szó, csak a 2, 3, 5, 7 jön szóba - ennél nagyobb prímosztó jelenléte kizárja a megoldást. Tehát innentől minden szám felírható egy négyessel, ami ezen négy prím kitevőit jelöli. Eszerint:
1 - (0,0,0,0)
2 - (1,0,0,0)
3 - (0,1,0,0)
4 - (2,0,0,0)
5 - (0,0,1,0)
6 - (1,1,0,0)
7 - (0,0,0,1)
8 - (3,0,0,0)
9 - (0,2,0,0)
3456000000 - (13,3,6,0)
429981696 - (16,8,0,0)
Ha két számot szorzol, a vektoraik összeadódnak:
6*8 -> (1,1,0,0) + (3,0,0,0)
48 -> (4,1,0,0).
Tehát nincs más dolgod, mint az egyjegyű számok vektoraiból kikeverni az adott nagy szám vektorát, csak összeadással.
Erre egyébként elég egyértelmű megoldás adódik: a 2, 3, 5, 7 segítségével kihozhatsz bármit, ami elvileg lehetséges.
Ha maximum 3 számjegyet használhatsz, akkor is kihozhatod ezen számjegyekből bármit, aminek nincs meg mind a 4 prímosztója. A példádra, mivel 2^sokadikon*3^sokadikon, ezért a 2 és a 3 elég.
Itt egy nehezebb példa, de még ez is lehetséges, három számjeggyel: 66679200.
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!