Курс_Информатика_л3.ppt
- Количество слайдов: 9
Лекция № 3 Анализ алгоритмов решения математических задач (Работа с числами разных форматов) Автор: Бабалова И. Ф. Доцент, каф. 12 2015 г. 1
Числовые алгоритмы В числовых алгоритмах отражены основные концепции теории чисел: делимость на заданное число, разложение числа на множители, нахождение наибольшего общего делителя двух чисел, деление по модулю. Для генерации случайных чисел необходимо иметь алгоритмы для выделения определенных разрядов большого целого числа. Числовые алгоритмы в настоящее время имеют большое применение благодаря изобретению криптографических схем, основанных на больших простых числах. При разработке алгоритмов обработки чисел необходимо уметь оценить время выполнения всех арифметических операций. 2
Оценка времени работы алгоритмов Размер входных данных определяется не количеством данных, а количеством битов для их записи. Для перемножения двух β - битовых чисел обычным методом потребуется количество битовых операций ~ θ (β 2) Задача разработчика : создать такой алгоритм, который бы выполнял арифметические операции за наименьшее время. Наиболее интересные алгоритмы: Поиск простых и составных чисел, поиск общих делителей и наибольших общих делителей, разложение числа на множители, генерация случайных чисел. Для обработки целых чисел надо всегда помнить о представлении целого числа в позиционной системе счисления: где ai – цифры системы счисления n –количество цифр в записи числа 3
Алгоритм для определения сумм двух старших и двух младших цифр числа 1 2 A i : =1 5 Summa s 2: =0 C 4 s 1: =0 B 3 D E нет J 2 i<- K-2 F J: =n mod 10 H n: =n div 10 J i : =i+1 i<=2 K да j: =n mod 10 да Сумма старших цифр ? m: =n нет да m<>0 m: =m div 10 s 1: =s 1+j s 2: =s 2+j I I 4 нет Определение количества цифр в записи числа K: =1 да n<>0 нет G n 6 n: =n div 10 i : =i+1 D 2 S 1, S 2 E 3 k: =k+1 Сумма младших цифр целого числа End Решение_задачи_о сумме_цифр. doc Возможная декомпозиция 4
Вычисление рядов Для вычисления рядов основным методом является математическая индукция: Сумма всех к от 1 до n равна S=1/2*n*(n+1)+(n+1)=(n*(n+1)+2*(n+1))/2=(n+1)*(n+2)/2 Мы показали, что формула оценки суммы верна как для n слагаемых, так и для (n+1) слагаемого Метод индукции справедлив не только для вычисления точных значений сумм, но и для оценки возможных границ результатов 5 вычислений рядов.
Вычисления с заданной точностью Определение. В записи числа n цифр верные, если абсолютная погрешность записи числа не превышает половины единицы разряда n –ой значащей цифры: 234, 563 число с верными цифрами Погрешность его записи рана =0. 5*10 -3 m=2, n=6 m-n+1=-3 В записи формулы m – это порядок числа, а n – количество цифр в записи числа Теорема. Для сходящегося ряда к сумме S точность вычислений не будет превышать ε при выполнении условий: Имеем S 1, S 2, … , Sn-1, Sn - приближения к результату 6
Известны три варианта разложения числа в ряд. Сравните по скорости вычисления по каждому варианту вычисления . 1. 2. 3. Это три варианта числовых рядов. Алгоритм для второго варианта представлен на следующем слайде 7
Алгоритм вычисления числа π 1 A 2 число π B Ввод eps C Вводим погрешность вычисления i: =1, S 1: =0 D T: =-1, j: =2 E True Abs(S-S 1)<=eps T: =-T, S: =s 1 F I 1 p: = 1/(j*(j+1)*(j+2)) False Вывод G j: =j+2 H i: =i+1 I S 1: =S 1+4*T*p S 1+3 The_end D 2 Пояснения 8
Решение_задачи_о _вычислении_числа. doc Анализ точности вычислений по формулам Взяты все формулы для вычисления числа Оценим погрешность записи результата вычислений по формуле 2 =0. 5 *10 m-n+1 =0. 5*10 (0 -15+1) =0. 5*10 -14 Заданная погрешность 1*10 -7. В ответе только 6 цифр могут быть верными 9


