wer hat ahnung von so was???

  • Allgemein

  • neoillusionz
  • 1003 Aufrufe 7 Antworten

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • wer hat ahnung von so was???

    Hi Leute!

    Angenommen ich habe ein passwort das aus den buchstaben
    " abcdefghijklmnopqrstuvwxyz " besteht! Es ist 1 - 7 Zeichen lang , jder buchstabe kann dabei beliegbig oft vorkommen... Nun meine frage: Wieviel kombinationsmöglichkeiten gibt es hierbei???

    ich weis das wenn jeder der 26 buchstaben nur einmal vorkommt das das 26! (26 Fakultät) entspricht! das wären somit 403291461126605635584000000 möglichkeiten!

    Aber mein passwort besteht aus 7 Zeichen wobei jeder buchstabe mehr als einmal vorkommen kann!

    Ich hab die bücher der Kombinatorik gewälzt, bin aber da nicht fündig geworden... Vielleicht haben wir hier ja coder unter uns die sich mit sowas auskennen! Eine formel für die berechnung wäre cool ...

    cya, neoillusionz
  • Nichts leichter als das :cool:

    Wenn du sieben Stellen hast für die es jeweils 26 Möglichkeiten gibt, gilt die einfache Rechnung:

    26^7 = 8.031.810.176

    Das wars auch schon :eek: :D

    Allgemein:
    x = Anzahl der Stellen
    y = Anzahl der Möglichkeiten pro Stelle

    y^x = Möglichkeiten gesamt


    Gruß,
    Commander Keen

    P.S.: Wenn jeder Buchstabe nur einmal vorkommen darf gilt nicht Fakultät, sondern:
    26*25*24*23*22*21*20
    (Für den ersten Buchstaben gibt es 26 Möglichkeiten, für den zweiten 25, für den dritten 24, usw).

    Ergebnis wäre also "nur" 3.315.312.000 und nicht 403.291.461.126.605.635.584.000.000 (das wäre dann logischerweise das Ergebnis für 26 Stellen bei denen jeder Buchstabe nur einmal vorkommen darf).
    Ich habe das Wort "Europa" immer im Munde derjenigen Politiker
    gefunden, die von anderen Mächten etwas verlangten, was sie im
    eigenen Namen nicht zu fordern wagten. [SIZE="1"](Nov. 1876)[/SIZE]
    [SIZE="1"]Otto von Bismarck[/SIZE]
  • stimmt, das mit der fakultät wäre bei den kombinationsmöglichkeiten der 26 buchstaben oder irre ich mich da ?

    Damit wären meine stunden der grübelei ( ich = 15 Jähriger realschuler :D ) auch schon wieder vorbei!

    Danke für die schnelle hilfe, neo


    ###edit:

    Quellcode

    1. 26^1 + 26^2 + 26^3 + 26^4 + 26^5 + 26^6 + 26^7 = 8353082582

    so sähe dan ja die formel aus wenn mein passwort im bereich 1 - 7 Stellen liegt oda ???
  • neoillusionz schrieb:

    stimmt, das mit der fakultät wäre bei den kombinationsmöglichkeiten der 26 buchstaben oder irre ich mich da ?

    ich versteh grad nicht was genau du meinst?!
    aber hab ich ja oben schon geschrieben:
    fakultät is wenn du 26 stellen hast aber jeder buchstabe nur einmal vorkommen darf.

    neoillusionz schrieb:

    Damit wären meine stunden der grübelei ( ich = 15 Jähriger realschuler :D ) auch schon wieder vorbei!
    :D

    neoillusionz schrieb:

    ###edit:

    Quellcode

    1. 26^1 + 26^2 + 26^3 + 26^4 + 26^5 + 26^6 + 26^7 = 8353082582

    so sähe dan ja die formel aus wenn mein passwort im bereich 1 - 7 Stellen liegt oda ???
    das gibts so nicht würd ich mal sagen.
    entweder 26^7 für 7 stellen bei denen jeder buchstabe beliebig oft kommen kann oder eben
    26*25*24*23*22*21*20
    für 7 stellen bei der jeder buchstabe nur einmal vorkommen darf.

    steht aber alles auch schon in meinem ersten post :eek:

    gruß,
    commander keen

    ps. wenn du dazu noch fragen hast komm ins IRC (-> falls du nicht weiß wie: SuFu :cool: ) und qry mich an, dann kann ich dir sicher helfen :hy:

    /edit: ich war mal so nett: "so komm ich ins IRC"-tutorial :)
    Ich habe das Wort "Europa" immer im Munde derjenigen Politiker
    gefunden, die von anderen Mächten etwas verlangten, was sie im
    eigenen Namen nicht zu fordern wagten. [SIZE="1"](Nov. 1876)[/SIZE]
    [SIZE="1"]Otto von Bismarck[/SIZE]
  • oh, das ist aber net ;) ...

    nein, ich meine zum beispiel ein pasword cracker... dort kannst du ihm ja sagen "min chars 1" und "max chars 7" also das dein passwort entweder aus 1 oder 2 oder 3 ... buchstaben besteht! Dort zeigt er mir dan die kombinationen insgesamt an.

    zb. ich weis das mein passwort irgendwo im breich von 1 bis 7 zeichen liegt! Also gehe ich von der maximallänge 7 aus! nun müssen die passwörter die weniger stellen als 7 haben ja auch noch mit berücksichtigt werden ( also ****** ***** **** *** ** * )

    weist du was ich mein???

    ps: mirc wird gerade eingerichtet ;)

    ### edit: Der server ist ausgelastet die 734zigste ;)
  • Ja, ok :)
    Wenn man nicht weiß wieviele Stellen gilt natürlich deine Rechnung mit
    26^1+26^2+26^3 ... usw.

    Allerdings musst du bei Passwörtern bedenken das oft zwischen Groß- und Kleinschreibung unterschieden sowie Zahlen und Sonderzeichen möglich sind.
    Dadurch erhöht sich die Zahl der Möglichkeiten natürlich immens :eek:

    Gruß,
    Commander Keen
    Ich habe das Wort "Europa" immer im Munde derjenigen Politiker
    gefunden, die von anderen Mächten etwas verlangten, was sie im
    eigenen Namen nicht zu fordern wagten. [SIZE="1"](Nov. 1876)[/SIZE]
    [SIZE="1"]Otto von Bismarck[/SIZE]
  • moin,

    genau selbiges problem hatte ich auch mal gehabt.

    ich hab ein prog gecodet, wo ich 9 buchstaben eingeben kann, die sich ebenfalls wiederholen können.

    also keine zahlen, sonderzeichen, usw.
    ebenfalls bezieht sich die unterscheidung nicht auf groß/kleinschreibung.

    nun soll also die ausgabe so erfolgen, das alle möglichen kombinationen, die es bei neun buchstaben gibt - darzustellen

    als lösung dafür kann ich dir mal nen stückel quellcode anbieten, das in delphi 7.0 realisiert worden ist:

    Quellcode

    1. procedure CombiIntegers(const Values: array of Integer; Permutation: Boolean = True);
    2. // Gebe die Kombination bzw. Permutation der Integer in Values aus.
    3. // Die Liste wird aufsteigend sortiert erzeugt. Doppelte Werte sind
    4. // zulässig werden aber bei einer Permutation unterdrückt.
    5. var
    6. Patterns: array of Integer;
    7. procedure DoPrint;
    8. // diese procedure sollte ersetzt werden für eigene Ausgaben
    9. var
    10. I: Integer;
    11. begin
    12. for I := 0 to High(Patterns) -1 do Write(Patterns[I], ',');
    13. WriteLn(Patterns[High(Patterns)]);
    14. end;
    15. procedure DoCombi(Start, Stop: Integer);
    16. // erzeugt die Kombination der Elemente in Patterns zwischen Start zu Stop Index
    17. // diese Funktion arbeitet inplaced auf Patterns
    18. var
    19. Pos: Integer;
    20. Tmp: Integer;
    21. Last: Integer;
    22. begin
    23. if Start >= Stop then
    24. begin // Rekursionsende erreicht
    25. DoPrint;
    26. Exit;
    27. end;
    28. Last := -MaxInt;
    29. Pos := Start;
    30. while Pos <= Stop do
    31. begin
    32. // Elemente tauschen
    33. Tmp := Patterns[Pos];
    34. Patterns[Pos] := Patterns[Start];
    35. Patterns[Start] := Tmp;
    36. // müssen wir eine weitere Rekursion durchführen ?
    37. if not Permutation or (Tmp > Last) then // verhindere Duplikate !
    38. begin
    39. DoCombi(Start +1, Stop);
    40. Last := Tmp;
    41. end;
    42. Inc(Pos);
    43. end;
    44. // Elemente in Patterns um eins nach rechts rotieren um das
    45. // Originalpattern wieder herzustellen
    46. Tmp := Patterns[Start];
    47. while Start < Stop do
    48. begin
    49. Patterns[Start] := Patterns[Start +1];
    50. Inc(Start);
    51. end;
    52. Patterns[Start] := Tmp;
    53. end;
    54. procedure DoCreate;
    55. var
    56. I,J,K: Integer;
    57. begin
    58. SetLength(Patterns, Length(Values));
    59. // Insertion Sort, die Elemente müssen für eine Permutation sortiert
    60. // werden. Bei der Kombination ist dies nicht erforderlich.
    61. // Wir nutzen hier den relativ langsamen Insertion Sort, da es selten
    62. // der Fall ist das man alle Kombinationen von Feldern mit mehr als
    63. // 10 Elementen erzeugt. Bedenke was 10! bedeutet.
    64. for I := 0 to High(Values) do
    65. begin
    66. J := 0;
    67. while (J < I) and (Values[I] > Patterns[J]) do
    68. Inc(J);
    69. for K := I -1 downto J do
    70. Patterns[K +1] := Patterns[K];
    71. Patterns[J] := Values[I];
    72. end;
    73. end;
    74. begin
    75. DoCreate;
    76. DoCombi(0, High(Patterns));
    77. end;
    78. procedure CombiStrings(const Values: array of String; Permutation: Boolean = True); overload;
    79. // wie oben aber mit Strings
    80. type
    81. PPCharArray = array of PChar;
    82. var
    83. Patterns: PPCharArray;
    84. procedure DoPrint;
    85. var
    86. I: Integer;
    87. begin
    88. for I := 0 to High(Patterns) -1 do Write(Patterns[I], ',');
    89. WriteLn(Patterns[High(Patterns)]);
    90. end;
    91. procedure DoCombi(Start, Stop: Integer);
    92. var
    93. Pos: Integer;
    94. Tmp: PChar;
    95. Last: String;
    96. begin
    97. if Start >= Stop then
    98. begin
    99. DoPrint;
    100. Exit;
    101. end;
    102. Last := '';
    103. Pos := Start;
    104. while Pos <= Stop do
    105. begin
    106. Tmp := Patterns[Pos];
    107. Patterns[Pos] := Patterns[Start];
    108. Patterns[Start] := Tmp;
    109. if not Permutation or (AnsiCompareText(Tmp, Last) > 0) then
    110. begin
    111. DoCombi(Start +1, Stop);
    112. Last := Tmp;
    113. end;
    114. Inc(Pos);
    115. end;
    116. Tmp := Patterns[Start];
    117. while Start < Stop do
    118. begin
    119. Patterns[Start] := Patterns[Start +1];
    120. Inc(Start);
    121. end;
    122. Patterns[Start] := Tmp;
    123. end;
    124. procedure DoCreate;
    125. var
    126. I,J,K: Integer;
    127. begin
    128. SetLength(Patterns, Length(Values));
    129. for I := 0 to High(Values) do
    130. begin
    131. J := 0;
    132. while (J < I) and (AnsiCompareText(Values[I], Patterns[J]) > 0) do
    133. Inc(J);
    134. for K := I -1 downto J do
    135. Patterns[K +1] := Patterns[K];
    136. Patterns[J] := PChar(Values[I]);
    137. end;
    138. end;
    139. begin
    140. DoCreate;
    141. DoCombi(0, High(Patterns));
    142. end;
    Alles anzeigen



    ich hoffe, du kannst was damit anfangen.... :D

    greetz KuschelBaer
    Das beliebteste Haustier der Deutschen ist und bleibt das halbe Hähnchen.