random_shuffel() wie setzte ich den seed?



  • ahoi und guten tag..
    random_shuffel() hat ja wohl immer den selben startwert.
    wie kann ich den aber expliziet setzten??
    vielen dank



  • beim visual studio läuft es so:

    #include <iostream>
    #include <ctime>
    #include <algorithm>
    
    using namespace std;
    
    int main(){	
             int array[]={1,2,3,4,5,6};
    	for (int i=0 ; i<6 ; i++)
    		cout<<array[i];
    
        cout<<"\n";
    	//random
    	long sek;
    	time (&sek);	
    	srand (sek);	
    	random_shuffle(array, array+6);	
    	for (i=0 ; i<6 ; i++)
    		cout<<array[i];
    
    }
    

    mit srand kann man den startwert zum beispiel dynamisch setzen.

    wie es mit anderen compilern ist, weiß ich leider nicht, müsste hume sagen, oder gerard, davie .. oder sonstjemand standard-kennerIn, viel spaß;)



  • wieso sollte das kein standard sein? (abgesehen vom gültigkeitsbereich von i). ich würd aber
    sek den typ time_t geben, der ist für zeiten eigentlich vorgesehen.

    edit: um verwirrungen vorzubeugen: srand wird nur einmal am anfang des programms aufgerufen,
    danach nicht wieder.



  • Taurin schrieb:

    wieso sollte das kein standard sein?

    Weil der Standard nicht spezifiziert, ob random_shuffle rand() benutzt.


Log in to reply