Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (WinAPI, Konsole) » Random

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
09.03.2007, 21:55 Uhr
~lord draq
Gast


Ich versuche folgender Maßen ein zufälligen Buchstaben aus dem Alphabet zu generien:

C++:
char a='a'+rand()*26;
char b;
do
  b='a'+rand()%26;
while(b==a);
char c;
do
  c='a'+rand()%26;
while(c==a or c==b);



Leider kommt immer "Projekt1.ee hat ein Problem fetsgestellt und musste beendet werden"
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
09.03.2007, 21:57 Uhr
0xdeadbeef
Gott
(Operator)



C++:
char a='a'+rand()*26;


Eh?

Ansonsten würe ich die Benutzung von std::random_shuffle empfehlen. Das liest sich dann z.B. so:

C++:
#include <algorithm>
#include <cstdlib>
#include <ctime>
#include <iostream>

int main() {
  char alphabet[] = "abcdefghijklmnopqrstuvwxyz";

  std::srand(std::time(0));
  std::random_shuffle(alphabet, alphabet + 26);

  char a = alphabet[0],
       b = alphabet[1],
       c = alphabet[2];

  std::cout << a << b << c << std::endl;
}


--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra

Dieser Post wurde am 09.03.2007 um 22:01 Uhr von 0xdeadbeef editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
09.03.2007, 22:02 Uhr
~lord draq
Gast


Ich benutze C nicht C++
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
09.03.2007, 22:08 Uhr
0xdeadbeef
Gott
(Operator)


Dann wirste den entsprechenden Algorithmus von Hand nachcoden müssen, oder beten, dass du niemals Pech mit dem RNG hast. Ist ja aber nicht weiter kompliziert.

Trotzdem wird

C++:
rand() * 26


dich an der Stelle nicht wirklich weiterbringen.
--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
11.03.2007, 09:32 Uhr
Suba Esel



Ist zwar nicht ganz so "zufällig", funktioniert aber trotzdem:


C++:
char a = char(rand() % 26 + 65);


--
Simon
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (WinAPI, Konsole) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: