Квадрат числа — это результат умножения числа само на себя. Для числа x его квадрат записывают как x в степени 2 (x²) и вычисляют по формуле x² = x · x. Например, квадрат пятерки равен 25, потому что 5 · 5 = 25.
Содержание
- Что такое квадрат числа
- Квадрат отрицательного числа: важное свойство
- Полные квадраты и квадратный корень
- Как возвести число в квадрат в Python
- Частая ошибка: минус и оператор степени
- Возведение в квадрат в C++
- Битовый сдвиг: почему им нельзя возвести в квадрат
- Выводы
- Где применяется на практике
- FAQ
Ниже разберем, что такое квадрат числа с точки зрения математики, почему он никогда не бывает отрицательным, и как возвести число в квадрат в коде: через умножение, оператор степени и функцию pow. Отдельно покажу две частые ошибки — со знаком минуса и с битовым сдвигом.
Что такое квадрат числа
Квадрат — это частный случай возведения в степень: степень равна 2. Чтобы возвести число в квадрат, его берут множителем дважды и считают произведение:
- 3² = 3 · 3 = 9
- 10² = 10 · 10 = 100
- 1.5² = 1.5 · 1.5 = 2.25
Название «квадрат» пришло из геометрии: если у квадрата сторона равна x, то его площадь равна x · x. Поэтому x² можно представить как площадь квадрата со стороной x. Возводить в квадрат можно любые числа — целые, дробные и отрицательные, не только натуральные.
Квадрат отрицательного числа: важное свойство
Квадрат любого действительного числа неотрицателен: он всегда больше нуля или равен нулю. Причина простая — при умножении двух отрицательных чисел знаки взаимно уничтожаются:
- (-3)² = (-3) · (-3) = 9
- (-0.5)² = (-0.5) · (-0.5) = 0.25
- 0² = 0
Отсюда следствие: два разных числа могут иметь один и тот же квадрат. И у 3, и у -3 квадрат равен 9. Это важно помнить, когда по квадрату восстанавливают исходное число: квадратный корень из 9 дает 3, но уравнение x² = 9 имеет два решения — 3 и -3.
Полные квадраты и квадратный корень
Полный (точный) квадрат — это целое число, которое равно квадрату другого целого числа. Иначе говоря, из него извлекается целый квадратный корень. Первые полные квадраты образуют последовательность:
0, 1, 4, 9, 16, 25, 36, 49, 64, 81, 100
Например, 100 — полный квадрат, потому что 10² = 100 и √100 = 10. А 50 полным квадратом не является: √50 — это примерно 7.07, целого корня нет.
Возведение в квадрат и извлечение квадратного корня — взаимно обратные операции для неотрицательных чисел: сначала возводим 6 в квадрат и получаем 36, затем берем корень из 36 и снова получаем 6.
Как возвести число в квадрат в Python
В Python есть три способа получить квадрат, и все они дают одинаковый результат для целых чисел:
x = 6
print(x * x) # умножение
print(x ** 2) # оператор степени
print(pow(x, 2)) # встроенная функция pow
Вывод:
36
36
36
Разница между способами тонкая, но ее стоит знать при выборе:
| Способ | Что делает | Когда применять |
|---|---|---|
x * x |
прямое умножение | простой и наглядный вариант для квадрата |
x ** 2 |
оператор возведения в степень | когда степень может меняться (2, 3, n) |
pow(x, 2) |
встроенная функция | то же, что **; есть форма pow(x, 2, m) для остатка по модулю |
Отдельно есть math.pow — но он всегда возвращает число с плавающей точкой, а не целое:
import math
print(pow(5, 2)) # встроенный pow: целое
print(5 ** 2) # оператор: целое
print(math.pow(5, 2)) # math.pow: float
Вывод:
25
25
25.0
Для целочисленных расчетов, где важна точность (например, счетчики или индексы), берут x * x или x ** 2: они возвращают точное целое. math.pow уводит результат в тип float и на очень больших числах может потерять точность.
Частая ошибка: минус и оператор степени
С оператором ** легко ошибиться из-за приоритета операций. В Python возведение в степень выполняется раньше, чем унарный минус. Поэтому -3 ** 2 читается как «минус (3 в квадрате)», а не как «(минус три) в квадрате».
Неверно (если хотели получить квадрат числа -3):
print(-3 ** 2) # ожидали 9
Фактический вывод:
-9
Сначала вычисляется 3² = 9, и только потом применяется минус, получается -9. Если же отрицательное число уже лежит в переменной, все считается верно, потому что скобки минусу не нужны:
n = -3
print(n ** 2) # тут переменная, знак уже внутри значения
Вывод:
9
Исправление для литерала — явные скобки вокруг отрицательного числа:
print((-3) ** 2)
Вывод:
9
Правило простое: когда возводите в квадрат отрицательный литерал, всегда ставьте скобки — (-3) ** 2.
Возведение в квадрат в C++
В C++ квадрат тоже чаще всего считают обычным умножением. Функция std::pow из заголовка <cmath> работает через числа с плавающей точкой:
#include <iostream>
#include <cmath>
int main() {
int x = 12;
long long sq = (long long)x * x; // точное целое
double sq_pow = std::pow(x, 2); // через плавающую точку
std::cout << sq << " " << sq_pow << std::endl;
return 0;
}
Вывод:
144 144
Для целых чисел предпочтителен вариант x * x: он не связан с плавающей точкой и не округляется. У std::pow результат имеет тип double, и при обратном приведении к целому на больших значениях возможна потеря точности (конкретное поведение зависит от компилятора и платформы). Приведение (long long)x * x защищает от переполнения int, если x достаточно велик.
Битовый сдвиг: почему им нельзя возвести в квадрат
Иногда возведение в квадрат путают с битовым сдвигом. Это разные операции. Сдвиг влево на n позиций умножает число на 2 в степени n, а не возводит его в квадрат.
Выражение 1 << n дает степень двойки: 2 в степени n. Например, 1 << 5 — это 32. А x << 1 умножает x на 2 (удвоение), а не возводит в квадрат:
x = 6
print(x << 1) # надеялись на 36
Фактический вывод:
12
Получилось 12, потому что сдвиг на одну позицию — это просто умножение на 2. Для квадрата нужно умножение:
x = 6
print(x * x) # квадрат
Вывод:
36
Битовый сдвиг помогает только в узком случае — когда сама база является степенью двойки. Тогда квадрат степени двойки — это опять степень двойки: (2 в степени k), возведенное в квадрат, равно 2 в степени 2k.
k = 5
p = 1 << k # 2 в степени 5
print(p) # значение p
print(p * p) # квадрат через умножение
print(1 << (2 * k)) # то же значение через сдвиг
Вывод:
32
1024
1024
Вывод раздела: возвести в квадрат произвольное число битовым сдвигом нельзя. Сдвиг умножает и делит на степени двойки, а квадрат считают умножением x * x или оператором степени.
Выводы
- Квадрат числа — это число, умноженное само на себя: x² = x · x; квадрат 5 равен 25.
- Квадрат любого действительного числа неотрицателен, поэтому у 3 и -3 квадрат одинаковый (9), а уравнение x² = 9 имеет два корня.
- В Python квадрат дают
x * x,x ** 2иpow(x, 2)(все возвращают целое для целых), аmath.powвозвращает float. - Для отрицательного литерала нужны скобки:
-3 ** 2равно -9, а(-3) ** 2равно 9. - Битовый сдвиг умножает на степени двойки и квадрат числа не считает;
x << 1— это удвоение, а не возведение в квадрат.
Где применяется на практике
Возведение в квадрат встречается постоянно: в геометрии (площадь, теорема Пифагора), в статистике (дисперсия и метрика среднеквадратичной ошибки), в физике и в машинном обучении, где квадрат разности используют в функциях потерь. Понимание, чем x * x отличается от pow и от битового сдвига, экономит время на отладке и уберегает от ошибок точности.
Освойте тему на практике
Разобраться с числами, операторами и типами данных с нуля и на практике помогает курс Python-разработка с нуля: на нем как раз отрабатывают арифметику, приоритет операций и работу с числовыми типами.
Освойте тему на практике
Посмотреть, как объясняют такие темы преподаватели, и задать вопросы можно на открытых вебинарах Otus — они бесплатные и проходят регулярно.
Смежные темы: Как возводить в степень в Java, Как возвести матрицу в степень.
FAQ
Может ли квадрат числа быть отрицательным? Для действительных чисел — нет: квадрат всегда больше нуля или равен нулю. Отрицательный квадрат появляется только у мнимых чисел, например i² = -1, но это уже область комплексных чисел.
Чем ** отличается от math.pow в Python? Оператор ** и встроенная pow для целых аргументов возвращают целое число и сохраняют точность. math.pow всегда переводит результат в тип float, поэтому для целочисленных задач берут ** или x * x.
Как быстро проверить, является ли число полным квадратом? Извлечь квадратный корень и сравнить с ближайшим целым: если корень целый, число — полный квадрат. В Python для целых удобна функция math.isqrt: если math.isqrt(n) ** 2 == n, значит n является полным квадратом.



