2004-gre-cs-practice-book.pdf/Q44 — различия между версиями
Материал из DISCOPAL
StasFomin (обсуждение | вклад) (Новая страница: « == Вопрос: Q44-4c9f66 == <i>Тут вставьте перевод вопроса. Используйте [https://wiki.4intra.net/Help:%D0%A4%D0%BE%D1%80…») |
StasFomin (обсуждение | вклад) |
||
Строка 1: | Строка 1: | ||
− | |||
== Вопрос: Q44-4c9f66 == | == Вопрос: Q44-4c9f66 == | ||
+ | Рассмотрим следующий псевдокод, где ''n'' — неотрицательное целое число | ||
− | < | + | <code-c> |
− | + | x = 0; | |
− | + | i = 0; | |
− | + | while i < n do | |
+ | x = x + 2^i; | ||
+ | i = i + 1; | ||
+ | end | ||
+ | </code-c> | ||
− | + | Что из приведенного ниже является инвариантом цикла для оператора <tt>while</tt>? | |
− | < | + | |
− | + | ||
− | + | Примечание: инвариант цикла для оператора <tt>while</tt> — это утверждение, которое верно каждый раз, когда сторожевое условие оценивается во время выполнения оператора <tt>while</tt>. | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | < | + | |
− | + | ||
− | + | ||
+ | === Ответы === | ||
+ | * <m>x = 2^i - 1</m> и <m>0 \leq i < n</m> | ||
+ | * <m>x = 2^{i+1} - 1</m> и <m>0 \leq i < n</m> | ||
+ | * Правильный ответ: <m>x = 2^i - 1</m> и <m>0 \leq i \leq n</m> | ||
+ | * <m>x = 2^{i+1} - 1</m> и <m>0 \leq i \leq n</m> | ||
+ | * <m>x > 0</m> и <m>1 \leq i < n</m> | ||
=== Объяснение === | === Объяснение === | ||
− | + | {{cstest-source|2004-gre-cs-practice-book.pdf|32|44}} | |
− | {{cstest-source|2004-gre-cs-practice-book.pdf| | + | |
+ | * Ну сначала посмотрим на i и видим, что оно может добраться до n — остается два варианта. | ||
+ | * Из этих вариантов правильный <m>x = 2^i - 1</m> и <m>0 \leq i \leq n</m>, потому что i мы увеличиваем после вычисления x. | ||
− | + | {{question-ok|}} | |
− | + | [[Категория:Циклы]] |
Версия 14:28, 15 декабря 2024
Вопрос: Q44-4c9f66
Рассмотрим следующий псевдокод, где n — неотрицательное целое число
x = 0; i = 0; while i < n do x = x + 2^i; i = i + 1; end
Что из приведенного ниже является инвариантом цикла для оператора while?
Примечание: инвариант цикла для оператора while — это утверждение, которое верно каждый раз, когда сторожевое условие оценивается во время выполнения оператора while.
Ответы
- и
- и
- Правильный ответ: и
- и
- и
Объяснение
Исходники — вопрос 44 на 32 странице книги «2004-gre-cs-practice-book.pdf»
- Ну сначала посмотрим на i и видим, что оно может добраться до n — остается два варианта.
- Из этих вариантов правильный и , потому что i мы увеличиваем после вычисления x.