Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Zufall

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 < [ 2 ] [ 3 ]
000
30.11.2005, 16:42 Uhr
~Tom24
Gast


Hi...

Ich habe ein Problem möchte ein z.B. feld[8] mit einer zufälligen reihenfolge der Zahlen 0...8 besetzen.

z.b so:...

0,1,4,3,2,6,7,8,5
beim nächsten mal
4,3,2,1,5,7,8,0
danch halt wieder andere Besetzung der Felder.
aber die Zahlen dürfen auf keine Fall doppelt vorkommen...

wie kann ich das am besten machen?

Vielen Danl
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
30.11.2005, 16:49 Uhr
J-jayz-Z
Perl Crack ala Carte
(Operator)


mit srand() und rand()
Mit srand() legt man fest, "wie" zufällig sie sein sollen und rand() gibt dir die Zahlen aus
--
perl -Mstrict -Mwarnings -e 'package blub; sub new { bless {} } sub bar {my $self=shift; $self->{bla}="66756e2d736f66742e6465"; return $self->{bla};} my $foo=blub->new();print "Hallo ";print pack("H*",$foo->bar()); print "\n"'
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
30.11.2005, 16:56 Uhr
virtual
Sexiest Bit alive
(Operator)



C++:
#include <algorithm>

int array[] = { 0, 1, 2, 3, 4, 5, 6, 7, 8 }
std::random_shuffle(array, array+sizeof(array)/sizeof(*array));


Zu wie vielten Male wurde diese Frage eigentlich schon gestellt? - Uns fehlt ein Forumstatistiker!
--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
30.11.2005, 16:56 Uhr
~Tom24
Gast


ja die Funktion rand () ist mir klar....

aber ich möchte das ein Feld nicht doppet mit einer Zahl besetzt ist....

feld[0]=3;feld[1]=4;feld[2]=3.........
dann sind feld[0] und feld[3] gleich mit der 3 besetzt und das möchte ich ja eigentlich vermeiden....

oder sehe ich das was falsch.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
30.11.2005, 16:57 Uhr
J-jayz-Z
Perl Crack ala Carte
(Operator)


auch was gelernt, die Version kannte ich nich
--
perl -Mstrict -Mwarnings -e 'package blub; sub new { bless {} } sub bar {my $self=shift; $self->{bla}="66756e2d736f66742e6465"; return $self->{bla};} my $foo=blub->new();print "Hallo ";print pack("H*",$foo->bar()); print "\n"'
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
30.11.2005, 17:04 Uhr
~Tom24
Gast


void versuch()
{

int array[] = { 0, 1, 2, 3, 4, 5, 6, 7, 8 };
std::random_shuffle(array, array+sizeof(array)/sizeof(*array));


}

bei der Variante können aber auch Felder doppelt mit der gleichen Zahl belegt werden....

oder mache ich was falsch...??
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
30.11.2005, 17:12 Uhr
virtual
Sexiest Bit alive
(Operator)


Nein, random shuffle erzeugt eine zufällige Anordung zwischen der Elemente von array. Wenn in array (was ja ursprünglich sortiert war) keine Duplikate vorkamen, dann im resulatat auch nicht
--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
30.11.2005, 17:13 Uhr
~Tom24
Gast


ok vielen dank
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
30.11.2005, 17:13 Uhr
predator




Zitat von ~Tom24:
void versuch()
{

int array[] = { 0, 1, 2, 3, 4, 5, 6, 7, 8 };
std::random_shuffle(array, array+sizeof(array)/sizeof(*array));


}

bei der Variante können aber auch Felder doppelt mit der gleichen Zahl belegt werden....


Nö, eigentlich nicht.

Zitat von www.cppreference.com/cppalgorithm/random_shuffle.html:

The random_shuffle() function randomly re-orders the elements in the range [start,end).

--
Gruß
predator
Zitat von Edsger W. Dijkstra:
Es ist praktisch unmöglich, einem Studenten gutes Programmieren beizubringen, wenn er vorher in BASIC programmiert hat. Als potenzielle Programmierer sind sie geistig verstümmelt ohne Hoffnung auf Erholung.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
009
30.11.2005, 17:21 Uhr
~Tom24
Gast


Ja vielen Dank.....

Funktioniert wunderbar...
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 < [ 2 ] [ 3 ]     [ C / C++ (ANSI-Standard) ]  


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: