Permutations-Generator

  • Hi,

    keine Ahnung wofür mans brauchen könnte, aber ich stells trotzdem mal rein :D:

    [autoit]

    dim $s, $i, $len, $file, $left, $right
    dim $von = InputBox("Start","Von:")
    dim $bis = InputBox("Ende","Bis:")

    [/autoit][autoit][/autoit][autoit]

    perm($bis)

    [/autoit][autoit][/autoit][autoit]

    func perm($s)
    $file = FileOpen("test.txt",1)

    [/autoit][autoit][/autoit][autoit]

    For $i = $von to $s
    if permtest($i) Then
    FileWriteLine($file,$i & @CRLF)
    EndIf
    Next

    [/autoit][autoit][/autoit][autoit]

    FileClose($file)
    ShellExecute("test.txt")
    EndFunc

    [/autoit][autoit][/autoit][autoit]

    func permtest($line2)

    [/autoit][autoit][/autoit][autoit]

    $str2 = $line2
    $len = stringlen($str2)

    [/autoit][autoit][/autoit][autoit]

    while $str2
    $left = stringmid($str2,1,1)
    $right = stringmid($str2,2)

    [/autoit][autoit][/autoit][autoit]

    if StringInStr($right,$left) Then
    ;or StringInStr($right,0)
    $str2 = True
    ExitLoop
    ElseIf $str2 = "" Then
    $str2 = False
    ExitLoop
    Else
    $str2 = $right
    EndIf

    [/autoit][autoit][/autoit][autoit]

    WEnd

    [/autoit][autoit][/autoit][autoit]

    if $str2 = True Then
    return 0
    else
    return $line2
    EndIf

    [/autoit][autoit][/autoit][autoit]

    EndFunc

    [/autoit]

    Simon nörgelt, Simon nervt - aber Simon verbessert die Welt. Glaubt er.

  • Nett, du läufst also alle Zahlen durch und schaust, ob Ziffern mehrmals vorkommen.
    Permutationen erzeugt man aber besser, indem man die einzelnen Ziffern vorgibt und dann per Algorithmus die Permutation erstellt, wie z.B. in _ArrayPermute.

    Einmal editiert, zuletzt von progandy (22. Juni 2011 um 14:15)