powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Подскажите алогоритм, литературу по решению данной задачи
25 сообщений из 64, страница 2 из 3
Подскажите алогоритм, литературу по решению данной задачи
    #37411390
Abstraction
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Panshin,

Кто-то сказал, что число 36 253 в этой последовательности есть?
...
Рейтинг: 0 / 0
Подскажите алогоритм, литературу по решению данной задачи
    #37411398
Фотография DENIS_CHEL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PanshinЭто очень просто без всякого алгоритма, если подумать. Если число одно и повторяется только один раз, то сложи числа от 1 до миллиона, потом сложи данную последовательность чисел и от второго отними первое. Получишь число, которое повторилось.

Если в исходном массиве числа 1,2,2 то какой результат вы получите?
...
Рейтинг: 0 / 0
Подскажите алогоритм, литературу по решению данной задачи
    #37411409
Abstraction
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Требуется указать число, либо его индекс в некотором массиве. Возможных индексов - n, чисел - 1000000.
Если отсортировать массив (O(n*ln(n))), то проверка каждого индекса на правильность - O(1).

Каким свойством вместо монотонности может обладать массив, чтобы наличие дубликатов элемента по заданному индексу проверялось за O(1)?
...
Рейтинг: 0 / 0
Подскажите алогоритм, литературу по решению данной задачи
    #37411435
Panshin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DENIS_CHEL,
Понятное дело я указал на частный случай. Можно обобщить.

Сложим все числа последовательности
1,2,2 = 5
Следовательно максимальное число в последовательности будет не более 5.
Далее найдем максимальное число в последовательности и вычтем его из суммы, при этом удалим его из последовательности.
Выполнив таким образом m-1 шагов, где m - количество элементов в последовательности мы найдем парное число так как оно будет дважды появляться в нахождении максимума урезаемой последовательности.
...
Рейтинг: 0 / 0
Подскажите алогоритм, литературу по решению данной задачи
    #37411445
Фотография Яростный Меч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Panshin,

получится О(N 2 )
...
Рейтинг: 0 / 0
Подскажите алогоритм, литературу по решению данной задачи
    #37411450
Фотография DENIS_CHEL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Panshin

На каждой итерации мы осуществляем поиск максимума...

Будет ли в общем случае выигрыш по сравнению с сортировкой?:)
...
Рейтинг: 0 / 0
Подскажите алогоритм, литературу по решению данной задачи
    #37411453
Фотография eNose
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[не активирован]
[не одобрен]
а с адресацией ничего нельзя замутить?
ну там проверять память по адресу == числу в массиве и если не какое-то значение, значит менять.
если значение уже есть, то значит нашли.


хотя это ничем от массива не отличается...
...
Рейтинг: 0 / 0
Подскажите алогоритм, литературу по решению данной задачи
    #37411460
Nitica
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
romapost,

#define ARRAY_DIMENSION 1000000

//исходный массив с числами
int [ARRAY_DIMENSION] iArr;

bool *boolArr = new bool[ARRAY_DIMENSION]; // по умолчанию заполнено нулями, то есть false

for (int ind = 0; ind < ARRAY_DIMENSION; i++)
{
if (boolArr [iArr[ind] - 1] )
{
//мы нашли это число
return iArr[ind];
}
else
{
boolArr [iArr[ind] - 1] = true;
}
}
...
Рейтинг: 0 / 0
Подскажите алогоритм, литературу по решению данной задачи
    #37411494
Abstraction
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nitica,

Бедный процессор.
И вообще, если массив "по умолчанию" заполнен нулями, то, позвольте спросить, кто его заполнил?
...
Рейтинг: 0 / 0
Подскажите алогоритм, литературу по решению данной задачи
    #37411496
Фотография DENIS_CHEL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Исходный массив с числами произвольной длины... Но не больше 1 000 000.
...
Рейтинг: 0 / 0
Подскажите алогоритм, литературу по решению данной задачи
    #37411508
JoFan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Пока приходит на ум какая нибудь быстрая сортировка, где в операции сравнения и будем проверять на равенство
...
Рейтинг: 0 / 0
Подскажите алогоритм, литературу по решению данной задачи
    #37411518
Abstraction
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DENIS_CHELИсходный массив с числами произвольной длины... Но не больше 1 000 000.
1 000 001 ;)
...
Рейтинг: 0 / 0
Подскажите алогоритм, литературу по решению данной задачи
    #37411536
Abstraction
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JoFanПока приходит на ум какая нибудь быстрая сортировка, где в операции сравнения и будем проверять на равенство
Быстрые сортировки потому и быстрые, что сравнивают друг с другом не все n(n-1)/2 пар.
...
Рейтинг: 0 / 0
Подскажите алогоритм, литературу по решению данной задачи
    #37411546
Nitica
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Abstraction,
Бедный процессор.

то есть сортировка, по Вашему мнению, менее затратна, чем просто один пробег по массиву. Указатели - самое менее затратное средство в вычислениях как ни крути :)

