Екземпляр класу 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
Випадкове число з плаваючою комою можна згенерувати за допомогою методу 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
Мері - велика шанувальниця серіалу «Зоряний шлях: Наступне покоління». Вона часто грає в настільні рольові ігри, де вони з друзями уявляють себе екіпажем зорельота «Ентерпрайз». Персонаж Мері - капітан Пікар, тож їй доводиться вести журнал капітана. Їй подобається творча частина гри, але не подобається генерувати випадкові дані на ходу.
Допоможімо Мері, створивши генератори випадкових даних, які часто трапляються в журналі капітана.
Початкова реалізація цієї вправи приймає екземпляр java.util.Random як аргумент конструктора.
Це дозволяє тестам вправи передати екземпляр із наперед заданим зерном, завдяки чому результати тестів стають передбачуваними.
Тому у своїй реалізації ми маємо використати наданий екземпляр java.util.Random.
Під час своїх подорожей «Ентерпрайз» натрапляє на безліч планет.
У всесвіті «Зоряного шляху» планети поділяють на категорії за їхніми властивостями.
Наприклад, Земля належить до планет класу M.
Усі можливі класи планет: D, H, J, K, L, M, N, R, T і Y.
Реалізуйте метод randomPlanetClass().
Він має повертати один із класів планет випадковим чином.
captainsLog.randomPlanetClass();
// => "K"
«Ентерпрайз» (реєстраційний номер NCC-1701) не єдиний зореліт у космосі!
Коли він зустрічається з іншим зорельотом, Мері потрібно занести його реєстраційний номер до журналу.
Реєстраційні номери починаються з префікса «NCC-», після чого йде число від 1000 до 9999 (включно).
Реалізуйте метод randomShipRegistryNumber(), який повертає випадковий реєстраційний номер зорельота.
captainsLog.randomShipRegistryNumber();
// => "NCC-1947"
Який сенс у журналі, якщо в ньому немає дат?
Зоряна дата - це число з плаваючою комою.
Пригоди «Ентерпрайза» з першого сезону «Наступного покоління» відбуваються між зоряними датами 41000.0 і 42000.0.
«4» означає 24 століття, а «1» - перший сезон.
Реалізуйте метод randomStardate(), який повертає число з плаваючою комою у проміжку від 41000.0 (включно) до 42000.0 (не включно).
captainsLog.randomStardate();
// => 41458.15721310934
Зареєструйтеся на Exercism, щоб вивчати й опановувати Java, а також 26 концепцій158 вправ та справжнє наставництво від людей, і все це безкоштовно.