webForumDet fria alternativet
Logga in / Bli medlem

Lurig LOOP

JavaScript

2 svar · 283 visningar · startad av Sjodahl

Medlem sedan maj 20033 218 inlägg
Trådstart#1

Hej!

Behöver hjälp med en lurig loop.

Har en array som innehåller bokstäverna a-z.
Det jag vill göra är att loopa fram typ.

a
b
c
...
z

aa
ab
ac
...
az

aaa
aab
.....
aba
abb
abc

osv..

Alltså loopa igenom alla kombinationer med 5 tecken långt!

Medlem sedan juni 20053 inlägg
#2

Det enklaste, men också fulaste, är väl att göra fem nästlade loopar. Nu kan jag inte Javascript så bra, men i pseudo-kod/Python:

abc = "abcdef ... z"
combinations = []

for L1 in abc:
   for L2 in abc:
      for L3 in abc:
         for L4 in abc:
            for L5 in abc:
               combinations.append(L1+L2+L3+L4+L5)

Då får du alla kombinationer med fem tecken. Gör samma sak för fyra, tre, två osv. (En nästlad loop per tecken.)

Den snygga, men mer komplexa lösningen -- som jag inte minns riktigt -- är att använda en enda rekursiv funktion.

Medlem sedan maj 20033 218 inlägg
#3

hmm får ta en titt på det, men min tanke har med varit att man behöver en extra loop för varje tecken, men om man inte vet hur många tecken man vill ha ... Men återkommer, har det lite tajt med tid just nu ;)

261 ms totalt · 4 externa anrop · v20260731065814-full.51f67c91
120 ms — deklarationer (db)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)
130 ms — ändringar (db)