Featured image of post C++: cmath и rand

C++: cmath и rand

Изучите богатую библиотеку математических функций в C++ и научитесь генерировать случайные числа для вашей программы. Примеры и объяснения включены

Расширенные функции математики (библиотека cmath)

C++ предоставляет богатую библиотеку для математических операций, которая включает в себя заголовочный файл cmath. В этой библиотеке содержатся различные математические функции, такие как sqrt (квадратный корень), sin (синус), cos (косинус), log (натуральный логарифм), и многие другие. Вот пример использования функции sqrt и формулы Герона для вычисления площади треугольника:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
#include <iostream>
#include <cmath>
using namespace std;

int main() {
    double a, b, c;
    cout << "Введите длины сторон треугольника: ";
    cin >> a >> b >> c;

    double s, p;
    p = (a + b + c) / 2; // Полупериметр
    s = sqrt(p * (p - a) * (p - b) * (p - c)); // Формула Герона для площади

    cout << "Площадь треугольника: " << s << endl;
    
    return 0;
}
Функция Описание
sqrt(x) Квадратный корень числа x.
cbrt(x) Кубический корень числа x.
pow(x, y) Возводит число x в степень y.
exp(x) Вычисляет экспоненту (e^x).
log(x) Натуральный логарифм числа x.
log10(x) Десятичный логарифм числа x.
fabs(x) Абсолютное значение числа x.
ceil(x) Округляет число x до ближайшего большего целого.
floor(x) Округляет число x до ближайшего меньшего целого.
sin(x) Синус угла x (x в радианах).
cos(x) Косинус угла x (x в радианах).
tan(x) Тангенс угла x (x в радианах).
asin(x) Арксинус числа x (возвращает угол в радианах).
acos(x) Арккосинус числа x (возвращает угол в радианах).
atan(x) Арктангенс числа x (возвращает угол в радианах).
sinh(x) Гиперболический синус числа x.
cosh(x) Гиперболический косинус числа x.
tanh(x) Гиперболический тангенс числа x.
fmod(x, y) Остаток от деления x на y.
modf(x, &intPart) Разделяет число x на целую и дробную части.
hypot(x, y) Гипотенуза прямоугольного треугольника.
ldexp(x, exp) Умножает x на 2^exp.
frexp(x, &exp) Разделяет число x на мантиссу и экспоненту.

Генерация случайных чисел (рандом)

C++ предоставляет библиотеку random, которая позволяет генерировать случайные числа. Она включает в себя классы и функции для работы с случайными числами. Вот пример игры “угадай число от 1 до 100” с использованием случайных чисел:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;

int main() {
    srand(time(0)); // Инициализация генератора случайных чисел

    int secretNumber = rand() % 100 + 1; // Генерация случайного числа от 1 до 100
    int guess;
    int attempts = 0;

    cout << "Попробуйте угадать число от 1 до 100." << endl;

    do {
        cout << "Ваш вариант: ";
        cin >> guess;
        attempts++;

        if (guess < secretNumber) {
            cout << "Загаданное число больше." << endl;
        } else if (guess > secretNumber) {
            cout << "Загаданное число меньше." << endl;
        } else {
            cout << "Поздравляем! Вы угадали число " << secretNumber << " с " << attempts << " попыток!" << endl;
        }
    } while (guess != secretNumber);

    return 0;
}

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

MIT License
comments powered by Disqus
Сделано с 💖
Создано при помощи Hugo
Тема Stack, дизайн Jimmy