Задание6

advertisement
Не формальное объяснение
Каждой вершине из V сопоставим метку — минимальное известное расстояние от
этой вершины до a. Алгоритм работает пошагово — на каждом шаге он «посещает» одну
вершину и пытается уменьшать метки. Работа алгоритма завершается, когда все вершины
посещены.
Инициализация. Метка самой вершины a полагается равной 0, метки остальных
вершин — бесконечности. Это отражает то, что расстояния от a до других вершин пока
неизвестны. Все вершины графа помечаются как непосещенные.
Шаг алгоритма. Если все вершины посещены, алгоритм завершается. В противном
случае из еще не посещенных вершин выбирается вершина u, имеющая минимальную
метку. Мы рассматриваем всевозможные маршруты, в которых u является предпоследним
пунктом. Вершины, соединенные с вершиной u ребрами, назовем соседями этой вершины.
Для каждого соседа рассмотрим новую длину пути, равную сумме текущей метки u и
длины ребра, соединяющего u с этим соседом. Если полученная длина меньше метки
соседа, заменим метку этой длиной. Рассмотрев всех соседей, пометим вершину u как
посещенную и повторим шаг.
ПРИМЕР
Рассмотрим работу алгоритма на примере графа, показанного на рисунке. Пусть
требуется найти расстояния от 1-й вершины до всех остальных.
Кружками обозначены вершины, линиями — пути между ними (ребра графа). В
кружках обозначены номера вершин, над ребрами обозначена их «цена» — длина пути.
Рядом с каждой вершиной красным обозначена метка — длина кратчайшего пути в эту
вершину из вершины 1.
Первый шаг. Рассмотрим шаг алгоритма Дейкстры для нашего примера.
Минимальную метку имеет вершина 1. Ее соседями являются вершины 2, 3 и 6.
Первый по очереди сосед вершины 1 — вершина 2, потому что длина пути до нее
минимальна. Длина пути в нее через вершину 1 равна кратчайшему расстоянию до
вершины 1 + длина ребра, идущего из 1 в 2, то есть 0 + 7 = 7. Это меньше текущей метки
вершины 2, поэтому новая метка 2-й вершины равна 7.
Аналогичную операцию проделываем с двумя другими соседями 1-й вершины — 3й и 6-й.
Все соседи вершины 1 проверены. Текущее минимальное расстояние до вершины 1
считается окончательным и пересмотру не подлежит (то, что это действительно так,
впервые доказал Дейкстра). Вычеркнем её из графа, чтобы отметить, что эта вершина
посещена.
Второй шаг. Шаг алгоритма повторяется. Снова находим «ближайшую» из
непосещенных вершин. Это вершина 2 с меткой 7.
Снова пытаемся уменьшить метки соседей выбранной вершины, пытаясь пройти в
них через 2-ю. Соседями вершины 2 являются 1, 3, 4.
Первый (по порядку) сосед вершины 2 — вершина 1. Но она уже посещена, поэтому
с 1-й вершиной ничего не делаем.
Следующий сосед вершины 2 — вершины 4 и 3. Если идти в неё через 2-ю, то длина
такого пути будет = кратчайшее расстояние до 2 + расстояние между вершинами 2 и 4 = 7
+ 15 = 22. Поскольку 22<∞, устанавливаем метку вершины 4 равной 22.
Ещё один сосед вершины 2 — вершина 3. Если идти в неё через 2, то длина такого
пути будет = 7 + 10 = 17. Но текущая метка третьей вершины равна 9<17, поэтому метка
не меняется.
Все соседи вершины 2 просмотрены, замораживаем расстояние до неё и помечаем ее
как посещенную.
Третий шаг. Повторяем шаг алгоритма, выбрав вершину 3.
Дальнейшие шаги. Повторяем шаг алгоритма для оставшихся вершин (Это будут
по порядку 6, 4 и 5).
Завершение выполнения алгоритма. Алгоритм заканчивает работу, когда
вычеркнуты все вершины. Результат его работы: кратчайший путь от вершины 1 до 2-й
составляет 7, до 3-й — 9, до 4-й — 20, до 5-й — 20, до 6-й — 11.
Определить кратчайшее расстояние от A до F
Каким может быть выражение
x1 \/ x2 \/ x3 \/ ¬x4 \/ ¬x5
¬x1 \/ x2 \/ ¬x3 \/ x4 \/ ¬x5
x1 /\¬ x2 /\ x3 /\ ¬x4 /\ x5
¬x1 /\ x2 /\ x3 /\ x4 /\ ¬x5
Определите на основании приведенных данных фамилию и инициалы внучки Белых И.А.
Виды ссылок. Относительные и абсолютные адреса ячеек.
При решении однотипных задач мы используем одну и ту же формулу. Чтобы не вводить
формулу заново, мы ее копируем. В процессе копирования формулы в Excel, автоматически
меняются адреса ячеек, на которые в формуле сделаны ссылки. Такая адресация
называется относительной.
В некоторых случаях нет необходимости автоматически изменять ссылки при копировании
формул, для таких случаев в Excel предусмотрены абсолютные ссылки, которые не меняются
в процессе копирования.
Абсолютные адреса записываются с помощью знака доллара: =$3+8
Для перехода от относительного адреса к абсолютному используется клавиша F4.
В ячейке G4 электронной таблицы записана формула =D$22*$D23.
Примечание: знак $ используется для обозначения абсолютной адресации.
Какой вид приобретет формула, после того как ячейку G4 скопируют в ячейку F3?
Производится двухканальная (стерео) звукозапись с частотой дискретизации 16 кГц и 32-битным
разрешением. Запись длится 12 минут, ее результаты записываются в файл, сжатие данных не
производится.
Какое из приведенных ниже чисел наиболее близко к размеру полученного файла, выраженному в
мегабайтах?
30, 60, 75, 90
Текстовый документ, состоящий из 5120 символов, хранился в 8-битной кодировке КОИ-8. Этот
документ был преобразован в 16-битную кодировку Unicode.
Какое дополнительное количество Кбайт потребуется для хранения документа?
Для кодирования некоторой последовательности, состоящей из букв А, Б, В, Г и Д, используется
неравномерный двоичный код, позволяющий однозначно декодировать полученную двоичную
последовательность. Вот этот код: А–10, Б–001, В–0001, Г–110, Д–111. Можно ли сократить для одной из
букв длину кодового слова так, чтобы код по-прежнему можно было декодировать однозначно? Коды
остальных букв меняться не должны. Выберите правильный вариант ответа.
это невозможно, для буквы В – 000, для буквы Б – 00, для буквы Г – 11
Чему будет равно значение переменной s после выполнения данной программы, при значениях
элементов массива (0,1,2,3,4,6,5,6,7,8,32,2)?
s = 0;
z = A[n];
for (i = 0; i <= n; i++){
if (A[i] > z)
s++;
}
Сколько клеток лабиринта соответствуют требованию, что, начав движение в ней и выполнив
предложенную программу, РОБОТ уцелеет и остановится в закрашенной клетке (клетка F6)?
НАЧАЛО
ПОКА<справа свободно ИЛИ снизу свободно>
ПОКА <снизу свободно>
вниз
КОНЕЦ ПОКА
ПОКА <справа свободно>
вправо
КОНЕЦ ПОКА
КОНЕЦ ПОКА
КОНЕЦ
Определите, что будет напечатано в результате выполнения программы, записанной ниже на разных
языках программирования:
#include<stdio.h>
void main()
{
int n, s;
n = 1;
s = 0;
while (n <= 101)
{
s = s + 7;
n = n + 1;
}
printf("%d", s);}
У исполнителя Калькулятор две команды, которым присвоены номера:
1.
отними 2
2.
раздели на 3
Выполняя первую из них, Калькулятор отнимает от числа на экране 2, а выполняя вторую, делит его на
3 (если деление нацело невозможно, Калькулятор отключается).
Запишите порядок команд в программе получения из числа 37 число 3, содержащей не более 5 команд,
указывая лишь номера команд
Дан фрагмент электронной таблицы:
A
B
1 4
2
C
2 =2*(A1–C1) =(2*B1+A1)/4 =C1-1
Какое целое число должно быть записано в ячейке C1, чтобы построенная после выполнения
вычислений диаграмма по значениям диапазона ячеек A2:С2 соответствовала рисунку?
Download