PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Wahrscheinlichkeiten berechnen


grakaman
2003-11-05, 16:29:21
Hallo

Wie kann ich denn, z.B. aus einem char Array, alle Zeichenkombinationen ermitteln?

MfG

Demirug
2003-11-05, 16:48:56
Die Fragestellung verstehe ich nicht ganz.

Du hast eine Anzahl von Buchstaben und möchtest alle möglichen Kombinationen ermitteln?

grakaman
2003-11-05, 16:56:00
So in etwa. Das war aber nur etwas vereinfacht bzw. falsch von mir ausgedrückt. Eigentlich möchte ich, dass basierend auf dem ASCII Zeichensatz alle Kombinationen ausprobiert werden. Also sagen wir ich habe 5 Stellen, dann möchte ich alle ASCII Kombinationen für diese 5 Stellen habe.

MfG

Crushinator
2003-11-05, 16:56:33
@grakaman

Für Rekursive Permutation guckst Du hier (http://www.vbarchiv.net/archiv/tipp_68.html) =)

DocEW
2003-11-07, 00:58:57
Guck mal hier

http://www.forum-3dcenter.org/vbulletin/showthread.php?s=&threadid=94067

das ist (auf den 2. Blick ;) ) genau was du suchst, oder?

grakaman
2003-11-07, 20:56:18
Mmmhm, ich bin momentan schwer von Begriff :D Aber so richtig ist das ja alles nicht, was ich brauche. Ich möchte ja selbst bestimmen wieviel Stellen das Ergebnis haben soll, dass aus einer Menge von Werten gebildet werden soll. Also:

X = {'A','B','C','D'}

mit einer Stelle

A
B
C
D

mit zwei Stellen

AA
AB
AC
AD
BA
BB
BC
...

mit 3, 4 ... Stellen

...

Demirug
2003-11-07, 21:29:50
Ich denke du suchst das:


public class Code
{
public Code(int size, char startchar, char endchar)
{
code = new char[size];

for (int index = 0 ; index < size ; index++)
code[index] = startchar;

start = startchar;
end = endchar;
}

public bool Next ()
{
return Pulse (code.Length-1);
}

protected bool Pulse (int pos)
{
if (pos == -1)
return false;

if (code[pos] != end)
{
code[pos]++;
return true;
}

code[pos] = start;
return Pulse (pos-1);
}

public override string ToString()
{
return new string (code);
}

protected char[] code;
protected char start;
protected char end;
}


Benutzt wird das ganze dann so:


Code code = new Code (5, 'A', 'Z');

do
{
Console.WriteLine (code.ToString());
}while (code.Next());

grakaman
2003-11-07, 21:42:32
Original geschrieben von Demirug
Ich denke du suchst das:


public class Code
{
public Code(int size, char startchar, char endchar)
{
code = new char[size];

for (int index = 0 ; index < size ; index++)
code[index] = startchar;

start = startchar;
end = endchar;
}

public bool Next ()
{
return Pulse (code.Length-1);
}

protected bool Pulse (int pos)
{
if (pos == -1)
return false;

if (code[pos] != end)
{
code[pos]++;
return true;
}

code[pos] = start;
return Pulse (pos-1);
}

public override string ToString()
{
return new string (code);
}

protected char[] code;
protected char start;
protected char end;
}


Benutzt wird das ganze dann so:


Code code = new Code (5, 'A', 'Z');

do
{
Console.WriteLine (code.ToString());
}while (code.Next());


Super!!! Genau das habe ich gebraucht, und sogar gleich in C#. Du hast was bei mir gut.

MfG

Ps. Wenn meine Ohren-/Kopfschmerzen vorbei sind, schau ich mir die Funktionsweise des Codes genauer an