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

Материал из DISCOPAL
Перейти к: навигация, поиск
(Новая страница: « == Вопрос: Q15-4c9f66 == <i>Тут вставьте перевод вопроса. Используйте [https://wiki.4intra.net/Help:%D0%A4%D0%BE%D1%80…»)
 
Строка 1: Строка 1:
 
 
== Вопрос: Q15-4c9f66 ==
 
== Вопрос: Q15-4c9f66 ==
 +
Инвариантом для приведенного ниже цикла является <m>z*x^k=b^n</m> и <m>k \ge 0</m>.
  
<i>Тут вставьте перевод вопроса.
+
<code-c>
Используйте [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 возможности разметки],
+
  x := b; k := n; z := 1;
включая формулы и т.п, если будут графы — посмотрите как задать их текстом https://wiki.4intra.net/Graphviz .
+
  while (k != 0)
Потом конечно сотрите инструкции, которые тут курсивом.</i>
+
  {
 +
    if odd(k) then z := z*x;
 +
    x := x*x;
 +
    k := [k/2];
 +
  }
 +
</code-c>
 +
 
 +
Когда цикл завершается, что из перечисленного ниже должно быть '''истинным'''?
  
 
=== Ответы ===
 
=== Ответы ===
<i>Если ответы простые, однострочные, используйте простой способ задания ответов списком, типа так
+
* <m>x=b^n</m>
(префикс «Правильный ответ:» — это дословно, для правильного ответа)</i>
+
* Правильный ответ: <m>z=b^n</m>
 +
* <m>b=x^n</m>
 +
* <m>b=z^n</m>
 +
* <m>k \ne 0</m>
  
* Правильный ответ: тут реально правильный ответ
+
=== Объяснение ===
* неправильный ответ
+
* еще какой-то неправильный ответ
+
* еще какой-то неправильный ответ
+
* еще какой-то неправильный ответ
+
  
<i>Если ответы длинные, многострочные, или там графы, используйте
+
Это классический алгоритм «быстрого возведения в степень».
[https://wiki.4intra.net/MediawikiQuizzer/ru#.D0.9E.D1.82.D0.B2.D0.B5.D1.82.D1.8B способ задания ответов разделами],
+
Но такое очень редко встречается. </i>
+
  
 +
{{cstest-source|2004-gre-cs-practice-book.pdf|18|15}}
  
=== Объяснение ===
+
{{question-ok|[[Участник:StasFomin|StasFomin]] 00:43, 14 декабря 2024 (UTC)}}
<i>Сначала заполните номер страницы с этим вопросом
+
{{cstest-source|2004-gre-cs-practice-book.pdf|тут-номер-страницы-с-вопросом-15|15}}
+
 
+
Ну и наконец, вики-разметкой напишите ваше понимание, почему правильный ответ — правильный.</i>
+
  
{{question-ok|}}
+
[[Категория:Циклы]]

Версия 00:43, 14 декабря 2024

Вопрос: Q15-4c9f66

Инвариантом для приведенного ниже цикла является и .

  x := b; k := n; z := 1;
  while (k != 0)
  {
    if odd(k) then z := z*x;
    x := x*x;
    k := [k/2];
  }

Когда цикл завершается, что из перечисленного ниже должно быть истинным?

Ответы

  • Правильный ответ:

Объяснение

Это классический алгоритм «быстрого возведения в степень».

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