Kombi's

  • Ich habe sieben Würfel. Welche Kombinationsmöglichkeiten kann ich damit alle erstellen. Das ist die Frage und die Lösung soll in eine Textdatei geschrieben werden.

    Hat jemand eine Idee, wie man dieses umsetzen kann? Denke da an Array, aber da bin ich mir nicht ganz sicher ob das der richtige Weg ist !?!

    LG und bald ist X-MAS.

    L I N A

    Lieben Gruß,
    Alina

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Geheime Information: ;)
    k3mrwmIBHejryPvylQSFieDF5f3VOnk6iLAVBGVhKQegrFuWr3iraNIblLweSW4WgqI0SrRbS7U5jI3sn50R4a15Cthu1bEr

    Einmal editiert, zuletzt von Alina (22. Dezember 2009 um 20:27)

  • eine rein rechnerische Lösung wäre ja langweilig

    interessanter wäre die "Tabelle / Array" selber zu füllen

    2 kleine Ansätze:

    "Würfeln" lassen und die Ergebnisse in eine Variable -> Zahl packen und diese ins Array schreiben wenn sie nicht schon vorhanden ist

    z.B.
    5236511
    1342541
    4423451
    4312234
    ...

    oder noch lustiger: alle 7 stelligen Zahlen runterzählen und ins Array schreiben

    also z.B. von 6666666 bis 1111111

    anschliessend alle Zahlen löschen, die 0, 7, 8, oder 9 enthalten *G*

    :rock:

    Zitat

    Laughing Man

    "I thought, what I'd do was, I'd pretend I was one of those deaf-mutes"

  • Wenn ich in der Schule aufgepasst habe, wären das ja 6^7 Möglichkeiten oder?
    Das wären dann in einer Zahl 117649 Möglichkeiten 8|
    Das wird dann aber ein schönes Array. Gibt es da nicht irgendwo Grenzen oder war das nur bei Variablen Größen?

    MfG
    Der_Doc

    • Offizieller Beitrag

    Wenn ich in der Schule aufgepasst habe, wären das ja 6^7 Möglichkeiten oder?
    Das wären dann in einer Zahl 117649 Möglichkeiten 8|
    Das wird dann aber ein schönes Array. Gibt es da nicht irgendwo Grenzen oder war das nur bei Variablen Größen?

    MfG
    Der_Doc

    Morsche der Doc.
    Dein Ergebnis stimmt aber nicht ganz. 6^7 = 279936
    7^6 = 117649

  • Nein. Es sind 924 "gültige" unterschiedliche Kombination möglich.

    Ich grübel nun schon seit mehreren Stunden und weiter als bis

    [autoit]


    MsgBox(0,"",_Combi_Total(7,6))
    Func _Combi_Total($wa,$sa)
    ; http://www.murderousmaths.co.uk/books/unknownform.htm
    Local $1 = 1, $2 = 1, $3 = 1
    For $i = 1 to $wa+$sa-1
    $1 *= ($wa+$sa-$i)
    Next
    For $i = 1 to $wa-1
    $2 *= $wa-$i
    Next
    For $i = 0 To $sa-1
    $3 *= $sa-$i
    Next
    Return $1/($2*$3)
    EndFunc

    [/autoit]

    um dir schonmal die Anzahl der Möglichen Kombinationen zu geben bin ich nicht gekommen.
    Der Schlüssel liegt in der _ArrayCombinations(). Ich bekomme sie nur nicht umgeschrieben, sodass sie so funktioniert wie ich es will. Beispiel: wir haben einen $array[42] (7 Würfel x 6 Seiten). _ArrayCombinations soll nun kombinieren. Aber nicht einen Würfel untereinander. Die ganzen Möglichkeiten nachher durchzugehen, um sie aus dem Array zu löschen ist ineffizient! Wenn man zb: 1800 x 1800 Elemente durchgehen muss, dauert das ewig (alles schon getestet)

  • Hi,

    alle Kombis in Text File:

    [autoit]


    #include <file.au3>
    $seiten = 6
    ToolTip ("Ermittlung aller Würfelkombis. Bitte warten....")
    $file = FileOpen ("c:\kombi.txt", 1)
    For $a = 1 To $seiten ; Würfel 1
    For $b = 1 To $seiten ; Würfel 2
    For $c = 1 To $seiten ; Würfel 3
    For $d = 1 To $seiten ;Würfel 4
    For $e = 1 To $seiten ; Würfel 5
    For $f = 1 To $seiten ; Würfel 6
    For $g = 1 To $seiten ; Würfel 7
    FileWriteLine ($file, $a & $b & $c & $d & $e & $f & $g)
    Next
    Next
    Next
    Next
    Next
    Next
    Next
    FileClose ($file)
    ToolTip ("")
    ;ShellExecute ("c:\kombi.txt")
    MsgBox (0,"",_FileCountLines ("c:\kombi.txt") & @CRLF & 6^7)

    [/autoit]

    ;-))
    Stefan

  • Danke, danke, das reicht.

    Habe mir aus den tausenden Kombinationen die besten rausgesucht.

    LG, Lina.

    Lieben Gruß,
    Alina

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Geheime Information: ;)
    k3mrwmIBHejryPvylQSFieDF5f3VOnk6iLAVBGVhKQegrFuWr3iraNIblLweSW4WgqI0SrRbS7U5jI3sn50R4a15Cthu1bEr