Ik wil iets lastigs bereiken, namelijk een functie die als generator fungeert om van alle karakters die zich in een string bevinden de mogelijke combinaties te genereren. Deze script gebruik ik lokaal via Terminal (OSX) met een ini_set memory override, vanwege het geheugengebruik.
Momenteel probeer ik wat dingen met PHP, maar Python/PERL mogelijkheden hoor ik ook graag. Misschien dat deze zelfs beter geschikt zijn voor zulke zware loops.
Oké, het idee;
• Het begint met een string die bepaald welke karaktercombinaties mogelijk zijn.
• Vervolgens wordt de mogelijkheden reeks gelimiteerd naar wens door een $min en een $max
<?php
$min = 3;
$max = 5;
$str = "abcd12";
?>
Met deze bron ben ik begonnen: 001
Het idee is met deze begin variabelen dat alle mogelijke combinaties op basis van de $min en $max variabelen worden gegenereerd. Een output voorbeeld:
a a a
a a b
a a c
a a d
...
2 a a
2 a b
2 a c
2 a d
...
a a a a a
a a a a b
a a a a c
a a a a d
...
2 a a a a a
2 a a a a b
2 a a a a c
...
2 2 2 2 x
2 2 2 2 y
2 2 2 2 z
2 2 2 2 2
Iemand ervaring met deze lastige structuur? Wat de aangegeven bron doet is al redelijk op de goede weg, alleen elke keer als ik er aan gaan zitten aanpassen raak ik totaal de weg kwijt door de complexiteit. Daarnaast programmeer/script ik ook niet zo vaak meer, wat ook niet echt helpt ;-).
Een volledig alfabet van 26 letters zou 26 ^ 26 (6156119580207157310796674288400203776) resultaten bieden. Dit is onrealistisch, echter met de limiters; "min" en "max" zou ik graag m'n eigen bereiken kunnen bepalen. Dan nog zijn de resultaten in de honderd-duizenden, maar dat is juist het doel van de informatievergaring. Ik gebruik de Bash parameter zo dat de output in een platte tekstbestanden komt;
---------------
erwin$ php z_gen.php > z_gen_output.txt
----------
Ik hoop dat iemand me kan helpen
[size=xsmall]Toevoeging op 31/05/2011 19:46:58:[/size]
Heb het al opgelost doormiddel van Perl :-)