Помощь - Поиск - Пользователи - Календарь
Полная версия: Задачка СС
Форум «Всё о Паскале» > Образование и наука > Математика
Unconnected
Привет всем. Учусь делать всякие операции с СС, попалась такая задача с разбором:

Нажмите для просмотра прикрепленного файла

Ну я ж решил себя проверить, и вместо 8-чной, как в разборе, перевёл 101 в 4-ричную (114), и тоже составил уравнение.
x=1*40 + 1*4+a*16. Дальше не беру, т.к. следующая степень точно превысит 25. Для этого случая подходят a=0,1. То есть, решения 5, 21. А 13 нет. В чем подвох?
volvo
Цитата
А 13 нет
А 1310 = 314, это не заканчивается на 11...
Unconnected
А в двоичном это 1101, что удовлетворяет условию.. как-то странно получается)
volvo
"Не все йогурты СС одинаково полезны" (почти С)
blum.gif Все-таки, лучше переводить в такую СС, чтобы искомой была одна цифра.
Unconnected
Во дела.. ну я подозревал такое, но всё же казалось, что решаться должно универсально) Спасибо, запомню.
Lapp
Цитата(Unconnected @ 11.03.2011 20:28) *
казалось, что решаться должно универсально)
Вот именно, _должно_ (по возможности, конечно).
Приведенное в разборе решение вообще безобразное.
Интересно, а если задача стояла бы так: "Найти все (десятичные) числа, заканчивающиеся на 101 и не превосходящие 1234" - они что, стали бы переходить в 1000-ричную систему счисления??

Не надо никуда переходить. Искомые числа имеют вид:
n*10002 + 1012
Это же, но в десятичной записи:
n*8 + 5
Вот и все.

А все слова "для удобства" должны сопровождаться доказательством того, что это не вредит решению.
Задача: купить буханку хлеба.
Решение: так, магазин через дорогу; для удобства не будем тащиться к перекрестку, а перейдем прямо тут.. ...
naezd.gif
Unconnected
Цитата
Не надо никуда переходить. Искомые числа имеют вид:
n*10002 + 1012


Почему взято именно 10002 (8) ? Я так понял, потому, что при любом n в конце будет 3 нуля и при прибавлении 101 будет оканчиваться на 101, да?
unic
Вот набросал общий вид решения подобных вещей , возможно способ и ошибочный , тк придумал на ходу исходя из "воспоминаний" и формулы предоставленной Lapp .

Нажмите для просмотра прикрепленного файла
Lapp
Цитата(Unconnected @ 12.03.2011 14:01) *
Почему взято именно 10002 (8) ? Я так понял, потому, что при любом n в конце будет 3 нуля и при прибавлении 101 будет оканчиваться на 101, да?
Да, именно так.
И наоборот - если число заканчивается на 101, то после вычитания 101 оно будет иметь в конце 000, то есть подходит под эту запись. Таким образом, это необходимое и достаточное (то есть эквивалентное) условие.


Добавлено через 5 мин.
Цитата(unic @ 12.03.2011 20:56) *
Вот набросал общий вид решения подобных вещей , возможно способ и ошибочный , тк придумал на ходу исходя из "воспоминаний" и формулы предоставленной Lapp .
Нажмите для просмотра прикрепленного файла

Я только не понял, что за наезд ты имеешь в виду. Просьба в теме писать только по теме.
unic
Lapp , алгоритм решения правильный ?
Lapp
Цитата(unic @ 13.03.2011 11:31) *
Lapp , алгоритм решения правильный ?
Алгоритма не вижу, вижу перебор (который, впрочем, тут вполне годится). Если хочешь алгоритм, то так:

...

n*8 + 5 <= 25

n <= [(25-5)/8] (это учитывая, что n - целое)

n <= 2

С другой стороны, числа подразумеваются натуральными, то есть

n*8 + 5 > 0

n > - 5/8 = -0.625

Пересечение этих условий дает результат:

0 <= n <= 2

Выписываем явно:

n = 0, 1, 2 .

Подставляя обратно в формулу, имеем:

8*0 + 5 = 5
8*1 + 5 = 13
8*2 + 5 = 21

Эти три числа и являются ответом.
Unconnected
Спасибо всем, систему понял smile.gif
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.