Статья Автор: Лебедев Дмитрий

О бедном Квадрате замолвите слово ...

I. Наступил 2025 год. Учитель во втором классе задает детям вопрос:
Какие свойства числа 2025 можно отметить?
  • четырёхзначное
  • нечётное
  • кратно 5
  • ......
Продолжите список ...
 
А какие свойства есть у квадратов? Какие свойства определяют, что число квадрат/не может быть квадратом?

II. Как вычислить значение квадрата?
  1.  На компьютере
  2.  На бумаге
  3.  Устно 
    1. 15, 25, 35, ,,, 95, 105, ,,,, 99999995, ...
    2. 101, 102, ...., 119
    3. 99, 98, ..., 81,
    4. 31, 32, ..., 49, 51,52, ..., 69
    5. 1580, 2025, ...
Попробуйте перенести эти правила в системы счисления с другим основание и вычислети устно/полуустно:
  1. \(74^2_8\)
  2. \(77^2_8\)
  3. \(D8^2_{16}\) (квадрат квадрата черной королевы smiley)
  4. \(103^2_{19}\)
  5. \(BA^2_{12}\)

Эти свойства квадратов можно получить из формул сокращенного умножения, но проще это сделать из метода опорного умножения
Для начала проверьте утверждение (алгебраическое тождество), число x будем называть "удобным числом"
\(a\cdot b = x\cdot(a+b - x)+(a - x)\cdot(b -x)\) 
всё верно, но зачем? Сделаем "мнемонимескую запись"
\(a^{a-x} \cdot\ b^{b-x}\ = x(b+(a-x)) +(a-x)(b-x)\\ \ \ \ \ \ \ \ \ x\)
и повторим её для примера a=13, b=14 и положим "удобному числу"  x=10
 \(13^3\cdot\ 14^4\ = 10\cdot(14+3) +3\cdot4=170+12=182\\ \ \ \ \ \ 10\)
Используем "опроное умножение" для определения значения 372
возьмем "удобное число" равное 50, тогда
\(37^{37-50}\cdot\ 37^{37-50}\ = 50\cdot(37+37-50) +(37-50)^2)=(37-25)\cdot100 + 13^2= 1369\\ \ \ \ \ \ \ \ \ \ \ \ 50\)
несложно проверить, что
  •  \(a^2 = (a-25)\cdot 100+ (a-50)^2 \) - "правило 25/50"
  • \(a^2 = (a-(100-a))\cdot 100+ (a-100)^2 \) "правило 100"
Несложно обобщить эти правила и вывести правило 250/500, 1000, ... 
Вычислите 20252, 15802

Вопрос для тех, кто сдавал ОГЭ по математике.
Зачем в раздаточных материалах дана таблица квадратов чисел?
Правильно на этот вопрос довольно сложно,
 

!!. Как проверить, что число n - точный квадрат
  1. Используя библиотеку math
  2. Без math, но используя **
  3. Без использования **
  4. Без использования *, но можно использовать битовые <, > и целочисленное деление //
  5. Используя бинарный поиск 
Нет ничего проще, скажите Вы и приведете следующий код (или аналогичный 
n = int(input())
x = n ** 0.5
if x % 1 == 0 : # это проверка на целое, можно x - int(x) == 0
    print ( ' {} есть квадрат числа {}'.format(n, x))


Хорошо, что в классе был ученик Фома, который не верил в "идеальный Питон" и на следующий урок принес два числа NF и MF, 
для которых проверка, что "корень есть целое число" дает неверный результат
  • NF такое, что (NF**2)**0.5  -  int((NF**2) ** 0.5) == 0 , но NF >   NF**2  > int((NF**2)** 0.5)
  • MF такое, что MF**0.5  -  int((MF** 0.5) == 0, но MF  < int((MF** 0.5)
Ещё Фома сказал, что MF он нашел "легко", а с NF ему пришоль "повозиться"
Фома "спрятал" свои числа, но для доказательства представил код devil


Попробуйте самостоятельно найти числа  типа MF, NF cool
А как надо проверять, что N есть квадрат натурального или излекать корень?
  • для практических целей можно использовать приведенное (N ** 0.5) % 1 == 0
  • можно усилить данную проверку
    x = int (N ** 0.5)
    N == x * x  or (x+1) * (x + 1) # такая проверка будет работать в "почти бесконечном интервале"
Задачу о проверке того, что N - точный квадрат, логичнее заменить на следующее:


 
​​​​​​​
  •  
Пропустить Навигационные Ссылки.
Чтобы оставить комментарий нужна авторизация
Печать