Математика и гармония: Математические алгоритмы
Изобилие математических алгоритмов особенно бросается в глаза: алгоритмы вычитания десятичных положительных дробей, умножение десятичных дробей (столбиком), деление десятичных дробей и т.д. и т.п.
Ещё раннее каждый школьник изучает алгоритмы сложения натуральных чисел, вычитания натуральных чисел, таблицу умножения.
Знание алгоритмов поможет избежать многих вычислительных ошибок. Остановимся на алгоритмах, изучаемых в пятом и шестом классах. Итак,
5 класс
Алгоритмы арифметических действий:Алгоритм умножения числа на произведение (сочетательное свойство умножения)
Чтобы умножить число на произведение двух чисел, можно сначала умножить его на первый множитель, а потом полученное произведение умножить на второй множитель.
Алгоритм вычитания суммы
Для того чтобы вычесть сумму из числа, можно вначале вычесть из этого числа первое слагаемое, а потом из полученной разности – второе слагаемое;
Алгоритм вычитания числа из суммы
Чтобы из суммы вычесть число, можно вычесть его из одного слагаемого, а к полученной разности прибавить второе слагаемое.
Алгоритм умножения числа на произведение (сочетательное свойство умножения)
Чтобы умножить число на произведение двух чисел, можно сначала умножить его на первый множитель, а потом полученное произведение умножить на второй множитель.
Алгоритм умножения суммы на число (распределительное тельное свойство умножения относительно сложения)
Для того чтобы умножить сумму на число, можно умножить на это число каждое слагаемое и сложить получившиеся произведения.
Алгоритм умножения разности на число (распределительное тельное свойство умножения относительно вычитания)
Для того, чтобы умножить разность на число, можно умножить на это число уменьшаемое и вычитаемое и из первого произведения вычесть второе.
Алгоритм нахождения неизвестного слагаемого
Чтобы найти неизвестное слагаемое, надо их суммы вычесть известное слагаемое.
Алгоритм нахождения неизвестного уменьшаемого
Чтобы найти неизвестное уменьшаемое, надо сложить вычитаемое и разность.
Алгоритм нахождения неизвестного вычитаемого
Чтобы найти неизвестное вычитаемое, надо из уменьшаемого вычесть и разность.
Алгоритм нахождения неизвестного множителя
Чтобы найти неизвестный множитель, надо произведение разделить на известный множитель.
Алгоритм нахождения неизвестного делимого
Чтобы найти неизвестное делимое, надо частное умножить на делитель.
Алгоритм нахождения неизвестного делителя
Чтобы найти неизвестный делитель, надо делимое разделить на частное.
Алгоритм решения задач с помощью уравнения
1. Прочитать внимательно условие задачи;
2. Записать кратко условие задачи, записав все величины (единицы их измерения) , названные в задаче, установив связи и зависимости между ними;
3.Выбрать неизвестное задачи;
4. Выразить остальные величины задачи, установить связи их с неизвестным задачи;
5. Составить уравнение задачи, обосновав его условием задачи;
6. Решить уравнение;
7. Сделать проверку;
8. Выписать ответ.
Алгоритм выполнения порядка действий
1. Если в выражении нет скобок, и оно содержит действия только одной ступени, то их выполняют по порядку слева направо.
2. Если выражение содержит действия первой (сложение и вычитание) и второй (умножение и деление) ступени и в нем нет скобок, то сначала выполняют действия второй ступени, а потом – действия первой ступени.
3. Если в выражении есть скобки, то сначала выполняют действия в скобках (учитывая при этом правила 1 и 2).
Алгоритмы для обыкновенных дробей
Алгоритм сравнения дробей с одинаковыми знаменателями
а) Выбрать наибольшую дробь с одинаковыми знаменателями ту, у которой больше числитель;
б) Выбрать наименьшую дробь с одинаковыми знаменателями ту, у которой меньше числитель.
Алгоритмы сложения и вычитания дробей с одинаковыми знаменателями
а) При сложении дробей с одинаковыми знаменателями числители складывают, а знаменатели оставляют тот же;
б) При вычитании дробей с одинаковыми знаменателями из числителя уменьшаемого вычитают числитель вычитаемого, а знаменатели оставляют тот же.
Алгоритмы представления смешанного числа в виде неправильной дроби
1. Умножить его целую часть на знаменатель дробной части;
2. К полученному произведению прибавить числитель дробной части;
3. Записать полученную сумму числителем дроби, а знаменатель дробной части оставить без изменения.
Алгоритмы для десятичных дробей
Алгоритм сложения (вычитания) десятичных дробей
Чтобы сложить (вычесть) десятичные дроби, нужно:
1. уравнять в этих дробях количество знаков после запятой;
2. записать их друг под другом так, чтобы запятая была записана под запятой;
3. выполнить сложение (вычитание), не обращая внимания на запятую;
4. поставить в ответе запятую под запятой в данных дробях.
Алгоритм округления десятичных дробей
а) Если первая отброшенная или замененная нулём цифра равна 5, 6,7, 8, 9, то стоящую перед ней цифру увеличивают на 1.
а) Если первая отброшенная или замененная нулём цифра равна 0, 1, 2, 3, 4, то стоящую перед ней цифру оставляют без изменения.
Алгоритм умножения десятичной дроби на натуральное число
Чтобы умножить десятичную дробь на натуральное число, надо:
1. умножить её на это число, не обращая внимания на запятую;
2. в полученном произведении отделить запятой столько цифр справа , сколько их отделено запятой в десятичной дроби.
Алгоритм умножения десятичной дроби на 10, 100, 1000, ….
Чтобы умножить десятичную дробь на 10, 100, 1000, … надо в этой дроби перенести запятую на столько цифр вправо, сколько нулей стоят в множителе после единицы.
Алгоритм деления десятичных дробей на натуральные числа
Чтобы разделить десятичную дробь на натуральное число, надо:
1. разделить дробь на это число, не обращая внимания на запятую;
2. поставить в частном запятую, когда кончится деление целой части.
Алгоритм деления десятичной дроби на 10, 100, 1000, ….
Чтобы разделить десятичную дробь на 10, 100, 1000, …надо перенести запятую в этой дроби на столько цифр влево, сколько нулей стоит после единицы в делителе.
Алгоритм умножения десятичных дробей
Чтобы перемножить две десятичные дроби, надо:
1. выполнить умножение, не обращая внимания на запятые;
2. отделить запятой столько цифр справа, сколько их стоит после запятой в обоих множителях вместе;
3. если в произведении получается меньше цифр, чем надо отделить запятой, то впереди пишут нуль или несколько нулей.
Алгоритм умножения числа на 0,1; 0,01, 0,001 …
Для того чтобы умножить число на 0,1; 0,01, 0,001 надо:
1. разделить его на 10,100, 1000;
2. перенести запятую на столько цифр, сколько нулей стоит перед единицей в множителе.
Алгоритм деления числа на десятичную дробь
Для того чтобы разделить число на десятичную дробь, надо:
1. В делимом и в делителе перенести запятую вправо на столько цифр, сколько их после запятой в делителе;
2. после этого выполнить деление на натуральное число.
Алгоритм деления числа на 0,1; 0,01, 0,001
Для того чтобы разделить десятичную дробь на 0,1; 0,01, 0,001…, надо:
перенести в ней запятую вправо на столько цифр, сколько в делителе стоит нулей перед единицей ( то есть умножить её на 10, 100, 1000.
Алгоритм нахождения среднего арифметического
Для нахождения среднего арифметического нескольких чисел надо:
1.найти сумму этих чисел;
2. разделить полученную сумму на число слагаемых;
3. выписать частное в ответ.
Алгоритм обращения десятичной дроби в проценты:
Чтобы обратить десятичную дробь в проценты надо умножить дробь на 100.
Алгоритм перевода процентов в десятичную дробь
Чтобы перевести проценты в десятичную дробь, надо разделить число процентов на 100.
6 класс
Признаки делимостиПризнак делимости на 10
Если запись натурального числа оканчивается цифрой 0, то это число делится без остатка на 10.
Например:
100; 1000; 100000 и т.п.
Признак делимости на 5
Если запись натурального числа оканчивается цифрами 0 и 5, то это число делится без остатка на 5.
Например:
45; 55; 15; 10; 10000 и т.п.
Признак делимости на 2
Если запись натурального числа оканчивается четной цифрой, то это число четно и делится без остатка на 2.
Например:
32; 12; 224; 2098 и т. п.
Признак делимости на 3
Если сумма цифр числа делится на 3, то и число делится на 3.
Например:
15; 273; 474; 765; и т.п.
Признак делимости на 9
Если сумма цифр числа делится на 9, то и число делится на 9.
783; 549; 1233; 27954; и т.п.
Разложение на простые множители
Алгоритм нахождения НОД (наибольшего общего делителя)
Чтобы найти наибольший общий делитель нескольких натуральных чисел, надо:
1. разложить их на простые множители;
2. из множителей, входящих в разложение одного из этих чисел, вычеркнуть те, которые не входят в разложение других чисел;
3. найти произведение оставшихся множителей.
Например:
48 = 2*2*2*2*3; 36 = 2*2*3*3; НОД(48;36)= 2*2*3 = 12.
Алгоритм нахождения НОК (наименьшего общего кратного)
Чтобы найти наименьшее общее кратное нескольких натуральных чисел, надо:
1. разложить их на простые множители;
2. выписать множители, входящие в разложение одного из чисел;
3. добавить к ним недостающие множители из разложений остальных чисел;
4. найти произведение оставшихся множителей.
Например:
48 = 2*2*2*2*3; 36 = 2*2*3*3; НОК(48;36)= 2*2*2*2*3*3 = 144.
Алгоритмы для обыкновенных дробей
Алгоритм сокращения дробей
Для того чтобы сократить дробь необходимо и числитель и знаменатель дроби разделить на их общий делитель, отличный от 1.
Алгоритм приведения дробей к общему знаменателю
Чтобы привести дроби к наименьшему общему знаменателю надо:
1. Найти наименьшее общее кратное знаменателей этих дробей, оно и будет их наименьшим общим знаменателем;
2. разделить наименьший общий множитель на знаменатели данных дробей, т.е. найти для каждой дроби дополнительный множитель;
3. умножить числитель и знаменатель каждой дроби на её дополнительный множитель;
Алгоритм сравнения, сложения, вычитания
дробей с разными знаменателями
Чтобы сравнить (сложить, вычесть) дроби с разными знаменателями надо:
1. привести данные дроби к наименьшему общему знаменателю;
2. сравнить, сложить, вычесть полученные дроби.
Алгоритм сложения смешанных чисел
Чтобы сложить смешанные числа надо:
1. привести дробные части этих чисел к наименьшему общему знаменателю;
2. отдельно выполнить сложение целых частей и отдельно дробных частей. Если при сложении дробных частей получилась неправильная дробь, выделить целую часть из этой дроби и прибавить её к полученной целой части.
Алгоритм вычитания смешанных чисел
Чтобы вычесть смешанные числа надо:
1. привести дробные части этих чисел к наименьшему общему знаменателю; если дробная часть уменьшаемого меньше дробной части вычитаемого, превратить её в неправильную дробь, уменьшив на единицу целую часть;
2. отдельно выполнить вычитание целых частей и отдельно дробных частей.
Алгоритм умножения дроби на натуральное число
Чтобы умножить дробь на натуральное число , надо её числитель умножить на это число, а знаменатель оставить без изменения.
Алгоритм умножения дроби на дробь
Чтобы умножить дробь на дробь надо:
1. найти произведение числителей и произведение знаменателей этих дробей;
2. первое произведение записать числителем, а второе – знаменателем.
Алгоритм умножения смешанных чисел
Чтобы умножить смешанные числа надо:
1.их записать в виде неправильных дробей;
2.воспользоваться правилом умножения дробей.
Алгоритм нахождения дроби от числа
Чтобы найти дробь от числа, надо умножить число на эту дробь.
Алгоритм умножения смешанного числа на натуральное число
(применение распределительного свойства умножения)
Чтобы умножить смешанное число на натуральное число надо:
1. умножить целую часть на натуральное число;
2. умножить дробную часть на это натуральное число;
3. сложить полученные результаты.
Алгоритм деления обыкновенных дробей
Чтобы разделить одну дробь на другую надо:
1. делитель представить в виде обратной дроби;
2. провести умножение делимого и преобразованного делителя.
Алгоритм нахождения числа по его дроби
Чтобы найти число по данному значению его дроби, надо это значение разделить на дробь.
Арифметические действия с положительными и отрицательными числами
Алгоритм сложения отрицательных чисел
Чтобы сложить два отрицательных числа, надо:
1. сложить их модули;
2. поставить перед полученным числом знак « — ».
Например: — 8,7 + (- 3.5) = — (8,7 +3.5) = — 12,2.
Алгоритм сложения чисел с разными знаками
Чтобы сложить два числа с разными знаками, надо:
1. из большего модуля слагаемых вычесть меньший;
2. поставить перед полученным числом знак того слагаемого , модуль которого больше.
Например: 6,1 + (- 4,2) = + (6,1 — 4,2) = 1,9.
Алгоритм нахождения длины отрезка на координатной прямой
Чтобы найти длину отрезка на координатной прямой, надо из координаты его правого конца вычесть координату его левого конца.
Алгоритм умножения чисел с разными знаками
Чтобы перемножить два числа с разными знаками, надо:
1.перемножить модули этих чисел;
2. поставить перед полученным числом знак « — ».
Например: (-1,2) * 0,3 = — (1,2 * 0,3) = — 0,36.
Алгоритм умножения отрицательных чисел
Чтобы перемножить два числа с отрицательными знаками, надо перемножить их модули.
Например: (-3,2) * (-9) = 3,2 * 9 = 28,8.
Алгоритм деления отрицательного числа на отрицательное
Чтобы разделить отрицательное число на отрицательное, надо разделить модуль делимого на модуль делителя.
Например: — 4,5 : (-1,5) = 4,5 : 1,5 = 3.
Алгоритм деления чисел с разными знаками
При делении чисел с разными знаками, надо:
1. разделить модуль делимого на модуль делителя;
2. поставить перед полученным числом знак « — ».
Например: 3,6 : (-3) = — (3,6 : 3) = — 1,2.
Алгоритмы раскрытия скобок
а) Если перед скобками стоит знак «+», то можно опустить скобки и этот знак «+», сохранив знаки слагаемых, стоящих в скобках. Если первое слагаемое в скобках записано без знака, то его надо записать со знаком «+».
Например: — 2,87 + (2,87 – 7,639) = — 2,87 + 2,87 – 7,639 = 0 -7,639 = -7,639.
б). Если перед скобками стоит знак « — », то надо заменить этот знак на « + »,
поменяв знаки всех слагаемых в скобках на противоположные, а потом раскрыть скобки.
Например: 16 – (10 – 18 + 12) = 16 + ( — 10 + 18 – 12) = 16 — 10 + 18 — 12 = 12.
Что такое алгоритм! Часть 3+1 «Математика» / Хабр
Самое интересное и самое сложное, самое скучное и самое полезное об алгоритме. Страна чудес и зазеркалье Алгоритма одновременно. Попробуем подобно известному сказочнику познакомить воображаемую Алису с лабиринтом «мыслей» математика — со способами использования переноса, моделирования и синтеза. И опять под катом много слов и немного картинок…
Задача
Почти все предыдущие статьи этой серии были очень странными. А эта статья будет самой «чудесатой». Поэтому настроенным на взрослый скепсис пожалуй стоит закончить чтение тут, но готовых развлечься с пользой в разговоре с не очень научной строгостью и на очень важные темы — Вам найдется здесь немного «сложноватого» и увлекательного чтения.
В обсуждении предыдущей статьи (как же хорошо что обсуждение наконец состоялось!) стало ясно, что за большим нагромождением слов, каждый раз формирующих статью серии, очень плохо просматривается цель. А цель, с которой все эти слова собираются под заголовком «Что такое алгоритм ?!», очень проста и одновременно амбициозна.
Цель всей работы — это способы создавать алгоритмы без участия человека (формализация и автоматизация этого процесса).
Для достижения обозначенной цели необходимо много составляющих. Прежде всего и самое главное — необходимо найти подсказки, как работать с алгоритмом. Можно попробовать дать определение слова «Алгоритм». Вы скажете определение «Алгоритма» уже существует, и легко найти его, например, на Вики. И да, и нет. На страницах Википедии есть множество определений разных понятий. Давайте рассмотрим простой пример — ну, скажем, возьмем «Молоток». Значение (читай «определение» этого слова) тоже есть на Вики:
Молото́к — небольшой ударный ручной инструмент, применяемый для забивания гвоздей, разбивания предметов и других работ.В основном изготавливается из стали. Молоток — один из древнейших инструментов, используемых разумным человеком.
Тут дан некоторый набор слов. Что из них определение, а что инструкция к применению? Является ли фламинго молотком для крокета. Есть ли в приведенном значении слова «Молоток» сведения, помогающие в изготовлении молотка? Думаю, что подсказок в этом «определении» так же мало, как и в определении слова «Алгоритм», взятом на странице Вики.
А почему этих подсказок нет. Первым делом можно сказать, что это связано с типом приведенного «определения». Это определение неформальное. Оно для человека. А не для математика. И почти потому оно не подходит и для станка, изготавливающего молотки. В чем проблема? Конечно, тут нет проблем. Если этим пользуется человек, то всё нормально. А вот если нам все же нужно сделать станок для производства молотков, то нужно думать. И изобретать формальное определение. Например, это будет «чертеж» или программа для изготовления этого молотка на автоматическом фрезерном станке или какой-то другой вариант описания. И это будет формальное «определение» для изготовления. Формальное «определение» для использования тоже потребуются, если этим молотком будет пользоваться не человек, а машина.
К чему это всё? Возвращаемся к алгоритму. Легкий вывод: чтобы «научить» машину изменять и создавать алгоритм тоже необходимо формальное определение. Если уточнять, то это необходимо пока машина сама не сможет конвертировать наши «определения» на свой язык. Поэтому первая статья серии начинается с разбора существующих определений «алгоритма». И вся работа опирается на констатацию факта, что формального определения алгоритма еще нет. Но для поставленных задач это определение необходимо сформулировать.
… Если быть совсем честными, то формальное определение Алгоритма в работе уже сформировано. Но в этом определении есть недостаток. Это определение — математика. Для того чтобы им начали пользоваться (и может быть добавили в Вики), необходимо предоставить способы применения этой математики к практическим задачам. И таких способов слишком много, и только самые важные появляются в статьях этой серии. И способ, которым является сама Математика, будет рассмотрен в текущей статье. Да, мы будем с помощью Математики описывать как работает Математика. Думаю, Льюис Кэрролл порадовался бы такому приключению для Алисы. С чего же нам начать? Ах, да…
Следуй за белым кроликом. Тук-тук…
Алгоритм сложения
В предыдущей статье этой серии с загадочным номером 101, мы уже на «небольшом» примере изготовления торта познакомились с тремя способами создавать алгоритмы: это случайное обнаружение алгоритма, объединение алгоритмов и эволюционная аккумуляция алгоритма. Эти способы хороши — с их использованием алгоритмы успешно, но очень медленно развивались, и они развивались бы и дальше. Но так случилось, что на их основе были сформированы следующие два. Эти способы: алгоритмический перенос и трансляция алгоритма из модели. И с этой парой, как у Алисы со встречей Траляля и Труляля, всё стало развиваться значительно веселее и, что самое главное, это позволило гораздо быстрее формировать новые и сложные алгоритмы. Что же это за близнецы Перенос и Трансляция? И почему необходимо их все же различать для продолжения разговора об Алгоритме?
Ответам на эти вопросы посвящена текущая статья. И, чтобы начать наше приключение, все же будет необходимо воспользоваться результатом предыдущей статьи. Необходимо попробовать испеченный в ней волшебный тортик с надписью «Съешь меня». Попробовать не на вкус, но использовать как рабочий метод разбора формирования сложного алгоритма.
И в этой статье будет особенный алгоритм. Для наших целей нам очень подойдёт простой и одновременно уже знакомый нам — «Алгоритм сложения». Мы встречались с ним в первой статье этой серии.
Давайте немного с ним развлечёмся, оценивая структуру этого «математического действия», которое для многих наших задач является элементарным. Ведь эта элементарность появилась не сразу. И для Алисы это действие еще сложнó и не всегда дается.
Сложению тебя обучили? – спросила Белая Королева. – Сколько будет один плюс один плюс один плюс один плюс один плюс один плюс один плюс один плюс один плюс один?– Я не знаю, – ответила Алиса.
– Я сбилась со счета.
Поможем Алисе обучиться такому сложению? Давайте рассмотрим ситуацию с участием «древнего математика», которому впервые могла понадобиться эта математическая операция. У этого «математика» тоже было что считать. Это, конечно были не слова «один» во фразе королевы, но тоже очень одинаковые объекты. Ну, например, коровы в большом стаде. И пусть сначала в его стаде было три-семь коров, так что, окинув их взглядом, «математик» всегда мог легко сказать их «количество». Это «количество» изначально даже не было числом. Это был способ оценить количество стогов сена, которое нужно запасти на зиму для стада. Или оценить количество времени, которое нужно потратить на заготовку этого сена.
Попробуем на примере стада коров разобраться в последовательности событий и действий человека, ухаживающего за стадом, приведшей к появлению «Алгоритма сложения». Мы основываемся на некоторых фактах. Например, что человек, ухаживающий за стадом, (далее будем условно называть его «пастухом») знает, что для одной коровы количество времени для заготовки сена на зиму — это полдня.
Опять, как и предыдущей статье, рассматриваемый алгоритм опирается на базовую стратегию «Поддержание своей жизнеспособности«, и в угоду сокращения количества слов в статье текущей, опустим множество этапов эволюционного развития и сразу перейдем к достаточно элементарному алгоритму пастуха. Упростим ситуацию со стадом и оставим в нём только одну корову.
Алгоритм обеспечения одной коровы сеном на зиму прост:
Работай полдня, укладывая сено рядом с этой коровой.
Да, количество времени, необходимое для одной коровы, выбрано произвольно и не соответствует нашей реальности, но для сказочной страны — вполне подходит.
Как сформировался этот алгоритм? Те кто запасал корове сена меньше — оставались к весне без коровы, затем без еды — и погибали. Суровая сила эволюционного отбора. Не будем рассказывать это Алисе и оставим такие сведения для взрослых размышлений.
Но ситуация поменялась, и коров стало больше. С несколькими коровами «пастуху» стало сложнее. Сена и работы стало тоже больше. И появилась необходимость это сено распределять между коровами. Стал нужен признак, показывающий, что не нужно укладывать сено рядом с коровами, которым уже нанесли достаточно сена. Таким признаком может быть, например, укрытый стог, в ситуации когда в конце сбора стога для текущей коровы этот стог обвязывается и укрывается. Тогда алгоритм с несколькими коровами следующий:
Для любой коровы, рядом с которой нет укрытого стога, работай полдня, укладывая сено рядом с ней, и, заканчивая, укрой стог.
Да, этот алгоритм посложнее и еще далек от математики. Все же с некоторым усилием его эволюционное формирование просматривается. Оставим разбор этого развития для индивидуального развлечения заинтересовавшегося читателя. А вместе направимся дальше.
Среда снова предоставляет нашему «пастуху» новые ситуации и проверяет его профпригодность в разработке алгоритмов выживания. Итак, у «пастуха» новое счастье — коров в его стаде ещё больше. И эти коровы очень плотно живут в коровнике и сено рядом с ними укладывать не получается. Коровы размещены также плотно как слово «один» во фразе Королевы. Но сено на зиму нужно запасти, а Алисе необходимо посчитать сумму. Пора изобретать более совершенные алгоритмы. И эти алгоритмы будут основываться на комплементарных действиях и сходстве разных предметов по отношению к некоторым алгоритмам. На сцену выходит первый близнец — синтез алгоритма с именем « Перенос«.
Перенос
Для использования чисел еще рановато, но мы уже близко. Возьмем вместо них пока нечто попроще и породнее. Алисе я бы посоветовал посмотреть на пальцы. Ну а для «пастуха» — пальцев будет маловато. Но всегда можно найти объект поменьше коровы, который можно поместить в руках, например, камешки. И что нужно с ними сделать? Правильно сопоставить! Палец сопоставим слову «один». А камешек сопоставим одной корове. Легко сказать «сопоставить». А каким алгоритмом это можно сделать?
У Алисы ситуация проще. На каждое услышанное слово «один» достаточно «комплементарно» загнуть один палец на своих руках. Для «пастуха» это сопоставление чуть сложнее, но принцип схож. Стадо тоже необходимо выстроить в структуру — и лучше всего использовать структуру линейную, совсем как у слов «один» во фразе Королевы. Например, это можно сделать утром, когда коровы выходят из коровника с узкой дверью, пропускающей за раз только одну корову. Необходимо заранее запастись камешками. И для каждой выходящей коровы брать камешек и «загнуть его», ну, нет, конечно, это же не палец Алисы. Нужно положить его в отдельное выбранное место. Так формируется кучка камней. И когда последняя корова выйдет, в кучке будет лежать столько же камней сколько коров в стаде. А зачем нам эти загнутые пальцы и кучка камней? Правильно! С ними проще работать, чем с растворяющейся в памяти длинной фразой или большим стадом. С ними можно выполнить подсчет. С кучкой камней легко придумать алгоритм формирования запаса сена на зиму в отдельном от коровника хранилище. И можно выполнить много еще чего. Мы перенесли опору алгоритма запаса сеном на зиму с использования коров на использование камешков. И упростили жизнь «пастуху», сделав его уже немного «математиком».
До серьезного математика остался один шаг. Этот шаг — появление операции сложения. И шаг прост. Например, нужно, два «пастуха», хранящих в кармане кучки камешков, которые соответствуют каждая своему стаду. При этом достаточно только возникновения ситуации, когда два стада нужно объединить. В этом случае, конечно, можно прогнать полученное объединенное стадо через коровник с узкой дверью. Но ведь гораздо проще просто высыпать две кучки камешков в одно место!
Наверно, как-то так и родился алгоритм сложения! А вместе с ним зародилась и математика. Как способ повышать эффективность алгоритмов переносом в более удобную область. И эта область только поначалу была камешками, а в последствие дополнилась числами, интегралами, исчислением предикатов и много, много, много еще чем…
Но, а как же второй близнец «Трансляция«? Да, да… он тоже нам нужен, и тоже нужен Алисе.
Трансляция
– Сложения не знает, – сказала Черная Королева.– А Вычитание знаешь? Отними из восьми девять.
– Этого я не знаю, но зато…
Зато? Что так смутило Алису? Ответ прост, и подсказкой будет то, что этот момент смущал те только Алису, он сильно мучил и «древних математиков». А сложность этого момента сводится к простому утверждению: не все математические действия с «камешками» однозначно соответствуют (то есть переносятся) на стадо коров. И отрицательные числа, наверно, стали самой простой и только первой проблемой, с которой столкнулась математика. Ведь очень непонятно какой корове соответствует отрицательное число -1.
И дальше встает вопрос. Отказываться ли от этих «странных» отрицательных чисел? Или можно использовать их, но не переносить в коровы? Со знаниями, которыми обладает современный школьник старших классов, ответ тривиален. Конечно, использовать! И, видимо, Алисе придётся все же изучить и такое «странное» вычитание. Но «древним математикам» было не так легко. И только польза от алгоритмов, использующих отрицательные числа, помогла принять это сложное решение и ответить на заданный вопрос утвердительно. Да, нужно использовать отрицательные числа!
Такие же странные вопросы, подобные вопросу об «отрицательных числах», впоследствии вставали перед математиками не один раз. Вопросы были запутанными совсем как у Гусеницы, и каждый раз новая абстракция становилась всё «страньше» и «страньше». Иррациональные числа вместо рациональных (например, для алгоритма нахождения длины окружности по диаметру). Квадратный корень из отрицательного числа («мнимая единица»), например, для алгоритма решения кубического уравнения. «Бесконечность», например, для нахождения значения предела сходящейся суммы бесконечного ряда (еще древнегреческий философ Зенона размышлял над этой странной задачей в парадоксе «Ахиллес и черепаха»). Парадоксов перед математиками было много. Некоторые все же исключались, потому что не было возможности использовать их в полезных алгоритмах. Так было, например, с парадоксом «Множество всех множеств». Но основой всех таких размышлений и решений было одно — наличие полезных алгоритмов, в которых использовались эти «странности». И тут «естественный отбор» тоже работал. И эволюционный способ формирования математических алгоритмов, медленным и в дополнение к нему быстрым накоплением привел к тому, что мы сейчас называем слово «Математика».
А где же прячется различие двух близнецов «Переноса» и «Трансляции«. Вы, да и Алиса, верно уже догадались. При задании трансляции обязательно вводятся ограничения и указывается подмножество взаимно-однозначно соответствующих объектов и алгоритмов, внутри которого можно корректно произвести перенос между двумя алгоритмическими областями: прикладной областью («стадом коров») и пространством модели («горсткой камешков»). Вне этого подмножества перенос невозможен. Как невозможна «минус одна корова». Эти ограничения необходимы в представленной модели с «отрицательными числами». Самой простой модели, которую удалось найти. Но такие же ограничения есть и для моделей с трансляцией куда более сложной. Все же здесь остановимся. Не будем всё сваливать в одну кучу — ведь перед нами нечто посложнее стада коров.
Оставим сложную часть для следующей статьи, в которой продолжим наш разговор об ученых, моделях и разных способах использования Алгоритма для изучения научного познания. На очереди вывод на чистую воду алгоритмичности «Физики». И, думаю, опять в этом нам должна помочь Алиса. Осталось только найти этому занятию время и надеяться, что мы не потратим его впустую.
– хорошо бы получше провести время…– Все понятно! – с торжеством сказал Шляпа.
– Провести время?! Ишь чего захотела! Время не проведешь! Да и не любит он этого!
Выводы
Вознаградим себя за проделанную в чтении текущей статьи работу. Пусть даже наградой будет лишь похвала и перечисление значимых свершений.
В этой статье мы познакомились еще с двумя способами синтеза алгоритмов («Перенос» и «Трансляция из модели«). Эти способы еще не до конца описаны, но их основа уже немного просматривается.
На примере «пастуха-математика» смогли понаблюдать за эволюцией и скрытой алгоритмичностью Математики.
Вроде бы разработали помощь Алисе в сложении для правильных ответов Королеве.
Развлеклись?
Спасибо Вам за внимание.
Отзывы
Буду очень благодарен за отзывы, пожелания и предложения, так как они помогают мне скорректировать направление развития работы в этой области.
Отдельное волнение у меня есть по стилю повествования и форматированию, используемым в статье (кавычки, абзацы, курсив). Напишите, пожалуйста, если у Вас есть замечания к ним. Можно личным сообщением.
Ссылки
- Главная страница и теория работы (GitLab GPL): Проект «Общая теория алгоритмов»
- Вводная статья работы «Разрабатываем теорию алгоритмов как проект с открытым исходным кодом».
Пожалуйста, не судите строго эту наивную публикацию «сверх-идеи» устаревшей версии 2019 года.
- Статьи серии «Что такое алгоритм?!»
- №1 «Действие»,
- №2 «Обусловленная и связная последовательность»,
- №3 «Синтез алгоритма запоминанием»
- №3.1 «Эволюция памяти»
- №3.14 «Копирование иерархии памяти»
- №5 «Эволюция поведения»
- Статьи в хабе «Программирование»:
- Детская сказка программисту на ночь
- Эволюция программного проекта и ООП
- Как не понимать принципы развития архитектуры SOLID
- Иллюстрации из книг «Приключения Алисы в Стране чудес» и «Алиса в Зазеркалье» выполнены Сэром Джоном Те́нниелом
Что такое алгоритм в математике? Определение, свойства, примеры
Что такое алгоритм?
Алгоритм — это пошаговый процесс решения конкретной проблемы.
Думайте об этом как о математическом «рецепте», позволяющем добраться до сути проблемы. Если вы будете следовать инструкциям, вы сможете получить ответ в кратчайшие сроки!
Пример алгоритма: Простым примером алгоритма, который вы используете каждый день, является ваша утренняя рутина. Скажем, вы встаете в 6:30 утра, чтобы идти в школу. Если вы всегда встаете, чистите зубы, пьете воду, идете в ванную, а затем принимаете ванну, это может быть алгоритмом, которому следует ваше тело! Алгоритмы вокруг нас. Важно обнаружить их, чтобы узнать, как они функционируют, а затем создать свои собственные.
В повседневной жизни мы применяем множество процедур, которые, как мы не понимаем, являются алгоритмами.
Сюда входят:
Завязывание шнурков
Расписание дня, которому вы следуете в школе
Правила алгебраических формул, такие как сложение и вычитание
Методика, которой вы пользуетесь во время занятий спортом правила игр, в которые вы играете с друзьями
Связанные игры
Алгоритмы в математике
Определение математического алгоритма
Алгоритм в математике — это процедура, описание набора шагов, которые можно использовать для решения математических вычислений.
Например, пошаговая процедура, используемая в длинных делениях, является распространенным примером математического алгоритма.
Пример математического алгоритма: Процесс решения математической задачи, такой как «Сколько 82 разделить на 3?» можно получить, выполнив следующий алгоритм:
Сколько раз 3 входит в 8?
Ответ 2.
Сколько еще осталось? 2
Поставьте 2 (десятки) перед 3.
Сколько раз 3 входит в число 22?
Ответ 7 с остатком 1.
И, конечно же, ответ равен 27 с остатком 1.
Стандартный алгоритм сложения
Стандартный алгоритм сложения состоит из четырех простых шагов:
Шаг 1. Выровняйте числа по вертикали, сопоставляя места ценности.
Шаг 2. Сложите числа с одинаковым разрядом, начиная со столбца единиц.
Шаг 3: Запишите сумму под каждым столбцом.
Шаг 4: Если сумма в столбце больше 9, перенесите цифру десятков в следующий столбец.
Стандартный алгоритм вычитания
Стандартный алгоритм сложения состоит из четырех простых шагов:
Шаг 1. Выровняйте числа по вертикали, сопоставив разряды.
Шаг 2. Вычтите числа с одинаковым разрядом, начиная со столбца единиц.
Шаг 3: Запишите разницу под каждым столбцом.
Шаг 4: Если число в верхней части столбца меньше числа в нижней части, перегруппируйте перед вычитанием.
Стандартный алгоритм умножения
Перейдите по ссылке , чтобы проверить стандартный алгоритм умножения.
Связанные рабочие листы
Преимущества алгоритмов
Алгоритмы важны из-за большого разнообразия приложений, в которых они используются. Понимание того, как работают алгоритмы, также имеет решающее значение для развития навыков решения проблем и построения логических рассуждений. Ниже перечислены некоторые преимущества алгоритма:
- Процесс создания алгоритма позволяет вам смотреть на что-то рационально и расчетливо, что очень помогает при решении разного рода проблем.
- Алгоритмы помогают преодолеть разрыв в общении, где следование процедуре поможет вам найти необходимое решение, не повторяя процесс повторно.
Вы можете следовать заранее установленным правилам, чтобы быстрее найти решение.
- Алгоритмы используют определенную процедуру, и, используя и оптимизируя их, люди могут решать проблемы гораздо быстрее.
- Алгоритмы легко отлаживать, поскольку каждый шаг имеет свою логическую последовательность.
- Когда мы используем алгоритмы, мы можем разбить задачи на более мелкие шаги или части, и поэтому программист может легко преобразовать их в настоящую программу.
Как только вы поймете основы алгоритмов, вы сможете создавать свои собственные, сэкономив себе много времени. С веселыми заданиями и играми SplashLearn вы можете проверить свои математические способности и найти алгоритмы в решаемых вами вопросах.
Свойства алгоритмов
Алгоритмы должны использоваться для решения трех задач:
- Правильное выполнение задачи: Работа, которую вы хотите выполнить, должна быть выполнена с ожидаемыми результатами.
- Эффективно обрабатывать предоставленную информацию: Время и ресурсы вашей системы должны использоваться надлежащим образом для понимания и последующего решения проблемы.
- Быть понятным: Алгоритмы предназначены для облегчения работы и в идеале должны поддерживаться на базовом уровне понимания.
Примеры алгоритмов в реальном мире
Многие компании в реальном мире используют алгоритмы, чтобы помочь своим клиентам или развивать свой бизнес, и часто пытаются улучшить их каждый день.
- YouTube : Посмотрев несколько видео определенного канала, вы заметите, что вам рекомендуют все больше и больше видео этого канала. Это связано с алгоритмом рекомендаций YouTube, который собирает информацию из вашей предыдущей истории для представления видео того же типа в вашей ленте, чтобы вы продолжали смотреть видео на платформе.
- Социальные сети : Если вы перейдете на страницу «Обзор» в Instagram, вы заметите, что многие из отображаемых сообщений связаны с теми, которые вы обычно ищете или любите/комментируете.
Алгоритм здесь идентифицирует сообщения, с которыми вы взаимодействуете, и показывает вам больше таких сообщений, потому что считает, что вам нравятся такие сообщения.
- Google : Google использует очень известный алгоритм под названием PageRank для сортировки результатов поиска в порядке, который показывает наиболее посещаемые и аутентичные сайты вверху. Этот алгоритм учитывает десятки параметров и быстро предоставляет сайты, которые вы хотите найти.
- Lyft/Uber : компании по совместному использованию такси, такие как Lyft или Uber, используют алгоритмы позиционирования, чтобы помочь клиентам находить автомобили рядом с ними для оптимального опыта. Эти глобальные алгоритмы позиционирования также помогают водителям находить самые быстрые маршруты для достижения определенного пункта назначения. Алгоритмы также помогают таким приложениям решить, какого клиента они должны выбрать первым или отказаться от него.
- Распознавание лиц : Всякий раз, когда компании требуют проверки пользователей, они могут перейти от таких методов, как идентификаторы пользователей и пароли, к более безопасным методам аутентификации, таким как распознавание лиц.
Здесь алгоритмы используются для идентификации человека и проверки наличия у него доступа к вещам, к которым он хочет получить доступ.
Советы по освоению алгоритмов
Вы можете освоить алгоритмы, научившись замечать их в повседневной жизни. После этого вы можете разбить алгоритм на шаги размером с укус. Возможно, вам придется проверить это несколько раз, чтобы заметить закономерность в том, как что-то происходит, но как только вы ее найдете, вы сможете обнаруживать ее снова и снова.
Попытайтесь понять, почему происходит каждый шаг в процессе. Как только вы поймете, почему что-то происходит, вам будет легче соединить точки и выяснить логическую последовательность событий. Кроме того, это очень удобно для того, чтобы понять, как создавать алгоритмы для себя. С помощью веселых занятий и игр на SplashLearn вы сможете быстро освоить основы алгоритмов!
Решенные примеры
Пример 1 : Запишите этапы приготовления бутерброда с арахисовым маслом и желе.
Ответ: Этапы приготовления бутерброда с арахисовым маслом и желе:
Шаг 1: Возьмите 2 ломтика хлеба.
Шаг 2: Нанесите арахисовое масло на одну сторону ломтика.
Шаг 3: Нанесите желе на одну сторону другого ломтика.
Шаг 4: Сожмите оба ломтика хлеба вместе.
Пример 2: Запишите шаги стандартного алгоритма вычитания.
Ответ: Стандартный алгоритм вычитания состоит из следующих 4 шагов:
Шаг 1: Выровняйте числа по вертикали, сопоставляя разряды.
Шаг 2. Вычтите числа с одинаковым разрядом, начиная со столбца единиц.
Шаг 3: Запишите разницу под каждым столбцом.
Шаг 4: Если число в верхней части столбца меньше числа в нижней части, перегруппируйте перед вычитанием.
Пример 3: Напишите алгоритм, определяющий, является ли число четным или нечетным.
Ответ: Алгоритм определения четности или нечетности числа:
Шаг 1: Разделите число на 2.
Шаг 2: Если число полностью делится на 2, оно четное, иначе — нечетное.
Пример 4: Напишите алгоритм для нахождения площади прямоугольника.
Ответ: Алгоритм нахождения площади прямоугольника:
Шаг 1: Запишите длину меньшей стороны как «b».
Шаг 2: Запишите длину большей стороны как «l».
Шаг 3: Площадь прямоугольника будет произведением «l» и «b».
Практические задачи
1
Какая последовательность даст правильное изображение совы?
2,4,1,3
2,1,4,3
2,1,3,4
2,4,1,3
Правильный ответ: 2,1,4,3
Данная последовательность расставляет сову в правильной последовательности.
2
Какая последовательность даст правильный алгоритм кипячения воды?
1. Нагрейте кастрюлю, пока вода не закипит
2. Включите плиту
3. Возьмите пустую кастрюлю
4. Поставьте наполненную водой кастрюлю на огонь
5. Налейте воду в пустую кастрюлю
2,3,5,4,1
3,5 ,4,2,1
3,5,2,4,1
2,3,4,5,1
Правильный ответ: 3,5,2,4,1
Данная последовательность дает правильный Алгоритм кипячения воды.
3
Каким будет первый шаг алгоритма сложения
Сложение цифр любого столбца
Сложение цифр единиц столбца
Вертикальное размещение цифр в столбцах
Перенос цифр столбца
Правильный ответ: Вертикальное размещение цифр в столбцах
Первым шагом при сложении любых чисел является их вертикальное расположение в столбцах.
4
Что из следующего правильно умножает 45 ✕ 7 с использованием стандартного алгоритма?
A
B
C
D
Правильный ответ: D
Эта опция правильно умножает заданные числа.
Часто задаваемые вопросы
Как алгоритмы связаны с математикой?
Алгоритм в математике — это процедура, набор шагов, описывающих, как можно решить математическую задачу. Например, пошаговые процедуры длинного деления или десятичного умножения.
Где мы используем алгоритмы в реальной жизни?
Алгоритмы в основном используются в вычислениях. В нашей повседневной жизни повсюду можно увидеть алгоритмы, решающие наши повседневные проблемы. Рекомендации YouTube и Netflix, поиск в Google, приложения GPS и многое другое основаны на алгоритмах.
Каковы недостатки использования алгоритмов?
Алгоритмы трудно применять к более крупным и сложным задачам. Они отнимают много времени. Не всегда легко показать ветвление и циклы в алгоритмах. Понять сложную логику, применяемую в алгоритмах, может быть очень сложно.
Каковы важные характеристики алгоритмов?
Шаги алгоритмов должны быть точно указаны. Алгоритм получает ввод и производит вывод после выполнения конечного числа инструкций.
Давайте разработаем простой алгоритм. Из элементарной математики мы… | Джулия Фишер
https://www.pxfuel.com/Из элементарной математики мы знакомы с четырьмя основными математическими операциями, связанными с числами, — сложением, вычитанием, умножением и делением. В математике существует множество видов чисел с собственным набором уникальных операций. Здесь нас интересуют наиболее часто используемые числа, с которыми мы имеем дело каждый день, которые технически называются «настоящими» числами — например, 43, 14/223, 7,381, 0,001 и так далее.
Этим четырем операциям нас научили в очень раннем возрасте, что делает их использование тривиальной задачей для большинства из нас. Возможно, что конкретный расчет, включающий эти операции, может занять много времени, но правила просты. В частности, мы обнаруживаем, что довольно легко выполнять операции сложения и вычитания даже над большими числами. К сожалению, мы не можем сказать этого об операциях умножения и деления — они, как известно, сложны для понимания и выполнения даже для относительно небольших чисел. В частности, алгоритм деления, возможно, гораздо сложнее выполнить, чем умножение.
После многовекового прогресса мы разработали машины, которые могли бы выполнять эти операции — сначала механические, а затем электронные калькуляторы. Эти машины удивительно эффективны и быстры. Электронные калькуляторы удивительно быстры — настолько быстры, что мы не перестаем задумываться, используют ли эти машины точно такие же алгоритмы, которые мы выучили в детстве. На самом деле одной из самых сложных задач для инженера была (и остается) разработка машины, которая быстро и эффективно выполняет умножение и деление произвольно малых или больших чисел.
Если мы говорим о цифровых компьютерах, деление — это особенно сложная операция для разработки оборудования. Все современные основные процессоры имеют специальные аппаратные блоки для выполнения деления (а также умножения), которые довольно сложны. Но это не относилось к ранним компьютерам, где у них были аппаратные блоки для выполнения только сложения и вычитания. Операции умножения и деления были построены с использованием программных подпрограмм сверху, с использованием повторяющихся сложений и вычитаний соответственно. Даже сегодня многие из крошечных маломощных процессоров по-прежнему не имеют встроенного аппаратного умножителя и/или делителя — просто потому, что эти две операции очень требовательны к ресурсам. Итак, в случае, если мы получим такие ограниченные процессоры, которые довольно распространены в крошечных гаджетах с низким энергопотреблением, таких как наручные часы (не умные часы) и дешевые карманные калькуляторы, нам потребуется программное решение.
Если мы сосредоточим наше внимание на процессе деления числа, b , на другое число, a , мы можем записать это как,
Это уравнение показывает, что деление двух чисел эквивалентно умножению числителя b с 1/a , которое называется обратной величиной знаменателя a . Если бы мы смогли найти эффективный алгоритм нахождения обратных величин, мы могли бы использовать гораздо более простую операцию умножения для решения задачи деления.
В этой статье мы подробно изучим метод нахождения обратной величины числа. Есть много способов сделать это, но одним из самых известных методов решения некоторых математических задач является метод Ньютона (также известный как метод Ньютона-Рафсона ). Это итеративный метод, который дает только 90 311 приблизительных 90 312 результатов до желаемого уровня точности. Бывают случаи, когда можно придумать умный метод решения конкретной задачи, который может быть быстрее или эффективнее, чем метод Ньютона, но для проблем, когда умного выхода нет, метод Ньютона часто является лучшим вариантом — он в основном действительно мощный универсальный метод.
Для использования метода Ньютона требуется хорошее понимание исчисления, что выходит за рамки этой статьи. Поэтому здесь мы увидим метод, не основанный на исчислении, который, по крайней мере, так же хорош, и мы могли бы улучшить его дальше.
Для знакомства с вычислениями для начинающих ознакомьтесь с этой статьей .
Давайте рассмотрим несколько простых известных случаев. Предположим, нам нужно вычислить обратное число 5, которое, как мы знаем из определения, равно 1/5 = 0,2. Это выглядит как довольно прямое вычисление, но проблема возникает, когда числа относительно больше (или меньше) — например, что будет обратным числом 1178 или 89.243752 или еще больше? Мы можем следовать правилам и получать результат, но нетрудно представить, что такого рода расчеты, выполняемые вручную, иногда могут быть довольно утомительными, если не слишком сложными.
Настоящая проблема возникает, когда мы делаем это в компьютерной системе. Мы склонны писать алгоритм точно такой же, как тот, который мы используем для расчетов на бумаге. Он называется «метод длинного деления» и является не самым простым (и самым эффективным) алгоритмом для изучения и использования, даже для компьютеров.
Одна из самых интригующих вещей в людях заключается в том, что мы абсолютно ненавидим выполнение повторяющихся задач и всегда пытаемся найти хитрые уловки, чтобы избежать повторений. Большинство наших математических методов основаны на желании не повторяться. Оказывается, это прямо противоположно тому, как компьютеры предназначены для работы. Компьютеры, как правило, превосходно справляются с повторяющимися задачами — на самом деле, они такие мощные, потому что очень эффективно выполняют простые повторяющиеся задачи. Вот почему очень трудно писать хорошие компьютерные алгоритмы, потому что мы должны отказаться от большинства методов, которые были оптимизированы для ручных вычислений, чтобы их выполняли люди.
Итак, если нам нужен метод решения проблемы, оптимизированный для компьютера, мы должны мыслить в терминах небольших, возрастающих и повторяющихся задач. Такие методы называются итеративными методами .
Если вам нравится эта история, вы можете рассмотреть возможность подписки на информационный бюллетень, чтобы получать больше таких историй прямо в свой почтовый ящик!
Допустим, нам нужно обратное число и . Теперь у нас может не быть точного результата, но мы можем сделать обоснованное предположение. Предположим, что наше первое предположение x ₁, которое может быть хорошим или нет, но мы можем написать следующее уравнение,
, где x ₁ — это значение предположения, которое не должно быть слишком далеко от точного результата, e₁ — ошибка в предположении. Эта ошибка может быть большой, если мы сделали плохое предположение, или она может быть крошечной, в случае хорошего предположения. Если нам очень повезет и наша догадка верна, ошибка будет равна нулю.
Мы можем преобразовать это уравнение следующим образом:
Теперь, если наша первая догадка, x ₁, достаточно хороша, то ошибка e₁ также будет достаточно мала (по сравнению с 1). Глядя на уравнение, становится ясно, что если числитель в левой части действительно мал, это будет означать, что ошибка e₁ также очень мала. Следовательно, мы можем связать размер ошибки с размером числителя в левой части .
Важным свойством (положительных) чисел меньше 1 является то, что умножение само на себя даст еще меньшее число, как показано ниже.
Мы видим, что возведение небольшого числа в квадрат дает нам еще меньшее число, и, возможно, мы могли бы использовать этот факт для нахождения улучшенного предположения, потребовав, чтобы
Ошибка в следующем предположении была пропорциональна квадрату ошибка в предыдущем предположении
В математических терминах это записывается как
Но, согласно обсуждению выше, это эквивалентно следующему уравнению,
Мы можем удалить пропорциональность, выбрав константу k , и получим,
Используя базовую алгебру, мы упростим это уравнение, чтобы получить значение x ₂ следующим образом,
Из этого уравнения видно, что на правая сторона, которая есть не что иное, как обратное число и . Это не помогает, потому что это именно то, что мы ищем в первую очередь, и до сих пор неизвестно. Может показаться, что мы ходим по кругу, но есть простой выход. Если выберем, к = 1, тогда 1/ a отменяется, и у нас нет никаких проблем. Таким образом, при таком выборе k предыдущее уравнение может быть записано как
. Это дает нам второе предположение нашей задачи, которое должно быть лучше первого предположения. Мы можем повторить это упражнение и получить третье предположение, которое будет намного лучше второго, и так далее. Вместо этого мы можем обобщить уравнение, написав его как
. Это основная формула, которую мы можем использовать для итеративного процесса, чтобы найти обратную величину числа 9.0311 a , вычисляя столько последовательных значений xₙ , сколько нам нужно, пока не будет достигнут желаемый уровень точности.
Давайте возьмем пример и посмотрим, как это работает. Предположим, мы хотим найти обратную величину 13 с начальным предположением x ₁ = 0,1. В таблице ниже показаны первые три итерации основной формулы.
Точное значение 1/13 равно 0,076923… . Мы видим, что только после трех итераций мы нашли результат, правильный до пяти знаков после запятой. Мы можем повысить точность настолько, насколько захотим, увеличив количество итераций. Мы также видим из четвертого столбца таблицы, что ошибка последовательно становится меньше, что говорит о том, что мы приближаемся к правильному ответу.
Интересно, что мастер-формула, которую мы получили, это точно такая же формула, которую мы получили бы, если бы использовали метод Ньютона, основанный на исчислении. Формула компактна, эффективна и достаточно точна, чтобы ее можно было использовать в первых компьютерах и портативных калькуляторах, которые имели очень ограниченную вычислительную мощность и могли использоваться даже сегодня.
Следующий код Python можно использовать, чтобы опробовать алгоритм для разных чисел.
У нас уже есть неплохой алгоритм, и, возможно, нам больше ничего не потребуется. Но может быть интересно посмотреть, можно ли его улучшить дальше.
Основная идея алгоритма заключается в том, что мы использовали тот факт, что числа, меньшие 1, становятся еще меньше при умножении друг на друга. Ранее мы использовали операцию возведения в квадрат или квадрата (степень двойки) для уменьшения последовательных ошибок в вычислениях. Но мы могли бы попробовать кубическую (степень 3) или квартику (степень 4) операции, сделав ошибки еще меньше. Давайте посмотрим, дает ли такой алгоритм какие-либо преимущества.
Если мы решим работать с кубической операцией, уравнение для ошибок будет выглядеть следующим образом:
Выбрав значение k = 1 и упростив его дальше, мы получим следующую основную формулу:
Аналогично, для случая четвертой степени основная формула будет выглядеть так:
Если читатель захочет попробовать, приведенный выше код Python содержит несколько закомментированных строк кода, соответствующих также алгоритмам кубической и четвертой степени.