Ein Array zufällig mit Buchstaben von A bis Z füllen?

3 Antworten

"ein Array zufällig mit den Buchstaben von A bis Z füllen muss, ohne die Buchstaben dort rein zu schreiben"

Wat? Wie willst du ein Array füllen ohne etwas dort rein zu schreiben?

Woher ich das weiß:Studium / Ausbildung – Informatikstudium

Biomeister 
Beitragsersteller
 02.02.2019, 16:11

Indem man zuerst ein char erzeugt und die mit A initialisiert. Man kann es ja nachher in einer for Schleife fortlaufen lassen. Es wird zu A immer ein buchstabe "hochgezählt", bis man bei Z ankommt.

0
triopasi  02.02.2019, 16:12
@Biomeister

Achso, jetzt verstehe ich was du mit " ohne die Buchstaben dort rein zu schreiben" meinst xD

0
wotan38  03.02.2019, 13:17
@Biomeister

Das sind dann aber immer die gleichen Zahlen in gleicher Reihenfolge. Es wird aber ausdrücklich eine zufällige Auswahl und Anordnung verlangt. Dabei kann der selbe Buchstabe auch mehrmals vorkommen. Das Array muss auch nicht 26 Stellen enthalten und es müssen auch nicht unbedingt alle Buchstaben vorkommen. Es sei, dass das ausdrücklich in der Angabe angegeben wurde.

Ich würde das so machen: Zunächst eine Referenztabelle mit den 26 möglichen Buchstaben vorhalten. Dann eine Tabelle von beliebiger Größe, z.B. 100, einrichten und diese wie folgt befüllen: Du holst Dir eine Zufallszahl zwischen 1 und 26. Falls Du nur irgendeine bekommen kannst, sollte diese möglichst groß sein, ggf. multipliziere diese mit größeren Primzahlen. Dann dividierst Du diese Zahl durch 26, berechnest der Rest (0 bis 25) und zählst 1 dazu. Dann hast eine Zahl zwischen 1 und 26 und kannst damit eine Zahl aus Deiner Referenztabelle holen.

Die so befüllte Tabelle enthält eine zufällige Auswahl von Buchstaben aus der Referenztabelle (A bis Z) in einer zufälligen Reihenfolge.

Statt Referenztabelle kannst die emittelten Zufallszahlen (1 bis 26) auch direkt über die ASCII-Tabelle umrechnen. Die Lösung mit der Referenztabelle hätte aber den Vorteil, dass das Befüllen der Tabelle auch mit beliebigen Zeichen funktionierten würde, wenn kein geeigneter Algorithmus verfügbar wäre. Das wäre der Fall, wenn statt Zahlen bestimmte Gegenstände vorgegeben wären.

Hast das jetzt wenigstens soweit verstanden, sodass Du ggf. Deinem Lehrer erklären könntest, warum Du das so gelöst hast?

0

Ich verwende zwar kein c# aber mit Java würde ich einfach eine For-Schleife machen, die jede einzelne Stelle des Arrays durchgeht, dann mit einer Random-Funktion eine Zahl zwischen 1 bis 26 generieren, diese Zahlen dann in ASCII Zeichen umwandeln (natürlich nach dem du die Zahlen mit 64 addiert hast, damit du im ASCII Bereich der Großbuchstaben bist) und dieses Zeichen dann in die jetzige Stelle des Arrays einfügen und dann die Schleife bis zum Ende durchgehen, dann das Array ausgeben

Enumerable.Range(0,100)

.Select(x => random.Next(0,25))

.Select(x => (char)(x + 65)

.ToArray()


buffalo23  02.02.2019, 15:52

Ist aber nur aus dem Kopf kann kleine Syntaxfehler enthalten

0