Är det någon som kan göra ett script motsvarande som visar alla bokstavskombinationer man kan få av bokstäverna i ett ord!? T.ex om man vill se vilka ord man kan få ur exempelvis "teebra" (>arbete mm), endast bokstavskombinationer som innehåller alla bokstäver behöver visas. Om man kunde ha ett formulär där man skriver i ordet och klickar på "lös" och bokstavskombinationerna som fås sedan visas på nåt bra sätt!?
Det är inte så svårt att räkna ut dessa (permutationer) med en rekursiv funktion, men tänk på att det blir en sjuhelsikes massa kombinationer. Ordet "teebra" ger ju 6*5*4*3*2*1=720 kombinationer.
sub charperm(remainder,accum)
'gunnar liljas, 2000
if len(remainder)=0 then
response.write accum & "<BR>"
else
for i=1 to len(remainder)
charperm left(remainder,i-1) & mid(remainder,i+1),accum & mid(remainder,i,1)
next
end if
end sub
charperm "teebra",""
<%
If Request.QueryString ("visa") = "resultat" Then %>
<a href="default.asp">Sök på nytt ord</a><br><br>
<%
Dim Uteslut(1), MittOrd
Uteslut(0) = "aa"
Uteslut(1) = "bb"
MittOrd = accum
sub charperm(remainder,accum)
if len(remainder)=0 then
For Each Item In Uteslut
If Instr(MittOrd, Item) Then
Response.Write ""
Else
Response.Write accum & "<br>"
End If
Next
else
for i=1 to len(remainder)
charperm left(remainder,i-1) & mid(remainder,i+1),accum & mid(remainder,i,1)
next
end if
end sub
charperm "" & Request.Form("ordet") & "","" %>
<% Else %>
<form method="post" action="default.asp?visa=resultat" name="jlh">
<input type="text" size="20" name="ordet"> <input type="submit" value="OK!">
</form>
<% End If %>
Jag vill att man i "formet" skall skriva in "abba" och sedan skall ditt script skippa alla kombinationer som innehåller aa, bb (enl. min array).
<%
If Request.QueryString ("visa") = "resultat" Then %>
<a href="default.asp">Sök på nytt ord</a><br><br>
<%
charperm Request.Form("ordet"),""
Else %>
<form method="post" action="default.asp?visa=resultat" name="jlh">
<input type="text" size="20" name="ordet"> <input type="submit" value="OK!">
</form>
<% End If
sub charperm(remainder,accum)
Dim Uteslut(1),blnFound
Uteslut(0) = "aa"
Uteslut(1) = "bb"
blnFound=false
if len(remainder)=0 then
For Each Item In Uteslut
If Instr(MittOrd, Item) Then
blnFound=True
Exit For
End If
Next
If Not blnFound Then Response.Write accum & "<br>"
else
for i=1 to len(remainder)
charperm left(remainder,i-1) & mid(remainder,i+1),accum & mid(remainder,i,1)
next
end if
end sub
%>