Milyen megközelítéssel kéne? (C++)
- van egy max 2000 szóból álló szótárunk (szotar.txt) amiben angol ABC kisbetűiből álló max 16 karakter hosszú szavak vannak, soronként egy.
- van egy kódolási rendszerünk amiben minden betű hozzá van rendelve egy számhoz:
1 - a,b,c,d,e
2 - f,g,h,i,j
3 - k,l,m,n,o
4 - p,q,r,s,t
5 - u,v,w,x,y,z
- kapunk egy max 16 számjegyből álló 1-5 számjegyeket tartalmazó számot
- ki kell írnunk minden olyan szót ami a kapott számból visszafejthető és benne van a szótárban
Pl így néz ki a szótár:
alma
cica
kuka
Mondjuk 1331 a kapott szám. Ez lehet akka, akla, akma ... alma ... eooe.
Ezek közül a szótárban csak az alma szerepel igy ezt kell kiírni.
Gondolom le kéne generálnom a szavakat valahogy aztan megnézni hogy melyik van benne a szótárban de nem tudom hogy kéne pontosan. A szótárból csináljak egy mapet? Hogy generáljam le a lehetséges szavakat?
1. Írsz egy wordToCode(word) függvényt, ami egy szóból kódot csinál.
Például:
"alma" => "1331"
"cica" => "1211"
"kuka" => "3531"
Nem kell lementeni sehová az eredményeket.
2. Megnyitod a szótárt, beolvasod az első sorát: "cica"
2.1. Meghívod ez a wordToCode-ot.
2.2. Eredménye: "1211"
2.3. Egyezik "1331"-gyel? Nem.
3. Megyek a következő sorra.
Én most írtam ide elsőnek.
> amibol 16 szamjegy eseten visszafejtheto egesz pontosan 152587890625 szo (ha a z betut kivesszuk az egyszeruseg kedveert).
Aki ezt írta levezetné hogyan jutott erre az eredményre?
Amúgy ez egyszerűen a kiválogatás programozás tétele, kb. a programozást tanító könyvek 10. oldala.
Adott egy feltétel, ami alapján kiválogatom egy listából az elemeket. A feltétel jelen esetben az hogy f(x) = y, f a függvény ami elvégzi az átalakítást, y pedig a szám amihez hasonlítani kell.
En is azt hittem, hogy #1 le akar generalni minden lehetseges szot, azert nem ertettem a 2 egyenlo listat.
#16: Egy csoportban 5 karakter van, az utolsoban 6 (ezert irtam, hogy vegyuk ki a z-t az egyszeruseg kedveert).
Igy 16 szamjegynel elso helyre valaszthatunk 5 karakter kozul, masodik helyre szinten 5 karakter kozul es igy tovabb a 16. helyig. Ez 5^16 kombinacio.
> Igy 16 szamjegynel elso helyre valaszthatunk 5 karakter kozul, masodik helyre szinten 5 karakter kozul es igy tovabb a 16. helyig. Ez 5^16 kombinacio.
Okés, köszi!
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
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!