lolek Δημοσ. 29 Νοεμβρίου 2010 Δημοσ. 29 Νοεμβρίου 2010 Aν σε ενα πρόγραμμα C++ θελω να γίνεται κάτι με πιθανότητα πχ 80% είναι σωστο αυτό? > srand((unsigned)time(0)); if (( rand() % 100 + 1) < 80 ) cout << "an trekseis to programma 100 fores edw tha mpeis tis 80" ; else cout << "edw 20";
lolek Δημοσ. 29 Νοεμβρίου 2010 Μέλος Δημοσ. 29 Νοεμβρίου 2010 σωστο ειναι τελικα. Απλα έκανα λάθος έλεγχο. Είχα βάλει μιά for ωστε να εκτελείται 100 φορες αλλα επειδη η for τρεχει σε msecond το time δεν αλλαζε.Με διαφορετικό έλεγχο βγάζει σωστό αποτέλεσμα
_tasos Δημοσ. 29 Νοεμβρίου 2010 Δημοσ. 29 Νοεμβρίου 2010 Να έχεις υπόψιν σου ότι κάνοντας τη πράξη modulo (%) δεν παίρνεις ομοιόμορφη κατανομή, δηλαδή στις 100 εκτελέσεις δεν θα πάρεις 80 αριθμούς κάτω από το 80. Το αναφέρει κ στο manual της rand() http://www.cplusplus.com/reference/clibrary/cstdlib/rand/.
Technology fan Δημοσ. 30 Νοεμβρίου 2010 Δημοσ. 30 Νοεμβρίου 2010 Πολύ Σωστά, το 80 τοις εκατό που θέλεις είναι περίπου 80. μπορεί να ναι μία φορά 75% μπορει να ναι και 85% αυτό που σου εγγυάται οτι αν το τρέξεις πολλές φορές τότε θα προσεγγίζει το 80
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.