Zufallszahlen bleiben gespeichert



  • Ich will mit folgendem Code zufällig eine Primzahl generieren lassen:

    int primenumber(){
    	srand((unsigned)time(NULL));
    	while(1){
    		int i = rand()%MAX;
    		//prime test according to FERMAT - smallest pseudoprime to bases 2 + 3 is 2701
    		//enough for primes <1000
    		if(!(modulo(2,i-1,i)-1) && !(modulo(3,i-1,i)-1)){return i;}
    	}
    }
    
    int modulo(int basis, int power, int mod){
    	if(power>0){return basis*modulo(basis,power-1,mod)%mod;}
    	else{return 1;}
    }
    

    Funktioniert auch super, aber wenn ich die Funktion primenumber nun zweimal hintereinander von meiner main aus aufrufen lasse, dann erhalte ich die gleiche Zahl.

    Woran liegt das und wie kann ich das umgehen?

    Grüße



  • srand((unsigned)time(NULL));
    

    nur einmal aufrufen, da sonst immmer der gleiche Seed übergeben wird



  • Ich danke für die schnelle und vollkommen perfekte Antwort...


Anmelden zum Antworten