Gerade im IRC aufgeschnappt:
hrm ... wenn ich 41 mal [a-z|0-9] nehmen kann .. wieviele variationen macht das?
wobei ... "a" genauso gültig sein kann wie "aa" und "aaa" und ....
Die 12. Klasse ist zwar ein Weilchen her, aber meiner Meinung nach müsste es folgende Lösung sein:
361 + 362 + 363 + ... + 3641
Um das kurzerhand in eine Zahl zu gießen:
$> { for i in $(seq 1 41) ; do echo -n "36^$i + " ; done ; echo 0 ; } | bc
6616632105109660076363899730488896757253096051716453117437890676
Meinungen? Verbesserungen? Ratschläge?
{ 7 } Comments
Wenn es nur darum geht eine 41 stellige Zeichenkette zu bekommen, bei der in jedem Schritt 26+10=36 Werte möglich sind ist das ein einfacher Baum.
Also: 36*36*36...36 oder anders: 36^41 Möglichkeiten
Hm, was bedeutet "41 mal [a-z|0-9] nehmen" genau?
Meiner Auffassung nach heißt das, ich kann mir 41 mal eine Zahl oder einen Buchstaben aussuchen.
D.h., ich hab jedes mal die Wahl aus 36 Möglichkeiten.
Also 36*36*36*...*36 = 36^41
Wie geschrieben ist jede zeichenkette mit mindestens einem zeichen und maximal 41 zeichen gültig.
Ok, dann ist deine Berechnung natürlich richtig
So wie im Beitrag geschrieben müsste es schon passen.
Für die Zeichenkette mit 41 Zeichen sinds 36^41 Möglichkeiten, zusätzlich (also addieren) könnte es natürlich auch eine Kette mit nur 40 Zeichen sein, also kommen noch die 36^40 Möglichkeiten dazu und so weiter bis zur 1-Zeichen-Kette runter.
Also komm ich von der Logik auf den selben Lösungsweg.
Schöne Grüße aus Österreich in jedem Fall!
\sum_{i=0}^{41}{36^i} ist völlig richtig. i=0 wenn \epsilon ein gültiges Wort ist (ist es bei solchen Aufgaben meistens), sonst i=1.
Interessant wäre eine Funktion, die für jede natürlichen Zahl von 0 bis 6616632105109660076363899730488896757253096051716453117437890676 genau eine Zeichenkette liefert, die der Bedingung "maximal 41 mal [a-z|0-9]" entspricht.