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

Материал из DISCOPAL
Перейти к: навигация, поиск
(Вопрос: Q32-08c765)
 
(не показано 17 промежуточных версий 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>
+
 
+
Ближайшие соседи: Дан неотсортированный массив из nn чисел с плавающей точкой. Необходимо найти две из них, которые ближе всего друг к другу по значению.
+
 
+
Самые дальние соседи: Дан неотсортированный массив из nn чисел с плавающей точкой. Необходимо найти две из них, которые дальше всего друг от друга по значению.
+
  
 
Предположим, что разрешены только следующие операции с данными:
 
Предположим, что разрешены только следующие операции с данными:
  
    Сравнение значений двух элементов массива с целью определения большего из них;
+
* Сравнение значений двух элементов массива с целью определения большего из них;
    Сравнение расстояния между двумя элементами массива (абсолютное значение разности между значениями двух элементов) с расстоянием между двумя другими элементами массива;
+
* Сравнение расстояния между двумя элементами массива (абсолютное значение разности между значениями двух элементов) с расстоянием между двумя другими элементами массива;
    Перестановка двух элементов массива.
+
* Перестановка двух элементов массива.
  
 
Также предполагается, что каждая разрешённая операция стоит единичную стоимость. Каковы наихудшие (в худшем случае) асимптотические временные сложности алгоритмов, решающих эти две задачи?
 
Также предполагается, что каждая разрешённая операция стоит единичную стоимость. Каковы наихудшие (в худшем случае) асимптотические временные сложности алгоритмов, решающих эти две задачи?
  
 
=== Ответы ===
 
=== Ответы ===
<i>Если ответы простые, однострочные, используйте простой способ задания ответов списком, типа так
+
<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
<i>Если ответы длинные, многострочные, или там графы, используйте
+
(E) $\Theta(n^2)$      & $\Theta(n^2)$ \\ \hline
[https://wiki.4intra.net/MediawikiQuizzer/ru#.D0.9E.D1.82.D0.B2.D0.B5.D1.82.D1.8B способ задания ответов разделами],
+
\end{tabular}
Но такое очень редко встречается. </i>
+
\end{center}
 +
</latex>
  
 +
'''Правильный ответ: (А)'''
  
 
=== Объяснение ===
 
=== Объяснение ===
<i>Сначала заполните номер страницы с этим вопросом
 
 
{{cstest-source|2011-gre-cs-practice-book.pdf|30|32}}
 
{{cstest-source|2011-gre-cs-practice-book.pdf|30|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}}
{{reserve-task|[[Участник:Nikitashapovalov|Nikitashapovalov]] 19:54, 8 января 2025 (UTC)}}
+

Текущая версия на 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):

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