Автор | Сообщение |
|
Отправлено: 09.02.21 17:30. Заголовок: Не сходится ответ в онлайн-тестах по ЕГЭ.
Онлайн-тесты ЕГЭ, 5 - Выполнение и анализ простых алгоритмов, 7 задание. Не сходится ответ. Мой ответ: 92, вроде бы удовлетворяет алгоритму, но всё равно не сходится с ответом на сайте. Вот условие задачи: 7. На вход алгоритма подаётся натуральное число N. Алгоритм строит по нему новое число R следующим образом. 1) Строится двоичная запись числа N. 2) К этой записи дописывается (дублируется) последняя цифра. 3) Затем справа дописывается 0, если в двоичном коде числа N чётное число единиц, и 1, если нечётное. 4) К полученному результату дописывается ещё один бит чётности так, чтобы количество единиц в двоичной записи полученного числа стало чётным. Полученная таким образом запись (в ней на три разряда больше, чем в записи исходного числа N) является двоичной записью искомого числа R. Укажите минимальное число R, большее 80, которое могло получиться в результате работы автомата. В ответе это число запишите в десятичной системе.
|
|
|
Ответов - 17
, стр:
1
2
All
[только новые]
|
|
|
| Администратор
|
Сообщение: 2411
|
|
Отправлено: 09.02.21 17:32. Заголовок: egeinfa пишет: Мой о..
egeinfa пишет: Показывайте, как решали.
|
|
|
|
Отправлено: 09.02.21 17:47. Заголовок: Поляков пишет: С..
Поляков пишет: [quote]` Сначала просто подбирала числа больше 80, как и указано в условии. Никакие числа меньше 92 не подходили под алгоритм. Беру R=92. Перевожу в двоичную систему, получается: 1011100. По условию это число: 1011100, без трёх последних разрядов является исходным числом N в двоичной системе. Начинаю применять алгоритм: 1)Строится двоичная запись числа N: Она уже есть: 1011. 2)К этой записи дописывается (дублируется) последняя цифра: 10111. 3)Затем справа дописывается 0, если в двоичном коде числа N чётное число единиц, и 1, если нечётное: 101110 4) К полученному результату дописывается ещё один бит чётности так, чтобы количество единиц в двоичной записи полученного числа стало чётным: 1011100 Получается 1011100. Переводим в десятичную систему счисления. Ответ: 92
|
|
|
|
| Администратор
|
Сообщение: 2412
|
|
Отправлено: 09.02.21 18:02. Заголовок: egeinfa пишет: двоич..
egeinfa пишет: цитата: | двоичном коде числа N чётное число единиц, и 1, если нечётное: 101110 |
| Двоичный код числа N = 1011. Поэтому в конце должна быть 1.
|
|
|
|
Отправлено: 09.02.21 18:20. Заголовок: Поляков пишет: То..
Поляков пишет: [quote]` То есть, имеется ввиду исходный двоичный код числа N? Без применения второго пункта алгоритма? Под "исходный двоичный код числа N" я имею ввиду 1011. А код с применением второго пункта алгоритма 10111. Просто решала сейчас решала задание 8 в этом же тесте, которое практически абсолютно такое же. Решала этим же способом и ответ получился правильным. А если решать вашим способом и брать всегда исходный двоичный код, то в 8 получится неверный ответ. Да и не только в 8, но и в других заданиях этого же типа.
|
|
|
|
| Администратор
|
Сообщение: 2413
|
|
Отправлено: 09.02.21 18:27. Заголовок: egeinfa пишет: имеет..
egeinfa пишет: цитата: | имеется ввиду исходный двоичный код числа N |
|
Ну там же так и написано.
|
|
|
|
Отправлено: 09.02.21 18:31. Заголовок: Поляков пишет: Хо..
Поляков пишет: [quote]` Хорошо, но всё же повторюсь, что если во всех заданиях такого типа и из этого же самого теста, брать под каждый пункт алгоритма исходный двоичный код, то во всех заданиях ответы будут неправильные, за исключением 7 номера. А если брать допустим, для второго пункта алгоритма уже преобразованный код из первого алгоритма, то ответы выходят правильными. Я всё же склоняюсь к тому, что в номере 7 ошибка.
|
|
|
|
| Администратор
|
Сообщение: 2414
|
|
Отправлено: 09.02.21 18:37. Заголовок: egeinfa пишет: во вс..
egeinfa пишет: цитата: | во всех заданиях ответы будут неправильные |
|
Приведите пример. цитата: | Я всё же склоняюсь к тому, что в номере 7 ошибка. |
|
Это ваше право, конечно же.
|
|
|
|
Отправлено: 09.02.21 18:52. Заголовок: Поляков пишет: В ..
Поляков пишет: [quote]` В пример возьму задание 8. 8. На вход алгоритма подаётся натуральное число N. Алгоритм строит по нему новое число R следующим образом. 1) Строится двоичная запись числа N. 2) К этой записи дописывается (дублируется) последняя цифра. 3) Затем справа дописывается 0, если в двоичном коде числа N чётное число единиц, и 1, если нечётное. 4) К полученному результату дописывается ещё один бит чётности так, чтобы количество единиц в двоичной записи полученного числа стало чётным. Полученная таким образом запись (в ней на три разряда больше, чем в записи исходного числа N) является двоичной записью искомого числа R. Укажите минимальное число N, после обработки которого автомат получает число, большее 136. В ответе это число запишите в десятичной системе. Здесь правда нужно ввести минимальное число N, но сначала я всё равно ищу R>136. Все R<142 мне не подходят под условия алгоритма. Беру R=142. Перевожу в двоичную систему счисления, получается: 10001110. Теперь начинаю применять алгоритм на данном двоичном числе. По условию исходное число N является R в двоичной СС, но без трёх последних разрядов. Значит это: 10001. 1) Строится двоичная запись числа N: 10001. 2) К этой записи дописывается (дублируется) последняя цифра: 100011. 3) Затем справа дописывается 0, если в двоичном коде числа N чётное число единиц, и 1, если нечётное: 1000111 4) К полученному результату дописывается ещё один бит чётности так, чтобы количество единиц в двоичной записи полученного числа стало чётным: 10001110. Получается как раз число R=142 в двоичной системе счисления, значит оно мне подходит под алгоритм. Дальше просто беру исходный двоичный код числа N 10001, перевожу в десятичную систему счисления, получается 17. И ответ в этой задаче сходится, он как раз таки 17.
|
|
|
|
| Администратор
|
Сообщение: 2415
|
|
Отправлено: 09.02.21 19:16. Заголовок: egeinfa пишет: 3) За..
egeinfa пишет: цитата: | 3) Затем справа дописывается 0, если в двоичном коде числа N чётное число единиц, и 1, если нечётное: 1000111 |
|
Здесь должен быть 0. цитата: | 4) К полученному результату дописывается ещё один бит чётности так, чтобы количество единиц в двоичной записи полученного числа стало чётным: 10001110. |
|
Должно быть 01. Это число 141.
|
|
|
|
Отправлено: 09.02.21 19:33. Заголовок: Поляков пишет: Ст..
Поляков пишет: [quote]` Странно...а если допустим взять задание номер 5. 5. На вход алгоритма подаётся натуральное число N. Алгоритм строит по нему новое число R следующим образом. 1) Строится двоичная запись числа N. 2) Справа дописывается бит чётности. 3) Справа дописывается ещё один бит чётности. Полученная таким образом запись (в ней на два разряда больше, чем в записи исходного числа N) является двоичной записью искомого числа R. Укажите минимальное число R, большее, чем 96, которое могло получиться в результате работы этого алгоритма. В ответе это число запишите в десятичной системе. Здесь я также подбираю числа. Беру R=102. Перевожу в двоичную: 1100110. По условию N на два последних разряда меньше. Значит это 11001. Применяю алгоритм: 1) Строится двоичная запись числа N: 11001. 2) Справа дописывается бит чётности: 110011. 3) Справа дописывается ещё один бит чётности: 1100110. Получается двоичная запись числа 102. Ответ совпадает с ответом на сайте: 102.
|
|
|
|
| Администратор
|
Сообщение: 2417
|
|
Отправлено: 09.02.21 19:40. Заголовок: egeinfa пишет: 1) Ст..
egeinfa пишет: цитата: | 1) Строится двоичная запись числа N. 2) Справа дописывается бит чётности. 3) Справа дописывается ещё один бит чётности. |
|
Здесь как раз описывается тот алгоритм, который вы и используете - четность определяется по последнему результату.
|
|
|
|
|
Отправлено: 09.02.21 19:41. Заголовок: Поляков пишет: Сп..
Поляков пишет: [quote]` Спасибо большое! Какое, однако, невнятное условие.
|
|
|
|
| Администратор
|
Сообщение: 2418
|
|
Отправлено: 09.02.21 19:42. Заголовок: egeinfa пишет:Какое,..
egeinfa пишет: цитата: | Какое, однако, невнятное условие. |
|
Не могу согласиться.
|
|
|
|
Отправлено: 07.11.22 16:50. Заголовок: egeinfa пишет: Снач..
egeinfa пишет: цитата: | Сначала просто подбирала числа больше 80, как и указано в условии. Никакие числа меньше 92 не подходили под алгоритм. Беру R=92. Перевожу в двоичную систему, получается: 1011100. По условию это число: 1011100, без трёх последних разрядов является исходным числом N в двоичной системе. Начинаю применять алгоритм: 1)Строится двоичная запись числа N: Она уже есть: 1011. |
|
+ цитата: | 2)К этой записи дописывается (дублируется) последняя цифра: 10111. |
|
+ цитата: | 3)Затем справа дописывается 0, если в двоичном коде числа N чётное число единиц, и 1, если нечётное: 101110 |
|
- откуда здесь 0 смотри строку 1) там утверждается, что двоичный код 1011, количество 1 нечетно, следовательно ставим здесь 1 => не 101110, а 101111 цитата: | 4) К полученному результату дописывается ещё один бит чётности так, чтобы количество единиц в двоичной записи полученного числа стало чётным: 1011100 |
|
- было нечетное количество 1 => будет 1011111 1011111` цитата: | Переводим в десятичную систему счисления. Ответ: 92 |
| 95
|
|
|
|
Отправлено: 04.11.22 18:39. Заголовок: Я тоже долго думала,..
Я тоже долго думала, но там вот такой прикол: Там говорится в 3-ем и 4-ом пункте про "двоичную запись числа", а когда мы удваиваем последнюю цифру, то это уже "изменённая двоичная запись числа". То есть необходимо проверять на чётность по количеству единиц в самом начале (до удвоения последней цифры). Это правда странно, но это так. И тогда ответ правильный: 95, а в 8 задаче просто совпадение. вот код на питоне: for i in range (1,1000): n=bin(i)[2:] cnt=n.count('1') if cnt%2==0: n=n+n[-1]+'0' else: n=n+n[-1]+'1' if cnt%2==0: n=n+'0' else: n=n+'1' if int(n,2)>80: print(int(n,2)) break
|
|
|
|
Отправлено: 07.11.22 15:55. Заголовок: kates пишет: for i ..
kates пишет: цитата: | for i in range (1,1000): n=bin(i)[2:] cnt=n.count('1') if cnt%2==0: n=n+n[-1]+'0' else: n=n+n[-1]+'1' if cnt%2==0: n=n+'0' else: n=n+'1' if int(n,2)>80: print(int(n,2)) break |
| kates, чтобы ваш код был понятен остальным, ставьте вначале кода html команду [рre2].., а в конце повторите ее, но со слешем [/рre2] с уважением, Александр
|
|
|
|
Отправлено: 07.11.22 17:04. Заголовок: kates пишет: Там го..
kates пишет: цитата: | Там говорится в 3-ем и 4-ом пункте про "двоичную запись числа", а когда мы удваиваем последнюю цифру, то это уже "изменённая двоичная запись числа". То есть необходимо проверять на чётность по количеству единиц в самом начале (до удвоения последней цифры). Это правда странно, но это так. |
| Что здесь странного, если это алгоритм, а следовательно выполнять его нужно беспрекословно
|
|
|
Ответов - 17
, стр:
1
2
All
[только новые]
|
|