Студопедия

Главная страница Случайная страница

КАТЕГОРИИ:

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Псевдослучайные числа

Java класс Math

Разработчику на Java доступно множество готовых (или библиотечных) классов и методов, полезных для использования в собственных программах. Наличие библиотечных решений позволяет изящно решать множество типовых задач.

Далее рассмотрим класс Math, содержащий различные математически функции. Рассмотрим некоторые из них:

1. Math.abs(n) — возвращает модуль числа n.

2. Math.round(n) — возвращает целое число, ближайшее к вещественному числу n (округляет n).

3. Math.ceil(n) — возвращает ближайшее к числу n справа число с нулевой дробной частью (например, Math.ceil(3.4) в результате вернёт 4.0).

4. Math.cos(n), Math.sin(n), Math.tan(n) — тригонометрические функции sin, cos и tg от аргумента n, указанного в радианах.

5. Math.acos(n), Math.asin(n), Math.atan(n) — обратные тригонометрические функции, возвращают угол в радианах.

6. Math.toDegrees(n) — возвращает градусную меру угла в n радианов.

7. Math.toRadians(n) — возвращает радианную меру угла в n градусов.

8. Math.sqrt(n) — возвращает квадратный корень из n.

9. Math.pow(n, b) — возвращает значение степенной функции n в степени b, основание и показатель степени могут быть вещественными.

10. Math.log(n) — возвращает значение натурального логарифма числа n.

11. Math.log10(n) — возвращает значение десятичного логарифма числа n.

Все перечисленные функции принимают вещественные аргументы, а тип возвращаемого значения зависит от типа аргумента и от самой функции.

Кроме функций в рассматриваемом классе имеются две часто используемых константы:

1. Math.PI — число «пи», с точностью в 15 десятичных знаков.

2. Math.E — число Неппера (основание экспоненциальной функции), с точностью в 15 десятичных знаков.

Примеры использования:

System.out.println(Math.abs(-2.33)); // выведет 2.33
System.out.println(Math.round(Math.PI)); // выведет 3
System.out.println(Math.round(9.5)); // выведет 10
System.out.println(Math.round(9.5-0.001)); // выведет 9
System.out.println(Math.ceil(9.4)); // выведет 10.0
double c = Math.sqrt(3*3 + 4*4);
System.out.println(c); // выведет гипотенузу треугольника с катетами 3 и 4
double s1 = Math.cos(Math.toRadians(60));
System.out.println(s1); // выведет косинус угла в 60 градусов

Задачи

1. Вычислить и вывести на экран косинусы углов в 60, 45 и 40 градусов без использования функции Math.toDegrees(n).

2. В переменных a и b лежат положительные длины катетов прямоугольного треугольника. Вычислить и вывести на экран площадь треугольника и его периметр.

3. Натуральное положительное число записано в переменную n. Определить и вывести на экран, сколько цифр в числе n.

4. В переменной n лежит некоторое вещественное число. Вычислить и вывести на экран значение функции «сигнум» от этого числа (-1, если число отрицательное; 0, если нулевое; 1 если, положительное).

Псевдослучайные числа

В классе Math есть полезная функция без аргументов, которая позволяет генерировать псевдослучайные значения, т.е. при каждом вызове этой функции она будет возвращать новое значение, предсказать которое очень сложно (не вдаваясь в подробности можно сказать, что теоретически это всё-таки возможно, именно поэтому генерируемые функцией числа называются не случайными, а псевдослучайными).

Итак, Math.random() возвращает псевдослучайное вещественное число из промежутка [0; 1).

Если требуется получить число из другого диапазона, то значение функции можно умножать на что-то, сдвигать и, при необходимости, приводить к целым числам.

Примеры:

System.out.println(Math.random()); // вещественное число из [0; 1)
System.out.println(Math.random()+3); // вещественное число из [3; 4)
System.out.println(Math.random()*5); // вещественное число из [0; 5)
System.out.println((int)(Math.random()*5)); // целое число из [0; 4]
System.out.println(Math.random()*5+3); // вещественное число из [3; 8)
System.out.println((int)(Math.random()*5+3)); // целое число из [3; 7]
System.out.println((int)(Math.random()*11) - 5); // целое число из [-5; 5]

Псевдослучайные числа имеют серьёзнейшие практические приложения и используются, например, в криптографии.

Задачи

1. Создайте программу, которая будет генерировать и выводить на экран вещественное псевдослучайное число из промежутка [-3; 3).

2. Натуральное положительное число записано в переменную n. Создайте программу, которая будет генерировать и выводить на экран целое псевдослучайное число из отрезка [-n; n].

3. В переменные a и b записаны целые числа, при этом b больше a. Создайте программу, которая будет генерировать и выводить на экран целое псевдослучайное число из отрезка [a; b].

 

<== предыдущая лекция | следующая лекция ==>
Арифметические операции | Условный оператор if
Поделиться с друзьями:

mylektsii.su - Мои Лекции - 2015-2024 год. (0.007 сек.)Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав Пожаловаться на материал