Re[5]: Задачка
От: Erop Россия  
Дата: 16.06.06 09:00
Оценка:
Здравствуйте, Кодт, Вы писали:

К>>>Пусть мы рассмотрели первые K (K < N/2) элементов, и они все разные. Кто лидер? Придётся запоминать их всех.


Это должно обозначать одно из двух.
Или массив не обладает заявленным свойством, или лидер оставшейся части массива таки совпадает с лидером всего массива.
В первом случае никто ничего не обещал, во втором не важно кто лидер на этом этапе. Всё равно надо начинать искать лидера с нуля, но уже только в оставшейся части массива.
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[6]: Задачка
От: Hasmik Армения  
Дата: 16.06.06 09:12
Оценка:
Здравствуйте, Erop, Вы писали:

E>Здравствуйте, Кодт, Вы писали:


К>>>>Пусть мы рассмотрели первые K (K < N/2) элементов, и они все разные. Кто лидер? Придётся запоминать их всех.


E>Это должно обозначать одно из двух.

E>Или массив не обладает заявленным свойством, или лидер оставшейся части массива таки совпадает с лидером всего массива.
E>В первом случае никто ничего не обещал, во втором не важно кто лидер на этом этапе. Всё равно надо начинать искать лидера с нуля, но уже только в оставшейся части массива.
Совершенно верно. Это было в моем решении.
Re[3]: Задачка
От: Dmi_3 Россия  
Дата: 17.06.06 08:40
Оценка:
Здравствуйте, Erop, Вы писали:

E>Здравствуйте, lxa, Вы писали:


lxa>>Для целочисленного массива, допустим это n (32, 64) — битные integer. Пробегаемся по массиву и считаем, сколько раз каждый бит (1) попадается. Потом составляем по биту искомое число — если вероятность 1 на этой позиции больше 0.5, ставим 1, иначе 0.


E>Чтрого говоря, так можно обойтись с любым бинарным представлением


А если у некого объекта несколько разных бинарных представлений?
Re[4]: Задачка
От: Erop Россия  
Дата: 17.06.06 15:18
Оценка: +1
Здравствуйте, Dmi_3, Вы писали:

D_>А если у некого объекта несколько разных бинарных представлений?

Понятно, с чем не согласен! Спасибо!

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

Правда всё равно могут быть проблемы, но с double вроде как должно получиться
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[6]: Задачка
От: McSeem2 США http://www.antigrain.com
Дата: 21.06.06 00:19
Оценка: :)
Здравствуйте, _DAle_, Вы писали:

_DA>Примерное доказательство:


[Много букв... не осилил]

По-моему, надо строить доказательство от более высокоуровневой логики. Я в доказательствах не силен, но вот примерная схема. Если количество искомых элементов строго больше половины, значит как минимум два таких элемента следуют подряд (если данное утверждение и нуждается в доказательстве, то оно должно быть простым). Значит, всегда имеется непрерывная последовательность как мининимум из двух искомых элементов. Далее надо доказать для общего случая — что непрерывная последовательность из искомых элементов обязана быть самой длинной из всех прочих. Ну а найти эту последовательность — задача тривиальная. Собственно, приведенный пять лет назад алгоритм именно это и делает.
McSeem
Я жертва цепи несчастных случайностей. Как и все мы.
Re[7]: Задачка
От: Кодт Россия  
Дата: 21.06.06 09:30
Оценка:
Здравствуйте, McSeem2, Вы писали:

MS> Далее надо доказать для общего случая — что непрерывная последовательность из искомых элементов обязана быть самой длинной из всех прочих.


Контрпример: AA B AA B AA B CCC
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Перекуём баги на фичи!
Re[7]: Задачка
От: serge_levin Россия  
Дата: 21.06.06 09:33
Оценка:
Здравствуйте, McSeem2, Вы писали:

MS>Здравствуйте, _DAle_, Вы писали:


_DA>>Примерное доказательство:


MS>Далее надо доказать для общего случая — что непрерывная последовательность из искомых элементов обязана быть самой длинной из всех прочих.


Контрпример — 1, 1, 0, 0, 0, 1, 1

По предложенному тобой алгоритму правильный ответ — 0. А на самом деле 1.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[7]: Задачка
От: vadimcher  
Дата: 21.06.06 11:48
Оценка:
Здравствуйте, McSeem2, Вы писали:

MS>Здравствуйте, _DAle_, Вы писали:


_DA>>Примерное доказательство:


MS>[Много букв... не осилил]


MS>По-моему, надо строить доказательство от более высокоуровневой логики. Я в доказательствах не силен, но вот примерная схема. Если количество искомых элементов строго больше половины, значит как минимум два таких элемента следуют подряд (если данное утверждение и нуждается в доказательстве, то оно должно быть простым). Значит, всегда имеется непрерывная последовательность как мининимум из двух искомых элементов. Далее надо доказать для общего случая — что непрерывная последовательность из искомых элементов обязана быть самой длинной из всех прочих. Ну а найти эту последовательность — задача тривиальная. Собственно, приведенный пять лет назад алгоритм именно это и делает.


Жирным выделены неверные утверждения. Контрпример для обоих: 101.

А вот зайца кому, зайца-выбегайца?!
Re[8]: Задачка
От: Erop Россия  
Дата: 21.06.06 16:21
Оценка:
Здравствуйте, serge_levin, Вы писали:

_>Контрпример — 1, 1, 0, 0, 0, 1, 1

_>По предложенному тобой алгоритму правильный ответ — 0. А на самом деле 1.

Нет, по предложенному алгоритму как раз ответ 1.
Простоон ищет вовсе и не самую длинную подпоследовательность одинаковых элементов
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re: Задачка
От: Аноним  
Дата: 28.06.06 21:09
Оценка:
Здравствуйте, fearless, Вы писали:

F>Есть массив длинны N. Известно, что больше половины элементов

F>этого массива равны друг другу. Требуется за один (!) проход по
F>массиву выяснить чему же они равны.

Если за один просмотр предполакает конечный автомат, то задача не решается по леме о разрастании.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.