@elefher: Είναι επίτηδες σχεδιασμένη η C++ για να έχεις τους "ίδιους" ψευδοτυχαίους αριθμούς με την rand().
Η srand() με τον τρόπο που γίνεται seed θα σου δίνει κάποιους ίδιους αριθμούς, αφού παίρνει, ως "seed" την ώρα σε δευτερόλεπτα. Προφανώς αν γίνεται η εκτέλεση "αρκετά" γρήγορα θα έχεις το ίδιο seed άρα και τα ίδια αποτελέσματα.
Ως προφανή λύση θα σου πρότεινα αφού κάνεις seed την srand() να δημιουργείς όλο το σύνολο των τυχαίων αριθμών που θα χρειαστείς και από εκεί να παίρνεις όσους χρειάζεσαι... Επίσης μάλλον (δεν το έχω δοκιμάσει εκτενώς) αν βάλεις ένα delay κάποιων δευτερολέπτων επίσης δε θα πέσει στο ίδιο seed. (Αν δουλεύει σωστά αυτό δεν ξέρω σίγουρα πάντως...)
- Κώδικας: Επιλογή όλων
#include <time.h>
#include <unistd.h>
using namespace std;
int main(){
....
sleep(2);
srand ( time(NULL) );
....
Επίσης αυστηρά μιλώντας η native rand() δε θεωρείται και πολύ καλή. H GSL αν και μανουρά σου εγγυάται καλύτερα αποτελέσματα. (Αυτό το λέω για μελλοντικές καταστάσεις όπου πχ. αν κάνεις mcmc sampling η rand() είναι ανεπαρκής). Εγώ πάντως GSL χρησιμοποιώ.
Γνώσεις ⇛ Linux: Συμπαθητικές ┃ Προγραμματισμός: Συμπαθητικότερες ┃ Αγγλικά: Αστέρι
Λειτουργικό ⇛ Ubuntu 10.04 32bit σε HP nw9440 ┃ Ubuntu 10.04 32bit σε Toshiba Satellite U400┃ SLED 11 64bit σε Dell OptiPlex 780