• Добро пожаловать на компьютерный форум Tehnari.ru. Здесь разбираемся с проблемами ПК и ноутбуков: Windows, драйверы, «железо», сборка и апгрейд, софт и безопасность. Форум работает много лет, сейчас он переехал на новый движок, но старые темы и аккаунты мы постарались сохранить максимально аккуратно.

    Форум не связан с магазинами и сервисами – мы ничего не продаём и не даём «рекламу под видом совета». Отвечают обычные участники и модераторы, которые следят за порядком и качеством подсказок.

    Если вы у нас впервые, загляните на страницу о форуме и правила – там коротко описано, как задать вопрос так, чтобы быстро получить ответ. Чтобы создавать темы и писать сообщения, сначала зарегистрируйтесь, а затем войдите под своим логином.

    Не знаете, с чего начать? Создайте тему с описанием проблемы – подскажем и при необходимости перенесём её в подходящий раздел.
    Задать вопрос Новые сообщения Как правильно спросить
    Если пришли по старой ссылке со старого Tehnari.ru – вы на нужном месте, просто продолжайте обсуждение.

Составить алгоритм

  • Автор темы Автор темы FIREMAX
  • Дата начала Дата начала

FIREMAX

Ученик
Регистрация
28 Ноя 2012
Сообщения
2
Реакции
0
Баллы
0
Составить алгоритм

Незнаю как сделать в дэльфи или фри паскаль (( новичок , поможете с кодом

Последовательность 011212201220200112… строится так: сначала 0, затем повторяется следующее действие: уже написанную часть приписывают справа с заменой 0 на 1, 1 на 2, 2 на 0, т.е.
0->01->0112->01121220->…
Составить алгоритм, который по введённому N, (0<=N<=3 000 000 000) определяет, какое число стоит на N-ом месте в последовательности нулей ( за исключением представления числа 0).Используя эту функцию, получить двоичное 1|16-ричное 2 представления данных пяти чисел.
 
у меня есть даже объяснения я и эго не понимаю (((
Пусть a(k) - k-ый член последовательности.
Рассмотрим последовательность, формируемую по следующему правилу:
a(0)=0;
ряд
a(0)...a(2k-1)
получаем приписыванием к этой последовательности справа этой же последовательности, но при этом каждый член приписываемой части увеличивается на единицу. Получаем
0->01->0112->01121220->...
Докажем, что a(k) есть сумма единиц в двоичном представлении числа k.
Доказательство проведем по индукции. Для a(0)=0 это справедливо. Пусть предположение справедливо для всех a(i),
0<=i<=2(k-1)-1 (т.е. для всех чисел i, состоящих из не более чем k-1-го двоичных разрядов). Тогда в двоичном разложении числа l, 2(k-1)<=l<2k, в k-ом разряде появляется добавочная единица, и поэтому
a(l)=1+a(l-2(k-1))),
ч.т.д.
Возьмем a(i) mod 3, и получим число, стоящее на i-ом месте в последовательности, описанной в условии задачи.
 
Назад
Сверху