Пояснение к 1 заданию Практикума на ЭВМ для групп САВВАТЕЕВА В.В. (ПИ-11, ПИ-12, ФИ-12) В первых двух модулях (а возможно, и до конца учебного года) Практикум по кафедре Высшей математики будет проходить на основе пакета EXCEL. Из школьного курса информатики будут использоваться только самые простые разделы работы с EXCEL (занесение чисел, текста и формул, выделение области, копирование и сортировка данных, построение простейших графиков кривых типа y = x^2 +6*x - 8). Если в школе почему-либо не было EXCEL или вы его подзабыли, можно позаниматься самостоятельно во второй половине дня (когда закончатся занятия по расписанию) в дисплейных классах на МП, обратившись для этого к дежурным около ауд . ДК251 и ДК252. *** Задание1. Первое, с чем надо разобраться при работе с компьютером – это может ли компьютер совершать ошибки в процессе вычислений (конечно, может!), почему эти ошибки возникают, если даже студент всё делал правильно, могут ли эти ошибки накапливаться (могут!), и как устранить ошибки или, по крайней мере, сделать их приемлемыми (то есть малыми) по величине. Для знакомства с этим разработано задание «ВЫЧИСЛЕНИЕ ОШИБОК КОМПЬЮТЕРА». Обратите внимание, что компьютер НЕ МОЖЕТ сам исправить свои ошибки, и это должны сделать вы (производя некоторые вспомогательные вычисления в своей рабочей тетради ). Для примера мы рассмотрим вычисление степеней двойки: 1 (нулевая степень), 2 (первая), 4 (вторая), и так далее. Чтобы сделать это в EXCEL, настроим первый столбец (он должен быть помечен буквой А) на формат ячейки «ЧИСЛОВОЙ», с «КОЛИЧЕСТВОМ ЗНАКОВ», равным нулю (ибо любая степень двойки является натуральным числом и, стало быть, десятичных знаков не содержит). Затем в ячейку А1 занесем 1, а в ячейку А2 занесём формулу =А1*2 . Копируя эту формулу сверху вниз, мы будем получать всё новые натуральные степени двойки, причем абсолютно правильно (то есть ошибка компьютера =0). Однако с некоторого места начнутся неприятности. А именно, скоро мы увидим, что число 2 49 окачивается четырьмя цифрами … 1312 (и это верно), а затем число 2 50 оканчивается цифрами … 2620 (что никак не может быть верным). В самом деле, если какое-то натуральное число кончается нулём, то оно делится на 5. А как же может делиться на 5 число, полученное путём перемножения пятидесяти двоек? Дальше – ещё хуже. Степени двоек начинают оканчиваться двумя нулями (стало быть, они делятся на 25?!), затем тремя нулями, а такое, к примеру, незатейливое число, как 2 100 оканчивается почему-то 16-ю нулями (а ненулевых цифр у него только 15; вот они: 126765060022823 ). Итак, при попытке посчитать число 2100 компьютер «потерял» 16 цифр из имеющихся в нём (а их имеется 31). Как же исправить такую грубую (да ещё накапливающуюся) ошибку компьютера? Начнём с того, что исправим неверное число 250. Оно получается из верного числа 249 (окачивающегося цифрами … 1312) умножением на два, поэтому 250 должно оканчиваться не цифрами … 2620, а цифрами … 2624, так как 1312*2=2624. ПРЕДУПРЕЖДЕНИЕ. Не всегда всё бывает так просто, как в этом случае. Допустим, какая-нибудь другая степень двойки кончалась бы не цифрами …1312, а цифрами …7313. Тогда следующая степень двойки кончалась бы цифрами … 4626, а компьютер сообщил бы нам, что она кончается цифрами …4630 (подумайте, почему?). Образованные студенты могут возразить, что никакая натуральная степень двойки не может кончаться на 3. Да, это так… но в домашнем задании вам могут встретиться не только степени двойки! Итак, компьютер «полагает», что 250 = 1125899906842620, а мы теперь знаем, что 250 = 1125899906842624. Так давайте исправим ошибку компьютера и вместо неправильного числа запишем в эту ячейку правильное. И вот тут вы увидите, что компьютер не только заблуждается, но и упорствует в своих заблуждениях. Он отказывается делать поправку и снова даёт нам неправильное число! Придётся нам все исправленные нами числа хранить только в своей тетради – ведь компьютер с этими поправками никогда не согласится. КСТАТИ: записи в вашей рабочей тетради регулярно будут проверяться преподавателем с выставлением 10-балльной оценки. А потом она повлияет на так называемую «накопленную оценку». Последнюю цифру неправильного числа (в отличие от предпоследней или ещё более ранней) можно исправить и другим способом. Проследим за тем, как меняется последняя цифра натуральных степеней двойки: 2, 4, 8, 16, 32, 64, … . Уловили, какая тут закономерность? Периодически повторяются четыре цифры: 2,4,8,6, 2,4,8,6, 2,4,8,6 и так далее. Значит, после последней цифры «2» обязательно должна идти последняя цифра «4». Теперь сформулируем в общем виде первое домашнее задание по 1-му занятию (после сделанных разъяснений уже будет понятно, как его выполнять). Каждому студенту выдаётся конкретное число N ( 5 < N < 50), не делящееся на 10 и не являющееся степенью двойки. Вычисляются последовательные натуральные степени этого числа N, N2,N3, … , Nk до тех пор, пока не встретится число Nk+1такое, что в нём впервые компьютер ошибается. Обратите внимание, что теперь не исключены такие хитрые случаи, что последняя цифра ВЕРНАЯ, а предпоследняя – НЕТ. Компьютер ошибается из-за того, что в выделенной ему для изображения целых чисел разрядной сетке такое большое число не помещается, и он автоматически переходит к изображению данного числа в виде «мантиссы и порядка», которое имеет гораздо больший диапазон, но намного меньшую точность (и при этом последняя значащая цифра округляется с учётом отбрасываемого «хвоста» десятичных цифр). Например, число 6799, 5667при округлении до целых даёт 6800.Значит, возможен случай, когда при первой ошибке компьютера в числе Nk+1 даже третья от конца цифра будет неверной! Требуется определить абсолютную величину ошибки, допускаемую компьютером, и в какую сторону она допущена: в сторону завышения истинного числа, или в сторону его занижения. И всё это надо сделать не для степени Nk+1, а для следующей степени (то есть Nk+2). Слово «мантисса» в школе должно было изучаться ДВАЖДЫ: при изучении логарифмов и при изучении информатики. Если Вы не знаете, что оно означает, посмотрите это в интернете (например, в поисковой системе GOOGLE.com). А мы теперь займёмся более сложной, но необязательной задачей: как, зная точно число 250 , найти ТОЧНО число 2100. Рассмотрим два числа М и К, из которых состоит запись числа 2 50 : М = 11258999 (старшие цифры), К = 06842624 (младшие цифры). Ноль в начале числа К можно не писать (и мы далее не будем этого делать). Легко понять, что тогда верно равенство 250 = М*108 + К. Кроме того, очевидно, что 2100 = (250)2. Осталось вычислить БЕЗ ОШИБОК число (М*108 + К)2 . Но это число равно М2*1016 + 2*М*К*108 + К2. Каждое из чисел М2, 2*М*К , К2 компьютер способен вычислить без ошибок, но сложить их (с учётом сдвига первого числа на 16 десятичных разрядов влево, а второго – на 8 разрядов) все три вместе НЕ СМОЖЕТ, так как в итоге получится слишком большое число. Зато мы сможем сделать это в своей рабочей тетради: выписать все три числа в столбик с учётом сдвига влево М2 и 2*М*К и сложить. Компьютер посчитал следующее: М2 = 126765058482001; 2*М*Т = 154082193546752; К2 = 46821503205376. Занесём эти числа со сдвигом на 16, 8 и 0 разрядов влево в нашу рабочую тетрадь (см. таблицу внизу). 1 2 6 7 6 5 0 5 8 1 4 5 8 4 2 0 0 8 0 2 1 1 9 3 5 4 4 6 6 8 7 2 5 1 2 5 0 3 2 0 5 3 7 6 Сложив столбиком эти три числа, мы и получим 2100 без всяких ошибок. В частности, последние 4 цифры этого числа равны не 0000 (как нам «подсказывал» компьютер), а 5376. Если кто-нибудь из вас собирается после бакалавриата ещё и в магистратуру, можете в домашнем задании наряду с числом Nk+2 уточнить также и число (Nk+2)2. Но больше 10 баллов вы всё равно за эту задачу не получите. Но по «гамбургскому счёту» за это можно было бы назначить и 15 баллов. (Что такое «гамбургский счёт», посмотрите в интернете).