Thema: Alle möglichen Kombinationen durchlaufen

Tach erstmal

also ich will alle möglichen Kombinationen einer Zeichenkette durchlaufen (a-z, nur klein).

Ich hab ne Mindest- und eine Maximalanzahl an Zeichen.

also z.B von
aaa
aab
aac
...
zzz
aaaa
aaab
...
zzzz

Wie mache ich das am Besten ???

Bye, Ti-Sch big_smile

2

Re: Alle möglichen Kombinationen durchlaufen

N'abend

sone ähnliche Frage gab's mal im perl-Forum.
Da hatt' ich's so gemacht:

</font><blockquote><font size="1" face="Verdana, Helvetica, sans-serif">Code:</font><hr /><pre style="font-size:x-small; font-family: monospace;">$="n";

sub perm
{local($s,$l,$n)=@_;
  sub r{my($a,$o)=@_; $o++<$l?(&{sub{r($a.$_, $o) for split //,$s}}):((push @$n,$a),return)};
  &r();
};

perm('qwert',5,'P5');

for(0..$#P5){print $P5[$_]};[/code]</blockquote><font size="2" face="Verdana, Helvetica, sans-serif">Ob's das Beste ist, weiß ich nicht, alle möglichen
Kombinationen von a-z sind jedenfalls ne ganze Masse.

gruß

matho

3

Re: Alle möglichen Kombinationen durchlaufen

Tach erstmal

Hi ...

sorry, ich kann kein Perl ...  <img border="0" title="" alt="[Enttäscht]" src="images/icons/frown.gif" />

Hat sich ausserdem schon erledigt, aber trotzdem danke

Bye, Ti-Sch big_smile

4

Re: Alle möglichen Kombinationen durchlaufen

Hat ja nix mit perl an sich zu tun:

</font><blockquote><font size="1" face="Verdana, Helvetica, sans-serif">Code:</font><hr /><pre style="font-size:x-small; font-family: monospace;"><html>
<head>
<script>
function P(s,l)
{P.p=[];
  function R(p,z)
  {if(++z>l){P.p.push(p); return};
   for(i in S=s.split(''))R(p+S[i],z);
  };
  R('',0);
  with(document){write(P.p.toString().replace(/,/g,'<br>')); close()};
};
</script>
</head>
<body onload="P('(|:-)',5)">
</body>
</html>[/code]</blockquote><font size="2" face="Verdana, Helvetica, sans-serif">In perl geht's halt ein bissel fixer.

gruß

matho

kleiner Zusatz:

so geht es natürlich schneller:

</font><blockquote><font size="1" face="Verdana, Helvetica, sans-serif">Code:</font><hr /><pre style="font-size:x-small; font-family: monospace;"><html>
<head>
<script>
function P(str,trin,trout,len)
{P={p:[], q:str.split(trin)};
  function R(r,z)
  {if(++z>len)return P.p.push(r);
   for(i in P.q)R(r+P.q[i]+trout, z);
  };
  x=new Date().getTime();
  R('',0);
  y=new Date().getTime();
  with(document){write(y-x+' milliseconds<p></p>', Math.pow(P.q.length,len), '<p></p>', P.p.toString().replace(/,/g,'<br>')); close()};
};
</script>
</head>
<body onload="P('dornrößchen war ein schönes kind',' ',' ',5)">
</body>
</html>[/code]</blockquote><font size="2" face="Verdana, Helvetica, sans-serif">Recht intressant sind die browser-Unterschiede die
Zeitmessung betreffend ( insbesondre IE versus NN7)
 
  <small>[ 23-11-2002, 12:58: Beitrag editiert von: matho ]</small>

5

Re: Alle möglichen Kombinationen durchlaufen

iich hab hier mal ne JAVA-Umsetzung mit variablen Wahlmöglichkeiten(auswahlm) ( also [a,b,c,d,..] und den Wiederholungen(wahlwh)
möglichleiten(anzahl aller möglichen Kombinationen) 

ergebnis[] ist der Array, wo die Werte nachher drine stehen, allerdings getrennt von einnander, um damit rumrechnen zu können oder wie auch immer <img src="/forum/images/graemlins/tongue.gif" alt="" />

inhalt[] enthält die Werte, die entsehen sollen, also [a,b,c,d]

 for (int i = 1; i <= möglichkeiten;i++) {
 for (int j = 1; j <= wahlwh;j++) {
 speicher[j-1] = (int)((i-1)/(Math.pow(auswahlm,(j-1))));         
 speicher[j-1] = speicher[j-1]%auswahlm;
 ergebnis[j-1] = inhalt[speicher[j-1]];
 }
 hier ist der Ergebnisarray ergebnis[] dann mit einer der Möglichkeiten gefüllt
 }