IPB
ЛогинПароль:

> Закономерность в массиве
сообщение
Сообщение #1


Я.
****

Группа: Пользователи
Сообщений: 809
Пол: Мужской
Реальное имя: Саша

Репутация: -  11  +


Нужно в массиве 2n элементов поменять последовательность элементов на
а1аn+1a2an+2...ana2n
Препод говорил, что с помощью одной переменной этого сделать нельзя. (доп массив из n элементов - не интересно).
Вот что получилось (один запоминается, а на его место ставится, но уже на свое место другой):
Curr := 2;
buf := a[Curr];
for i := 1 to 2*n-3 do
begin
if Curr mod 2 = 0 then
Next := n+Curr div 2
else
Next := (Curr+1) div 2;
a[Curr] := a[Next];
Curr := Next;
end;
a[Curr] := buf;

но работает только для некоторых, и процент работающих с ростом n уменьшается.
Для неработающих: должен где-то быть вызов буфера, но этого я не делал, т.к. для этого, по моей фантазии надо как минимум еще один булевый 2n-2 массив, что еще хуже дополнительного массива.
Неужели он был прав?

Сообщение отредактировано: sheka -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #2


Гость






Лень перелогиниваться. До картинок дело не дошло пока.

> ты хочешь сказать, что для всех натуральных n нужно писать свой специальный алгоритм?..

Можно, но не нужно. Надо найти закономерность, чтобы общий алгоритм выделить.

> то ему, TarasBer'у, будет непросто - ой непросто, TarasBer! - доказать, что соблюдена асимптотика O(n)..

Суммарная длина циклов равна n.
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Уникум
*******

Группа: Пользователи
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


Цитата(Гость @ 30.10.2010 15:57) *
Можно, но не нужно. Надо найти закономерность, чтобы общий алгоритм выделить.
А зачем тогда писать слова про "заданное наперед n"? Чем оно тогда отличается от вульгарного "просто" n? smile.gif

Цитата
Суммарная длина циклов равна n.
Эти слова будут иметь вес только после либо: а) определения общего алгоритма, либо б) рассуждений, позволяющих это утверждать без общего алгоритма.. блин, писал эту фразу минуты полторы! и все равно какую-то чушь написал.. Короче - давай уже, показывай свой гениальный алгоритм, Ферма ты наш дорогой и любимый.. ))

Если не хочешь "перелогиниваться" - хоть напиши ник.. В форме есть специальное место для этого, ревизор ты наш инкогнито )).


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме
sheka   Закономерность в массиве   30.10.2010 0:59
Гость   Парными перестановками можно переставить массив не…   30.10.2010 1:57
Гость   Или требуется именно за O(n) сделать? Хм, интересн…   30.10.2010 1:58
Lapp   Неужели он был прав?Грубо говоря, правило такое: л…   30.10.2010 9:58
Гость   TarasBer прикинул на бумаге, и TarasBer решил, что…   30.10.2010 16:43
Lapp   если задать n наперёд, то написать алгоритм, дающи…   30.10.2010 17:58
Гость   Лень перелогиниваться. До картинок дело не дошло п…   30.10.2010 18:57
Lapp   Можно, но не нужно. Надо найти закономерность, что…   30.10.2010 19:17
TarasBer   1. Берём x 2. Берём y = 2x mod (2n-1) 3. Меняем ме…   30.10.2010 19:30
Lapp   Главное в общем виде понять, как выглядит каждая т…   31.10.2010 8:54
TarasBer   Короче, алгебраисты нужны При каких эн верно min{k…   31.10.2010 14:58
sheka   Я это подразумевал :) Товарищ преподаватель чуть-ч…   31.10.2010 22:55
TarasBer   Ща попытаюсь разобраться, что тут написано. У тебя…   31.10.2010 23:53
Unconnected   Поясните плз, смысл в том, чтобы an элементы менят…   1.11.2010 1:39
Lapp   Шек, я совершенно согласен с ТарасБером: желание в…   1.11.2010 10:44
sheka   Пожалуй, прокомментирую код - думаю, отвечу на все…   1.11.2010 23:56


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 20.05.2024 12:56
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name