Skip to content

Commit 11ea3c5

Browse files
committed
New chapter: Random Numbers
1 parent e8585d2 commit 11ea3c5

File tree

3 files changed

+41
-0
lines changed

3 files changed

+41
-0
lines changed

src/SUMMARY.md

+1
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@
4141
- [Изменяемость объектов](js/objects_mutability.md)
4242
- [Динамический доступ к свойствам объекта](js/dynamic_property_access.md)
4343
- [Итерация по свойствам объекта](js/iterating_over_object_properties.md)
44+
- [Случайные числа](js/random_numbers.md)
4445

4546
- [Web APIs](web_apis/index.md)
4647
- [Document Object Model (DOM)](web_apis/dom.md)

src/js/random_numbers.md

+36
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
# Случайные числа
2+
3+
Некоторым приложениям требуется возможность генерировать случайные значения. Например, на сайте может генерироваться случайный вопрос, чтобы проверить, что пользователь не является роботом, а в игре может случайным образом определяться поведение неигровых персонажей.
4+
5+
В JavaScript для генерации случайных значений используется функция `Math.random`. Она возвращает случайное вещественное число от 0 включительно до 1 не включительно.
6+
7+
```js
8+
Math.random(); // Возвращает: 0.40862703961973523
9+
Math.random(); // Возвращает: 0.30599854398541704
10+
Math.random(); // Возвращает: 0.9685366358106878
11+
```
12+
13+
Имея случайное вещественное число от 0 до 1, его можно превратить в любое другое случайное значение. Например, чтобы получить числа из другого диапазона, с имеющимся случайным числом можно произвести те или иные арифметические операции.
14+
15+
```js
16+
Math.random() * 100; // Случайное число из диапазона [0; 100)
17+
Math.random() * 100 - 50; // Случайное число из диапазона [-50; 50)
18+
```
19+
20+
Для получения целого числа можно имеющееся вещественное число округлить к меньшему при помощи функции `Math.floor`. Стоит использовать именно округление к меньшему, а не округление к ближайшему целому, в противном случае числа на краях диапазона будут выпадать реже остальных.
21+
22+
```js
23+
Math.floor(Math.random() * 100); // Случайные целые числа от 0 до 99 включительно
24+
```
25+
26+
## Упражнения
27+
28+
1. Напиши выражения на языке JavaScript, которые возвращают:
29+
30+
- Случайное целое число от 0 до 9 включительно
31+
- Случайное целое число от 0 до 10 включительно
32+
- Случайное вещественное число от -20 включительно до 30 не включительно
33+
- Случайное чётное число от 0 до 98 включительно
34+
- Случайное логическое значение: false или true
35+
36+
1. Напиши программу генерации паролей. Программа должна выдавать пользователю случайным образом сгенерированный пароль. Пароли могут состоять из букв, цифр и прочих символов. Требования к сложности пароля определи самостоятельно.

src/web_apis/working_with_element_classes.md

+4
Original file line numberDiff line numberDiff line change
@@ -102,3 +102,7 @@ document.querySelector("body").appendChild(ul);
102102
1. Реализуй страницу-галерею. Галерея состоит из трёх или более карточек. Каждая карточка содержит изображение, его название и один или несколько абзацев с его описанием. Единовременно отображается только одна карточка. Для переключения на следующую или на предыдущую карточку предусмотрены две соответствующие кнопки.
103103

104104
> **Подсказка**: чтобы не конструировать элементы карточек через JavaScript, можно заранее создать все карточки в HTML, а через JavaScript только назначать класс с CSS-свойством `display: none` тем карточкам, которые сейчас не отображаются.
105+
106+
1. Компания решила при помощи A/B-тестирования проверить, понравится ли пользователям новый дизайн сайта. Идея A/B-тестирования заключается в том, что части пользователей предлагается один вариант продукта (вариант "A"), а части — другой (вариант "B"), после чего варианты сравниваются по реакциям пользователей.
107+
108+
Создай страницу с любым содержимым и двумя вариантами дизайна: условно "классическим" и "экспериментальным". При загрузке страницы с вероятностью 80% должен показываться "классический" дизайн, а с вероятностью 20% — "экспериментальный".

0 commit comments

Comments
 (0)