- •Лекция №12-13
- •Алгоритм, алгоритмизация, алгоритмический язык
- •Свойства алгоритмов
- •Управляющие структуры и основные конструкции алгоритмов
- •Неформальные описания алгоритмов
- •Сортировка методом простого выбора
- •Сортировка в интегрированных пакетах
- •Сортировка в приложении Word
- •Сортировка в приложении Excel
- •Алгоритмы генерации случайных чисел
- •Сложность алгоритмов
- •Технологии (парадигмы) программирования
- •Процедурное программирование
- •Функциональное программирование
- •Логическое программирование
- •Объектно-ориентированное программирование
- •Визуальное программирование
- •Языки программирования баз данных
- •Языки программирования для компьютерных сетей
- •Инженерия программного обеспечения
- •Принцип программного управления
Сортировка в приложении Excel
Для пользователей-непрограммистов существуют программы, называемые генераторами приложений. Они позволяют программировать сложные задачи без строгой формализации, свойственной традиционным программам. Типичным генератором приложений является Microsoft Excel из пакета Microsoft Office. Сложные программные действия сведения до уровня вызова пунктов меню и нажатию нескольких клавиш.
Выделить диапазон ячеек, который необходимо отсортировать
Меню Данные, пункт Сортировка
Указать столбцы, по которым необходимо отсортировать данные. Допускается 3-ёх уровневая сортировка. Указать ещё ряд параметров сортировки, например, сортировать по возрастанию или убыванию.
Решение задачи сортировки по возрастанию последовательности чисел.
Занести значения в ячейки:
-
A1
503
A2
7
A3
0
A4
908
A5
45
Выделить связный диапазон ячеек: A1:A5
В меню Данные выбрать пункт Сортировка
Указать способ идентификации полей: по обозначению полей
В окне Сортировка дипазона в первом окошечке выбрать Стобец A и укзать вид сортировки по возрастанию.
Нажать клавишу OK.
Эти действия неявным образом определяют выполнение элементарных шагов, разветвление по условию, циклическое выполнение шагов.
Алгоритмы генерации случайных чисел
Генерация случайных чисел оказалась сложной задачей. Дело в том, что такие числа должны быть совершенно не связаны с друг другом и при этом не тяготеть ни к какому конкретному множеству чисел. Скажем, бесполезно просить людей выписывать случайные цифры от 0 до 9: исследования профессор психологии Норманна Гинзбурга (Norman Ginsburg) из университета Макмастера в Канаде показали, что многие люди думают, что «случайные» означают «равномерно распределённые» и выдают мало цепочек повторяющихся или последовательно идущих цифр. Истинная случайность гораздо более подвержена кластеризации, чем кажется людям. Например, почти в половине тиражей национальных лотерей выпадает хотя бы пара последовательных номеров.
Для получения рядов чисел, похожих на случайные, выведены специальные математические формулы, но у них есть свои недостатки. В 1970-х годах учёные обнаружили, что одна и формул, применяемых в компьютере и известная как RANDU, даёт небольшое систематическое отклонение. Это поставило под вопрос итоги исследований, использовавших RANDU для получения наборов случайных чисел.
Прорыв в генерации истинно случайных чисел произошёл в 1949 году, когда Алан Тьюринг показал, как можно использовать электрические цепи для получения абсолютно случайных флуктуаций, вызванных тепловым движением электронов.
В 1955 году корпорация RAND в Калифорнии опубликовала самую скучную книгу в мире - «Миллион случайных цифр со стандартным отклонением 100000»10. Весь её текст составляют пятизначные случайные числа, сгенерированные случайным устройством, имеющих особую электрическую цепь, подверженную случайным флуктуациям.
Электронная случайность используется и сегодня. Например, устройство ERNIE (Electronic Random Number Indicator Equipment) и служит для генерации номеров в лотерее Premium Bond. ERNIE было построено в 1957 году, в настоящее время этим занимается ERNIE 4.
Программные генераторы пседослучайных чисел:
Алгоритм RANDU
Метод Фибоначчи с запаздыванием (Lagged Fibonacci generator)
Линейный конгруэнтный метод
Вихрь Мерсенна (Mersenne Twister)
Линейные F2-генераторы
Генераторы на регистрах сдвига с линейными обратными связями (LFSR)
Генераторы на регистрах сдвига с обобщёнными обратными связями (FFSR)
Витковые генераторы на регистрах сдвига с обобщёнными обратными связями (TGFSR)
