Hirdetés
- Amazfit Active 2 NFC - jó kör
- Yettel topik
- Samsung Galaxy S24 Ultra - ha működik, ne változtass!
- Samsung Galaxy A56 - megbízható középszerűség
- Xiaomi 13T és 13T Pro - nincs tétlenkedés
- iPhone topik
- Titan 2 Elite néven érkezik egy újabb BlackBerry-szerű Unihertz
- Xiaomi 14T - nem baj, hogy nem Pro
- OnePlus: Settle Down, nem megyünk sehova
- Redmi Note 11 és 11S - biztos alapra jobb építeni
-
Mobilarena

Ú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]
Új hozzászólás Aktív témák
● olvasd el a téma összefoglalót!
- Palit RTX 3070 GamingPro OC hibátlan, Vác, személyes átvétel
- PALIT RTX 5080 GamingPro 16GB - 36 hó garancia
- Karcmentes Fóliás Apple iPhone 16 Pro 128GB White Titanium ! 3Hó Jótállás
- Apple AirPods 4 type-C töltőtokkal, aktív zajkioltással, ANC, fehér (MXP93ZM/A)
- Dell Latitude E7250,12.5",HD,i5-5300U,8GB DDR3,256GB SSD,WIN10, LTE
- Bomba ár! Lenovo ThinkPad T580 - i5-8G I 8GB I 256SSD I 15,6" FHD I HDMI I W11 I Cam I Garancia!
- AKCIÓ! Sony PlayStation VR2 virtuális valóság szemüveg garanciával hibátlan működéssel
- GYÖNYÖRŰ iPhone 13 Pro 128GB Gold-1 ÉV GARANCIA - Kártyafüggetlen, MS4444
- HIBÁTLAN iPhone 14 Pro 256GB Gold -1 ÉV GARANCIA - Kártyafüggetlen, MS3919
- Dell Latitude 3420 - i5 1135G7 ,16GB RAM, SSD, jó akku, EU bill., számla, 6 hó gar
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Cég: Laptopműhely Bt.
Város: Budapest


De azért persze szoktam használni.


