Класс Math
ВведеноОтслеживание случайного диапазона на обоих концах
- Билеты требуют целочисленных меток от 4 до 9 включительно. Используйте (int)(Math.random() * 6) + 4.
- Масштабирование даёт значения от 0 до, но не включая 6; усечение даёт 0 через 5; сдвиг даёт 4 через 9.
Математический набор инструментов
- Класс
Math— это библиотека готовых математических статических методов и констант. Не нужен импорт и не нужен объект — просто вызовитеMath.something(...). - Он охватывает степени, корни, округление, модуль, минимум/максимум и многое другое. Выберите метод, чьи входные данные, тип выхода и математический смысл соответствуют задаче; не у каждого входа есть обычный конечный результат.
Распространенные методы для AP
Math.abs(x)— модуль числа:Math.abs(-5)равно5.Math.pow(b, e)—bв степениe: результатMath.pow(2, 3)равен8.0.Math.sqrt(x)— квадратный корень:Math.sqrt(9)равно3.0.Math.max(a, b)/Math.min(a, b)— большее / меньшее из двух значений.
Случайные числа
Math.random()возвращает целое числоdoubleв диапазоне от0.0включительно до1.0исключительно. Масштабируйте и сместите его для другого диапазона:(int)(Math.random() * 6)даст значения от0до5.- Добавьте
1для броска игральной кости:(int)(Math.random() * 6) + 1даёт значения от1до6. Для положительного, умеренного целого числа ширины n, чьи метки помещаются в int,(int)(Math.random() * n) + startдаёт n возможных целочисленных меток. Для диапазона от 4 до 9 включительно n равно9 - 4 + 1 = 6.
Создание броска кубика с помощью Math.random()
Масштабировать, обрезать и сдвинуть для получения 1–6.
Чему равно Math.pow(2, 3) (как число)?
Сложность 2/5 · 140 монет + небольшой бонус за первое выполнение сегодня
2 в степени 3 = 8 (возвращается как double 8.0).
Какой тип возвращает Math.sqrt(9)?
Сложность 1/5 · 100 монет + небольшой бонус за первое выполнение сегодня
sqrt всегда возвращает double — приведите к int при использовании.
В каком диапазоне возвращает Math.random()?
Сложность 1/5 · 100 монет + небольшой бонус за первое выполнение сегодня
[0.0, 1.0) — верхняя граница 1.0 никогда не возвращается.
Какое выражение дает случайное целое число от 1 до 6?
Сложность 1/5 · 100 монет + небольшой бонус за первое выполнение сегодня
Масштабировать на 6 → 0..5, обрезать, затем +1 → 1..6.
Чему равно Math.abs(-5)?
Сложность 2/5 · 140 монет + небольшой бонус за первое выполнение сегодня
Абсолютная величина −5 равна 5.
Следите за типами возвращаемых значений
Math.powиMath.sqrtвсегда возвращают значение типаdouble(например,8.0, а не8). Чтобы использовать результат какint, необходимо выполнить явное приведение типов:(int) Math.pow(2, 3).Math.random()также являетсяdouble— приводите тип после масштабирования, а не до этого. Перепутывание местамиintиdouble— классическая ошибка при работе с классом Math.
Math.pow и Math.sqrt возвращают double, а не int. Math.pow(2, 3) равно 8.0; сохраните его в double или приведите к типу int, чтобы использовать как таковой. А Math.random() возвращает double в диапазоне [0.0, 1.0) — верхняя граница 1.0 никогда не возвращается. Постройте диапазон целых чисел с помощью (int)(Math.random() * n) + start.
Order the operations that build labels 4 through 9.
Сложность 3/5 · 200 монет + небольшой бонус за первое выполнение сегодня
Scaling must happen before the cast; otherwise every initial cast is zero.
Для меток 4 и 9 подставьте u=0 в выражение (int)(u * 6) + 4. Какая метка получится в результате?
Сложность 2/5 · 140 монет + небольшой бонус за первое выполнение сегодня
Масштабированное и преобразованное значение равно нулю, затем добавляется 4.
Math.sqrt(-1) вызывает исключение вместо возврата результата типа double.
Сложность 1/5 · 100 монет + небольшой бонус за первое выполнение сегодня
Возвращается специальное значение NaN типа double; это отличается от исключения.
Случайный бросок игральной кости (1–6):
Math.random()→ число типа double, например,0.42.Math.random() * 6→ значения от0.0до чуть меньше6.0(например,2.52).(int)(Math.random() * 6) + 1→ отбрасывает дробную часть до2, затем добавляет+1→ получаем3.
Перенесите рассуждения на новый случай
- Приведение типа перед масштабированием,
(int)Math.random() * 6 + 4, всегда даёт 4. Проверьте u=0 и представимое значение чуть ниже 1 в(int)(u * 6) + 4: возможные границы — это 4 и 9; u=1 находится вне диапазона метода генерации случайных чисел. - Библиотечные методы также имеют поведение на границах:
Math.sqrt(-1)возвращает NaN, аMath.abs(Integer.MIN_VALUE)возвращает тот же отрицательный int, поскольку его положительная величина не помещается в int. Обычный пример abs(-5)=5 по-прежнему верен.
Класс Math предоставляет статические методы: abs, pow, sqrt, max, min и random. pow/sqrt возвращают double (необходимо привести к int). Math.random() возвращает double в диапазоне [0.0, 1.0); постройте диапазон целых чисел с помощью (int)(Math.random() * n) + start.