Войти в систему

Home
    - Создать дневник
    - Написать в дневник
       - Подробный режим

LJ.Rossia.org
    - Новости сайта
    - Общие настройки
    - Sitemap
    - Оплата
    - ljr-fif

Редактировать...
    - Настройки
    - Список друзей
    - Дневник
    - Картинки
    - Пароль
    - Вид дневника

Сообщества

Настроить S2

Помощь
    - Забыли пароль?
    - FAQ
    - Тех. поддержка



Пишет qwerty ([info]qwerty)
@ 2010-01-24 17:11:00


Previous Entry  Add to memories!  Tell a Friend!  Next Entry
Задачка

Есть одномерный массив целых. В начале его расположен массив A длиной a, в конце B длиной b, а посредине не интересующий нас мусор длиной c. Требуется красивым образом переместить B в начало, за ним расположить A, причем сделав при этом не более a+b чтений и записей в массив. Судьба мусора не интересует. Файлы, посторонняя память и рекурсия категорически отсутствуют.


(Читать комментарии) - (Добавить комментарий)


[info]ppkk
2010-01-25 23:30 (ссылка)
Ответ: x=y=0?:)

Как задачу это не встречал, вероятно и потому, что так обожали менять значения в программах-примерах: составителям, в отличие от меня, это нравилось.

При таких раскладах (особенно если вопят об отсутствии памяти) кажется единственной возможной операция по записи числа на "пустое" мето. Я торопился, так что предположил, что c=0 не бывает, рассмотрел c=1, там всё однозначно (и, как я не удосужился проверить, не работает), а дальше однозначно обобщил на c>1. Так как "задачка" оказалась из жанра "угадай условие", буду ждать, когда [info]qwerty@lj самоудовлетворённо напишет, что все идиоты, а он Д'Артаньян: видимо, узнаю и условия, и решение, алгоритм по-любому должен быть интересным.

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]phantom
2010-01-26 11:51 (ссылка)
>Как задачу это не встречал, вероятно и потому, что так обожали менять значения в
>программах-примерах: составителям, в отличие от меня, это нравилось.


В книге Шеня идёт как задача, правда, сразу с решением.

>видимо, узнаю и условия, и решение, алгоритм по-любому должен быть интересным.

Сомневаюсь, т.к. эти задачи скорее для разминки мозга, нежели несущие какую-либо практическую ценность.

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]ppkk
2010-01-26 17:33 (ссылка)
скорее для разминки мозга, нежели несущие какую-либо практическую ценность
Зависит от работы.
Я устроился программистом (криптография-криптоанализ) — "эти задачи" были актуальны, но тянуло к переписыванию на ассемблере с SSE и прочей жутью. А сейчас просто тупо программирую то, в чём редко надо умничать. Но задачи типа упрощённого движка шаблонов или операций со списками, которые должны быть эффективными, порой встречаются: многие их решают неправильно. Или с базами данных бывает над чем подумать.

По идее (и ноги из кешей всяких тут могут расти) решение такой задачи в некоторых случаях может улучшить быстродействие железа-сократить время длительных вычислений и прочими способами сэкономить миллионы.

(Ответить) (Уровень выше)


(Читать комментарии) -