Μπορείς να χρησιμοποιήσεις ένα στιγμιότυπο της κλάσης java.util.Random για να παράγεις τυχαίους αριθμούς στην Java.
Μπορείς να παράγεις έναν τυχαίο ακέραιο με τη μέθοδο nextInt().
Αυτή παράγει μια τιμή στο εύρος από Integer.MIN_VALUE έως Integer.MAX_VALUE.
Random random = new Random();
random.nextInt();
// => -1169335537
Για να περιορίσεις το εύρος των τιμών που παράγονται, χρησιμοποίησε nextInt(int).
Αυτή παράγει μια τιμή στο εύρος από 0 (συμπεριλαμβανομένου) έως το δεδομένο άνω όριο (μη συμπεριλαμβανομένου).
Για παράδειγμα, αυτό παράγει έναν τυχαίο αριθμό από 0 έως και 9.
Random random = new Random();
random.nextInt(10);
// => 6
Και αυτό παράγει έναν τυχαίο αριθμό από 10 έως και 19.
Random random = new Random();
10 + random.nextInt(10);
// => 11
Μπορείς να παράγεις μια τυχαία τιμή double με τη μέθοδο nextDouble().
Αυτή παράγει μια τιμή στο εύρος από 0.0 έως 1.0.
Random random = new Random();
random.nextDouble();
// => 0.19250004204021398
Και αυτό παράγει έναν τυχαίο αριθμό από 100.0 έως 200.0.
Random random = new Random();
100.0 + 100.0 * random.nextDouble();
// => 111.31849856260328
Η Mary είναι μεγάλη θαυμάστρια της τηλεοπτικής σειράς Star Trek: The Next Generation. Παίζει συχνά παιχνίδια ρόλων με χαρτί και μολύβι, όπου εκείνη και οι φίλοι της προσποιούνται ότι είναι το πλήρωμα του Starship Enterprise. Ο χαρακτήρας της Mary είναι ο Captain Picard, που σημαίνει ότι πρέπει να κρατάει το ημερολόγιο του πλοιάρχου. Της αρέσει το δημιουργικό κομμάτι του παιχνιδιού, αλλά δεν της αρέσει να παράγει τυχαία δεδομένα επιτόπου.
Βοήθησε τη Mary δημιουργώντας τυχαίους γεννήτορες για δεδομένα που εμφανίζονται συχνά στο ημερολόγιο του πλοιάρχου.
Η αρχική υλοποίηση αυτής της άσκησης δέχεται ένα στιγμιότυπο java.util.Random ως όρισμα του κατασκευαστή.
Αυτό επιτρέπει στα tests της άσκησης να περνούν ένα στιγμιότυπο με προκαθορισμένο seed, κάνοντας τα αποτελέσματα των tests προβλέψιμα.
Επομένως, αναμένεται να χρησιμοποιήσεις το δοσμένο στιγμιότυπο java.util.Random στην υλοποίησή σου.
Το Starship Enterprise συναντάει πολλούς πλανήτες στα ταξίδια του.
Οι πλανήτες στο σύμπαν του Star Trek χωρίζονται σε κατηγορίες με βάση τις ιδιότητές τους.
Για παράδειγμα, η Γη είναι πλανήτης κλάσης M.
Όλες οι πιθανές κλάσεις πλανητών είναι: D, H, J, K, L, M, N, R, T και Y.
Υλοποίησε τη μέθοδο randomPlanetClass().
Θα πρέπει να επιστρέφει τυχαία μία από τις κλάσεις πλανητών.
captainsLog.randomPlanetClass();
// => "K"
Το Enterprise (αριθμός νηολογίου NCC-1701) δεν είναι το μόνο διαστημόπλοιο που πετάει τριγύρω!
Όταν συναντιέται με ένα άλλο διαστημόπλοιο, η Mary πρέπει να καταγράψει τον αριθμό νηολογίου αυτού του διαστημοπλοίου.
Οι αριθμοί νηολογίου ξεκινούν με το πρόθεμα "NCC-" και στη συνέχεια χρησιμοποιούν έναν αριθμό από το 1000 έως το 9999 (συμπεριλαμβανομένων).
Υλοποίησε τη μέθοδο randomShipRegistryNumber() που επιστρέφει έναν τυχαίο αριθμό νηολογίου διαστημοπλοίου.
captainsLog.randomShipRegistryNumber();
// => "NCC-1947"
Τι νόημα έχει ένα ημερολόγιο αν δεν περιλαμβάνει ημερομηνίες;
Μια αστρική ημερομηνία είναι ένας αριθμός κινητής υποδιαστολής.
Οι περιπέτειες του Starship Enterprise από την πρώτη σεζόν του The Next Generation διαδραματίζονται ανάμεσα στις αστρικές ημερομηνίες 41000.0 και 42000.0.
Το "4" αντιπροσωπεύει τον 24ο αιώνα και το "1" την πρώτη σεζόν.
Υλοποίησε τη μέθοδο randomStardate() που επιστρέφει έναν αριθμό κινητής υποδιαστολής ανάμεσα στο 41000.0 (συμπεριλαμβανομένου) και στο 42000.0 (μη συμπεριλαμβανομένου).
captainsLog.randomStardate();
// => 41458.15721310934
Γράψου στο Exercism για να μάθεις και να κατακτήσεις Java με 26 έννοιες158 ασκήσεις και πραγματική καθοδήγηση από ανθρώπους, όλα δωρεάν.