-
Fototrend

Új hozzászólás Aktív témák
-
Jester01
veterán
Először rendezd abc sorrendbe a beadott szót. Ez gondolom menni fog.
Utána csinálj egy tömböt amiben jelzed, ha egy betűt már felhasználtál.
Alapesetben ez legyen csupa igaz érték (true/1).
Egy másik tömbben pedig a permutált indexeket gyűjtöd, ez alapesetben egyesével nő.
Rögvest írd is ki, mert ez lesz a legelső permutáció.
A következőt pedig úgy kapod meg, hogy az utolsó karaktertől elindulsz és mindig megkeresed a következő fel nem használt betűt. Ha már nincs ilyen, akkor lépsz eggyel visszább (ha nem tudsz, akkor kész vagy). Amint találtál egyet, ismét elindulsz előre és szépen veszed az első fel nem használt betűt.
Igy valahogy:for(i = len - 1; i >= 0; i--)
{
int current = indices[ i ];
used[current] = 0;
current = findnextunused(used, current + 1, len);
if (current < len)
{
indices[ i ] = current;
break;
}
}
if (i < 0)
{
break;
}
indices[++i] = findnextunused(used, 0, len);
for(i++; i < len; i++)
{
indices[ i ] = findnextunused(used, indices[i - 1] + 1, len);
}
A findnextunused függvényem második paramétere a keresés kezdőpozíciója.
A megtalált betűt be is jelöli, hogy használatban van.
Biztos van egyszerűbb módja, mindig is utáltam a kombinatorikát
Emitter: a rekurziót is utálom
De azért persze szoktam használni.
MOD: [ i ]
[Szerkesztve] -
emitter
őstag
a sorba rendezésre itt van egy, de ez csak számokat rak sorba, mingyá előkotrom a stringes verziót is
[link]
a betűk megkeverését (amit n! féleképp tudsz megtenni) szvsz vhogy rekurzióval kell (érdemes ) megoldani, a baj csak az, h nem tudom hogyan
majd vki okosabb megmondja a tutit
for ciklusokkal is lehetne, de ekkor szvsz annyi ciklus kéne amennyi a string hossza, ez a megoldás márpedig enyhén ronda
Új hozzászólás Aktív témák
● olvasd el a téma összefoglalót!
- Akciós áron, Lenovo ThinkPad X13 Gen 2 - 16GB RAM, 512GB SSD, érintőkijelző, Yoga funkció
- Asus TUF Gaming A15 AMD Ryzen 7-7735HS/16GB RAM/512GB SSD/RTX4060VGA/15,6" 144Hz kijelző
- DDR4 -es 8GB -os notebook memória eladó
- HP EliteDesk 800 G3 PC, I5-7500, 8GB DDR4, 256GB SSD, Win 11, Számla, garancia ( olvasd végig)
- HP EliteDesk 800 G3 MT, PC, I7-7700, 8GB DDR4, 256GB SSD, Win 11, Számla, garancia ( olvasd végig)
- GYÖNYÖRŰ iPhone 14 Pro Max 256GB Space Black-1 ÉV GARANCIA - Kártyafüggetlen, MS4143
- Keresünk Galaxy S24/24+/S24 Ultra/S24 FE
- Honor 200 Lite 256GB, Kártyafüggetlen, 1 Év Garanciával
- Samsung Galaxy A17 5G 128GB, Kártyafüggetlen, 1 Év Garanciával
- 208 - Lenovo LOQ (17IRB8) - Intel Core i7-13700F, RTX 4060 (ELKELT)
Állásajánlatok
Cég: Central PC számítógép és laptop szerviz - Pécs
Város: Pécs
Cég: Laptopműhely Bt.
Város: Budapest


De azért persze szoktam használni.
majd vki okosabb megmondja a tutit

