2011-gre-cs-practice-book.pdf/Q32 — различия между версиями

Материал из DISCOPAL
Перейти к: навигация, поиск
(Новая страница: « == Вопрос: Q32-08c765 == <i>Тут вставьте перевод вопроса. Используйте [https://wiki.4intra.net/Help:%D0%A4%D0%BE%D1%80…»)
 
 
(не показана 21 промежуточная версия 1 участника)
Строка 1: Строка 1:
 
 
== Вопрос: Q32-08c765 ==
 
== Вопрос: Q32-08c765 ==
  
<i>Тут вставьте перевод вопроса.
+
Ближайшие соседи: Дан неотсортированный массив из <m>n</m> чисел с плавающей точкой. Необходимо найти два из них, которые ближе всего друг к другу по значению.
Используйте [https://wiki.4intra.net/Help:%D0%A4%D0%BE%D1%80%D0%BC%D0%B0%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5 возможности разметки],
+
включая формулы и т.п, если будут графы — посмотрите как задать их текстом https://wiki.4intra.net/Graphviz .  
+
Если код — теги «code-pascal», «code-c» или «code-python».
+
  
Старайтесь нетривиальные понятия, особенно незнакомые вам, найти ссылку на википедию и вставить (нейросети лажают!).  
+
Самые дальние соседи: Дан неотсортированный массив из <m>n</m> чисел с плавающей точкой. Необходимо найти два из них, которые дальше всего друг от друга по значению.
Это важно, чтобы найти корректный перевод (то, что в википедии, или на худой конец — точно массово гуглится).
+
  
Потом конечно сотрите инструкции, которые тут курсивом.</i>
+
Предположим, что разрешены только следующие операции с данными:
  
=== Ответы ===
+
* Сравнение значений двух элементов массива с целью определения большего из них;
<i>Если ответы простые, однострочные, используйте простой способ задания ответов списком, типа так
+
* Сравнение расстояния между двумя элементами массива (абсолютное значение разности между значениями двух элементов) с расстоянием между двумя другими элементами массива;
(префикс «Правильный ответ:» — это дословно, для правильного ответа, неважно, какой он будет в списке)</i>
+
* Перестановка двух элементов массива.
  
* Правильный ответ: тут реально правильный ответ
+
Также предполагается, что каждая разрешённая операция стоит единичную стоимость. Каковы наихудшие (в худшем случае) асимптотические временные сложности алгоритмов, решающих эти две задачи?
* неправильный ответ
+
* еще какой-то неправильный ответ
+
* еще какой-то неправильный ответ
+
* еще какой-то неправильный ответ
+
  
<i>Если ответы длинные, многострочные, или там графы, используйте
+
=== Ответы ===
[https://wiki.4intra.net/MediawikiQuizzer/ru#.D0.9E.D1.82.D0.B2.D0.B5.D1.82.D1.8B способ задания ответов разделами],
+
<latex>
Но такое очень редко встречается. </i>
+
\begin{center}
 +
\begin{tabular}{|c|c|c|}
 +
\hline
 +
\textbf{Nearest Neighbors} & \textbf{Farthest Neighbors} \\ \hline
 +
(A) $\Theta(n \log n)$ & $\Theta(n)$ \\ \hline
 +
(B) $\Theta(n \log n)$ & $\Theta(n \log n)$ \\ \hline
 +
(C) $\Theta(n^2)$      & $\Theta(n)$ \\ \hline
 +
(D) $\Theta(n^2)$      & $\Theta(n \log n)$ \\ \hline
 +
(E) $\Theta(n^2)$      & $\Theta(n^2)$ \\ \hline
 +
\end{tabular}
 +
\end{center}
 +
</latex>
  
 +
'''Правильный ответ: (А)'''
  
 
=== Объяснение ===
 
=== Объяснение ===
<i>Сначала заполните номер страницы с этим вопросом
+
{{cstest-source|2011-gre-cs-practice-book.pdf|30|32}}
{{cstest-source|2011-gre-cs-practice-book.pdf|тут-номер-страницы-с-вопросом-32|32}}
+
 
 +
Можно сделать следующие наблюдения:
  
Если все сделаете правильно, по ссылке выше будет открываться правильная страница в правильном PDFе.
+
* Самые дальние соседи 
 +
*# Нужно найти только глобальный минимум и максимум массива. 
 +
*# Поиск минимума и максимума может быть выполнен за время <m>\( \Theta(n)\)</m> (с одним проходом по массиву). 
 +
*# Таким образом, задача нахождения самых дальних соседей имеет оптимальное худшее время выполнения <m>\( \Theta(n)\)</m>.
  
Ну и наконец, вики-разметкой напишите ваше понимание, почему правильный ответ — правильный, а [[2004-gre-cs-practice-book.pdf/Q16|неправильные варианты — неправильны]].
+
* Ближайшие соседи
Тут тоже могут быть полезны [[2004-gre-cs-practice-book.pdf/Q03|ссылки на википедию]],
+
*# Классический подход состоит в том, чтобы сначала отсортировать массив (за время <m>\( \Theta(n \log n)\)</m>), а затем выполнить один линейный проход по отсортированному массиву, чтобы найти минимальную разницу между соседними элементами (время <m>\(\Theta(n)\)</m>).
решение вами [[2004-gre-cs-practice-book.pdf/Q12|рекуррентных уравнений в sympy]].
+
*# Это дает общее время выполнения <m>\( \Theta(n \log n)\)</m>.
 +
*# В модели сравнения можно доказать, что худший случай с временем <m>\(o(n \log n)\)</m> невозможен.
  
</i>
+
Следовательно, правильный ответ это тот, где для задачи ближайших соседей время составляет <m>\( \Theta(n \log n)\)</m>, а для задачи самых дальних соседей — <m>\( \Theta(n)\)</m>.
  
{{question-ok|}}
+
[[Участник:StasFomin|StasFomin]] 09:58, 9 января 2025 (UTC): {{BadTest}}

Текущая версия на 09:58, 9 января 2025

Вопрос: Q32-08c765

Ближайшие соседи: Дан неотсортированный массив из чисел с плавающей точкой. Необходимо найти два из них, которые ближе всего друг к другу по значению.

Самые дальние соседи: Дан неотсортированный массив из чисел с плавающей точкой. Необходимо найти два из них, которые дальше всего друг от друга по значению.

Предположим, что разрешены только следующие операции с данными:

  • Сравнение значений двух элементов массива с целью определения большего из них;
  • Сравнение расстояния между двумя элементами массива (абсолютное значение разности между значениями двух элементов) с расстоянием между двумя другими элементами массива;
  • Перестановка двух элементов массива.

Также предполагается, что каждая разрешённая операция стоит единичную стоимость. Каковы наихудшие (в худшем случае) асимптотические временные сложности алгоритмов, решающих эти две задачи?

Ответы

Правильный ответ: (А)

Объяснение

Исходники — вопрос 32 на 30 странице книги «2011-gre-cs-practice-book.pdf»

Можно сделать следующие наблюдения:

  • Самые дальние соседи
    1. Нужно найти только глобальный минимум и максимум массива.
    2. Поиск минимума и максимума может быть выполнен за время (с одним проходом по массиву).
    3. Таким образом, задача нахождения самых дальних соседей имеет оптимальное худшее время выполнения .
  • Ближайшие соседи
    1. Классический подход состоит в том, чтобы сначала отсортировать массив (за время ), а затем выполнить один линейный проход по отсортированному массиву, чтобы найти минимальную разницу между соседними элементами (время ).
    2. Это дает общее время выполнения .
    3. В модели сравнения можно доказать, что худший случай с временем невозможен.

Следовательно, правильный ответ это тот, где для задачи ближайших соседей время составляет , а для задачи самых дальних соседей — .

StasFomin 09:58, 9 января 2025 (UTC):

Посмотрите как оформлять тесты. Нет уже сил обьяснять каждому.