Рассказы о математике | страница 4



int x;

printf("x=%d\n", x);


Однако при его запуске выведется значение 4196608, или 0, или 32, результат непредсказуем. В большой программе такие ошибки может быть сложно найти, тем более что проявляться они могут не всегда.


Арифметические операции


Сложение, умножение, деление:

x1 = 3

x2 = (2*x1*x1 + 10*x1 + 7)/x1


Возведение в степень:

x3 = x1**10

print (x1,x2,x3)


Переменную также можно увеличить или уменьшить:

x1 += 1

x1 -= 10

print (x1)


Остаток от деления:

x2 = x1 % 6

print (x2)


Условия в Python кстати, задаются отступами, аналогично циклам:

print (x1)

if x1 % 2 == 0:

print("x1 четное число")

else:

print("x1 нечетное число")


Подсчитаем сумму элементов массива:

values = [1,2,3,5,10,15,20]

s = 0

for p in values:

s += p

print(s)


Также для этого можно воспользоваться встроенной функцией sum:

values = [1,2,3,5,10,15,20]

print(sum(values))


В Си вычисление суммы элементов массива выглядит так:

int sum = 0;

for(int i=0; i

       sum += values[i];

      }

      printf("Sum=%d\n", sum);


Для более сложных операций в Python необходимо подключить модуль math. Вычисление квадратного корня:

import math


print (math.sqrt(x3))


Python может делать вычисления с большими числами, что достаточно удобно:

import math


x1 = 12131231321321312312313131124141

print (10*x1)

print (math.sqrt(x1))


Можно вывести даже факториал числа 1024, что не сделает ни один калькулятор:

import math


print(math.factorial(1024))


Пожалуй, этого не хватит чтобы устроиться на работу программистом, но вполне достаточно для понимания большинства примеров в книге. Теперь вернемся к математике.


2. Математические фокусы

Для “разминки” рассмотрим несколько фокусов, имеющих отношение к числам. Никаких особых сложностей в них нет, но их знание поможет развеселить или удивить знакомых знанием математики.


Умножение в уме числа на 11

Рассмотрим простой пример:

26*11 = 286


Сделать это в уме просто, если взять сумму чисел и поместить в середину:

26*11 = 2 [ 2+6 ] 6

Аналогично 43*11 = 473, 71*11 = 781 и так далее.


Чуть длиннее расчет, если сумма чисел больше либо равна 10. Но и тогда все просто: в середину кладется младший разряд, а 1 уходит в старший разряд:

47*11 = [4] [4+7=11] [7] = [4+1] [1] [7] = 517

94*11 = [9] [9+4=13] [4] = [10] [3] [4] = 1034


Возведение в квадрат числа, оканчивающегося на 5

Подсчитать это тоже просто. Если число рассмотреть как пару NM, то первая часть результата - это число N, умноженное на (N+1), вторая часть числа - всегда 25.