И вообще, если массив "по умолчанию" заполнен нулями, то, позвольте спросить, кто его заполнил?

это псевдо-код :) в Visual C, например, точно будут нулики
...
Рейтинг: 0 / 0
Подскажите алогоритм, литературу по решению данной задачи
    #37411600
Abstraction
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NiticaAbstraction,
Бедный процессор.

то есть сортировка, по Вашему мнению, менее затратна, чем просто один пробег по массиву. Указатели - самое менее затратное средство в вычислениях как ни крути :)

И вообще, если массив "по умолчанию" заполнен нулями, то, позвольте спросить, кто его заполнил?

это псевдо-код :) в Visual C, например, точно будут нулики
Массив в 500 элементов, а мы отжираем 2 Mb. Спорный выигрыш.

Visual C++ 6.0, насколько помню, выделяемую такой конструкцией память не обнуляет. Для примера. В любом случае, если мы не надеемся на то, что у системы завалялись обнулённые страницы, это придётся делать нашему процессу, увы.


А если танцевать от хэш-таблицы? Функция h(x)=x%n, получаем n классов (некоторые из которых, возможно, пустые), оба дубликата в одном классе; время создания - O(n), среднее время проверки одного класса - O(1). Правда, при этом совершенно не используем ограниченность спектра значений.
...
Рейтинг: 0 / 0
Подскажите алогоритм, литературу по решению данной задачи
    #37411611
Фотография eNose
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[не активирован]
[не одобрен]
AbstractionМассив в 500 элементов, а мы отжираем 2 Mb. Спорный выигрыш. при иницилизации массива ничего физически не выделяется.
а вот когда начинаем обнулять, да...
...
Рейтинг: 0 / 0
Подскажите алогоритм, литературу по решению данной задачи
    #37411637
Nitica
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Abstraction,

Массив в 500 элементов, а мы отжираем 2 Mb. Спорный выигрыш.

в формулировке задачи вроде как ясно сказано, что ограничений по памяти нет.
...
Рейтинг: 0 / 0
Подскажите алогоритм, литературу по решению данной задачи
    #37411639
Abstraction
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
eNoseпри иницилизации массива ничего физически не выделяется.
Я что-то пропустил?
После инициализации мы имеем адрес начала области памяти, к которой можно обращаться. Откуда она берётся, в таком случае?
...
Рейтинг: 0 / 0
Подскажите алогоритм, литературу по решению данной задачи
    #37411647
Abstraction
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NiticaAbstraction,

Массив в 500 элементов, а мы отжираем 2 Mb. Спорный выигрыш.

в формулировке задачи вроде как ясно сказано, что ограничений по памяти нет.
Ограничений нет. Но эти 500 1250 страниц кому-то надо выделить, а потом эти полмиллиона миллион с хвостиком машинных слов кому-то обнулить.
...
Рейтинг: 0 / 0
Подскажите алогоритм, литературу по решению данной задачи
    #37411648
Фотография eNose
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[не активирован]
[не одобрен]
AbstractioneNoseпри иницилизации массива ничего физически не выделяется.
Я что-то пропустил?
После инициализации мы имеем адрес начала области памяти, к которой можно обращаться. Откуда она берётся, в таком случае? вот когда начнешь обращаться, тогда и выделяться будет.
...
Рейтинг: 0 / 0
Подскажите алогоритм, литературу по решению данной задачи
    #37411653
Фотография eNose
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[не активирован]
[не одобрен]
Abstraction,

можешь проверить.
выдели памяти под массив больше чем доступно. выделится.
начни заполнять - получишь ошибку нехватки памяти.
...
Рейтинг: 0 / 0
Подскажите алогоритм, литературу по решению данной задачи
    #37411676
Nitica
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Abstraction,

Ограничений нет. Но эти 500 1250 страниц кому-то надо выделить, а потом эти полмиллиона миллион с хвостиком машинных слов кому-то обнулить.

В Винде есть ZeroMemory - она прекрасно справится :)
...
Рейтинг: 0 / 0
Подскажите алогоритм, литературу по решению данной задачи
    #37411789
Abstraction
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
eNose,

Проверил на C#, проверил на C++.
Я прав ;)
...
Рейтинг: 0 / 0
Подскажите алогоритм, литературу по решению данной задачи
    #37411803
Фотография eNose
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[не активирован]
[не одобрен]
AbstractioneNose,

Проверил на C#, проверил на C++.
Я прав ;) проверь на делфи ;)
...
Рейтинг: 0 / 0
Подскажите алогоритм, литературу по решению данной задачи
    #37411814
Abstraction
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
eNose,

Где ж я вам его возьму?
Но вообще, идея выделять память только при обращении к ней подразумевает, что мы обращаемся не напрямую к памяти, а вызываем некоторый метод, который вначале проверяет, выделили ли нам эту память. Что выливается в потерю производительности.
...
Рейтинг: 0 / 0
25 сообщений из 64, страница 2 из 3
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Подскажите алогоритм, литературу по решению данной задачи
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]