Προγραμματισμός

* Γνώση Υπολογιστών >> Προγραμματισμός >> Προγραμματισμός Java

Πώς να παραγάγει τυχαίων αριθμών χωρίς επανάληψη σε Java

Η γλώσσα Java παρέχει βοηθητικά προγράμματα για την παραγωγή τυχαίων αριθμών στο πλαίσιο των προγραμμάτων σας . Εάν θέλετε να δημιουργήσετε μια σειρά τυχαίων αριθμών , αλλά δεν θέλουν κάποια από αυτές να επαναληφθεί , θα πρέπει να χρησιμοποιήσετε εξαρτάται από δοκιμές και θηλιές . Με την προσθήκη κάθε αριθμό που παράγουν σε ένα αντικείμενο συλλογής σετ , μπορείτε να πείτε αμέσως εάν οποιαδήποτε από αυτά είναι εις διπλούν . Εάν ο αριθμός είναι ένα αντίγραφο , μπορείτε να δώσετε εντολή Java να συνεχίσει τη δημιουργία νέων αριθμών μέχρι να βρει αυτό που δεν έχετε ήδη προσθέσει στο σύνολο . Η διαδικασία περιλαμβάνει δύο βρόχους και υπό όρους δήλωση. Οδηγίες
Η 1

εισαγωγή των υπηρεσιών κοινής ωφελείας Java είναι αναγκαία για παραγωγή τυχαίων αριθμών σας και να ρυθμίσετε το αντικείμενο . Προσθέστε τον ακόλουθο κώδικα στο επάνω μέρος της δήλωσης τάξη σας : . Java.util εισαγωγής * ?

Δημιουργήστε ένα σύνολο αντικειμένων για να αποθηκεύσετε τους αριθμούς που παράγουν : TreeSet myNumbers = νέα TreeSet ( ) ?

Δημιουργήστε ένα στιγμιότυπο του τυχαίου τάξης για την παραγωγή τυχαίων αριθμών σας : Τυχαία randGen = νέα Random ( ) ? 2

Δημιουργήστε ένα βρόχο για την παραγωγή τυχαίων αριθμών σας . Το παρακάτω βρόχος for θα εκτελέσει 20 φορές : for (int i = 0 ? I <20 ? I + + ) { //Η παραγωγή αριθμό εδώ }

Μέσα σε αυτό το loop , μπορείτε να προσθέσετε την επεξεργασία για να δημιουργήσει και να ελέγξετε τυχαία σας αριθμοί για αντίγραφα . Αλλάξτε τον αριθμό 20 για να αντανακλά το συνολικό αριθμό των τυχαίων τιμών που θέλετε το πρόγραμμά σας να δημιουργήσει . Μέσα στο βρόχο , παράγει έναν τυχαίο ακέραιο αριθμό : int randNum = randGen.nextInt ( ) ?

Αυτό θα εκτελέσει κάθε φορά τα βρόχος επαναλαμβάνει
εικόνων 3

Προσθέστε ένα δεύτερο loop . να αντιμετωπίσει το διπλό αριθμούς . Προσθέστε τον ακόλουθο κώδικα μέσα στο πρώτο loop σας μετά από τη γραμμή παραγωγής αριθμό : για ( ? ;) { //Συμφωνία με διπλότυπα }

Αυτό είναι ένα άπειρο βρόχο , έτσι θα εκτελέσει ασταμάτητα έως ότου ο κώδικας σπάει ρητά από αυτό . Μέσα σε αυτό το loop , μπορείτε να δώσετε εντολή Java να συνεχίσει να παράγει τυχαίους αριθμούς μέχρι να δημιουργεί ένα που δεν έχουν ήδη χρησιμοποιηθεί .
Η 4

Προσθήκη όρους δοκιμή σε κάθε τυχαίο αριθμό . Εισάγετε τον παρακάτω κωδικό μέσα στο άπειρο βρόχο σας : εάν ( myNumbers.add ( randNum ) ) διάλειμμα? Άλλο randNum = randGen.nextInt ( ) ?

Όταν προσπαθείτε να προσθέσετε ένα στοιχείο σε ένα σύνολο , η μέθοδος επιστρέφει true ή ψευδείς . Εάν το στοιχείο δεν είναι ήδη στο σύνολο , επιστρέφει true , οπότε κωδικό σας μπορεί να σπάσει έξω από το βρόχο . Εάν το στοιχείο βρίσκεται ήδη στο σύνολο , η μέθοδος επιστρέφει false , οπότε μπορείτε να δώσετε εντολή Java για να επιλέξετε ένα τυχαίο αριθμό . Ο βρόχος θα εκτελέσει στη συνέχεια και πάλι , τον έλεγχο της νέα τιμή για να δούμε αν είναι ένα αντίγραφο . Αυτή η διαδικασία συνεχίζεται μέχρι να βρεθεί μια νέα τιμή .
5

Δοκιμάστε τον κωδικό σας . Προσθέστε την ακόλουθη γραμμή μετά από άπειρο βρόχο σας , αλλά ακόμα μέσα στο εξωτερικό βρόχο : System.out.println ( randNum ) ?

Αυτό θα σας αφήσει να δείτε με μια ματιά ότι οι αριθμοί σας είναι όλα μοναδικά . Αποθηκεύστε το αρχείο σας , καταρτίζουν το πρόγραμμα σας και να τρέξετε να το δοκιμάσετε . Ρίξτε μια ματιά στην έξοδο για να ελέγξετε ότι οι λειτουργίες σας δουλεύουν .
Η
εικόνων

Συναφής σύστασή

Πνευματικά δικαιώματα © Γνώση Υπολογιστών Όλα τα δικαιώματα κατοχυρωμένα