Algoritmid ja andmestruktuurid
#7
Отправлено 17 ноября 2008 - 18:46
#8
Отправлено 18 ноября 2008 - 10:30
спасибо... мы с тобой это уже обсуждали как-то в мсне, я у тебя спрашивала...ты мне то же самое говорил, что 28го... лекции он ещё не вывесил, гад... поэтому и спрашиваю у народа... а не хожу, потому что не могу - работаMyWonok, 28го числа. у него в лекциях помоему написано. темболее по вторникам лекции, почему не подойти =)
#9
Отправлено 16 декабря 2008 - 00:25
#11
Отправлено 06 января 2009 - 14:59
я планируюКто планирует сдавать предмет IAG0090 Algoritmid ja andmestruktuurid (V. Leppikson) в эту сессию - январь 2009? Есть такие?
#12
Отправлено 10 января 2009 - 20:49
#13
Отправлено 10 января 2009 - 21:29
кто был уже на екзамене у кярамееса, напишите что было, пожалуйста.
Вопросов было всего 4, но они довольно объемные. Письменный экзамен был практически идентичен по содержанию вот с этим примером, выложенным на страничке у Марко: http://cs.ttu.ee/kur...i0050/eksam.pdf . Мне попались следующие вопросы (на всякий случай, был вариант B ):
1. Напишите к какому классу сложности относятся данные выражения.... Давались соответственно функции f(n) i g(n).
2. Реализовать backtracking algorithm по условию задачи.
3. Три задания на paisksalvestus (Hash table).
3.1. См. Точно такое задание мы решали на харьютусе, когда была тема про Хэш-таблицы.
3.2. Чем отличается open addressing от простой цепочной реализации (chaining method).
3.2. Реализовать алгоритм добавления нового ключа в Hash таблицу.
4. Ответить на вопросы не более чем двумя предложениями.
4.1. Raskuspunktid при планировании динамического алгоритма.
4.2. Что такое minimaalne kattev puu?
4.3. Чем отличается binary heap от binary tree?
4.4. Что такое амортизированный анализ.
Сообщение изменено: Catherinka (10 января 2009 - 21:30 )
#14
Отправлено 10 января 2009 - 21:48
1. Даны 4 пары функций. Для каждой пары надо написать, как первая относится к классу сложности второй. Т.е f(x) = o(g(x)) или f(x) = ω(g(x)) или f(x) = ο(g(x)). Вместо "=" – перевёрнутое "э".
2. Написать алгоритм, который брал бы входными данными число N (< 10) и генерировал бы такую пермутацию из цифр 0....N, что:
а) Любая цифра не стоит на месте, которое она обозначает. Например, в 1203 цифра 3 стоит на 3-ем месте (если считать с нуля). Такую нельзя.
б) Разность между двумя соседними цифра должна быть больше 1.
в) Число, которое эта пермутация обозначает, должно быть наименьшим. Например, если сгенерировалось 3102 и 2013, то нужно предпочесть последнее.
Использовать алгоритм с backtracking и отсечением. За другой алгоритм снижают баллы. Потом надо оценить сложность алгоритма, который сам же написал.
3. На хэщ-таблицы. Вставить в хеш-таблицу данные числа и числа, которые получаются из твоего матрикуля. Хэш-функции первая и вторая, для коллизий, даны. Потом надо удалить числа. Это был open adressing, надо ещё написать его преимущества. Далее, во второй части надо написать функцию вставки ключа в хэш-таблицу, где используется chaining. Прототип функции дан.
4. Где-то 5 теоретических вопросов, типа "Какие сложности возникают при динамическом планировании?", "Чем бинарное дерево поиска отличается от бинарной кучи?", "Как можно доказать, что у какой-то задачи нет алгоритмического решения?".
Catherinka, одинаковые варианты, вот пусть люди и сверяют, кто правду говорит, а кто нет.
Сообщение изменено: Object (10 января 2009 - 21:58 )
#15
Отправлено 10 января 2009 - 22:59
число или массив? чтото не понятно как с числом такое сделать ...а) Любая цифра не стоит на месте, которое она обозначает. Например, в 1203 цифра 3 стоит на 3-ем месте (если считать с нуля). Такую нельзя.
void search(int a[], i) { if (a[i] != i) { print a[i] } if (index < a.length) { search(a, i + 1) } }
б) Разность между двумя соседними цифра должна быть больше 1.
void search(int a[], int i) { if (a[i-1] - a[i+1] > 1) { print a[i] } if (exist previous and next element in a) { search(a, i + 1) } }
можете помоч с решеним варианта?
Сообщение изменено: Infern0 (10 января 2009 - 23:31 )
#16
Отправлено 11 января 2009 - 15:28
Условие а) a[i] != i, для любого i = 0...N
Условие b) abs(a[i+1]-a[i]) > 1 для любого i = 0..(N-1)
Ты написал как бы проверки существующего массива на ошибки. Проще же написать алгоритм так, чтобы цифры добавлялись по одной в конец текущего массива. Нужно хранить множество оставшихся неиспользованных цифр. Таким образом, при добавлении сразу проверяется, попадает ли цифра на то место, которое она обозначает и какова разность с левым соседом (правого ещё нет). См. слайды по алгоритмам, 4-я лекция, otsingupuu.
Сообщение изменено: Object (11 января 2009 - 15:29 )
#18
Отправлено 11 января 2009 - 23:23
напиши ему на всякий случай мейлА ты время случайно не знаешь? Мне сказали что сам Леппиксон только 12-го приезжает... есть ли какая-то регистрация?
мне вот что ответил
eraldi eksamit ei tule, kuid 14. jaanuaril II-309 10:00 on eksam aines
"Objekt-orienteeritud programmeerimine". Võite sinna tulla. Registreerida
pole vaja.
#20
Отправлено 13 января 2009 - 15:57
#21
Отправлено 13 января 2009 - 20:41
Kirjutage funktsioon:
remove(String str, Hash registreeritud, int m), mis eemaldab argumendiks oleva stringi str m elemendiga hash tabelist registreeritud. Hash table kasutab kokkupхrgete lahendamiseks lingitud liste (chaining). Kui stringi ei ole tabelis, siis vдljastatakse teade "Stringi ei ole tabelis". Vдlistest abifunktsioonidest vхib kasutada ainult:
bool equal(String str1, String str2), mis vхrdleb kas kaks stringi on vхrdsed;
int hash(String str, int m), mis vдljastab iga stringi kohta vддrtuse vahemikust 0...m-1.
Mis on teie realiseeritud funktsiooni keerukus?
заранее спасибо...
Сообщение изменено: MyWonok (13 января 2009 - 20:44 )