Здравствуйте, Vintik_69, Вы писали:
А>>Честно говоря, задач там было много и я очень быстро написал, наверное, полный бред, что можно было бы массив разделить на части, отдать части на обработку потокам, которые там уже бы бинарным поиском нашли число. А как правильно? V_>Сумму посчитать.
Бессполезно, в условии ничего не было сказано про возможность заполнения массива самому, изходя из условия — массив уже был заполнен.
[In theory there is no difference between theory and practice. In
practice there is.]
[Даю очевидные ответы на риторические вопросы]
Re[3]: Задача с собеседования: найти удаленноё число
Здравствуйте, Vain, Вы писали:
V_>>Сумму посчитать. V>Бессполезно, в условии ничего не было сказано про возможность заполнения массива самому, изходя из условия — массив уже был заполнен.
А в чём разница, если мы знаем чем он был заполнен?
Re[4]: Задача с собеседования: найти удаленноё число
Здравствуйте, 4UBAKA, Вы писали:
V_>>>Сумму посчитать. V>>Бессполезно, в условии ничего не было сказано про возможность заполнения массива самому, изходя из условия — массив уже был заполнен. UBA>А в чём разница, если мы знаем чем он был заполнен?
Тем что для суммирования имеет смысл только если сам заполняешь такой отсортированный массив. Деление попалам будет в среднем здесь быстрее.
[In theory there is no difference between theory and practice. In
practice there is.]
[Даю очевидные ответы на риторические вопросы]
Re[5]: Задача с собеседования: найти удаленноё число
Здравствуйте, Vain, Вы писали:
V>>>Бессполезно, в условии ничего не было сказано про возможность заполнения массива самому, изходя из условия — массив уже был заполнен. UBA>>А в чём разница, если мы знаем чем он был заполнен? V>Тем что для суммирования имеет смысл только если сам заполняешь такой отсортированный массив. Деление попалам будет в среднем здесь быстрее.
Так быстрее или суммирование бесполезно?
Re[6]: Задача с собеседования: найти удаленноё число
Здравствуйте, dilmah, Вы писали:
V>>Тем что для суммирования имеет смысл только если сам заполняешь такой отсортированный массив. Деление попалам будет в среднем здесь быстрее.
D>а где написано что они отсортированы?
Опять пропускаем в условии слово "соответственно"?
А>Дана последовательность чисел от 1 до 10000, которые хранятся в массиве с индексами от 0 до 9999 соответственно. Из массива удаляется одно произвольное число. А>Как вы найдете это число? Опишите свои дейсвтия.
Я думаю, бинарный поиск.
Если из массива удалили элемент N, значит, начиная с индекса N все элементы стали больше на единицу.
Берем средний элемент и смотрим: если индекс нормальный, продолжаем поиск в правом поддиапазоне, если больше на единицу, чем должен быть, продолжаем поиск в левом поддиапазоне.
Re[6]: Задача с собеседования: найти удаленноё число
Здравствуйте, dilmah, Вы писали:
V>>Тем что для суммирования имеет смысл только если сам заполняешь такой отсортированный массив. Деление попалам будет в среднем здесь быстрее. D>а где написано что они отсортированы?
В условии
[In theory there is no difference between theory and practice. In
practice there is.]
[Даю очевидные ответы на риторические вопросы]
Re[6]: Задача с собеседования: найти удаленноё число
Здравствуйте, 4UBAKA, Вы писали:
V>>>>Бессполезно, в условии ничего не было сказано про возможность заполнения массива самому, изходя из условия — массив уже был заполнен. UBA>>>А в чём разница, если мы знаем чем он был заполнен? V>>Тем что для суммирования имеет смысл только если сам заполняешь такой отсортированный массив. Деление попалам будет в среднем здесь быстрее. UBA>Так быстрее или суммирование бесполезно?
Под бесполезностью я и имел ввиду что она будет сведена на нет.
[In theory there is no difference between theory and practice. In
practice there is.]
[Даю очевидные ответы на риторические вопросы]
Re[7]: Задача с собеседования: найти удаленноё число
Здравствуйте, Vain, Вы писали:
V>>>Тем что для суммирования имеет смысл только если сам заполняешь такой отсортированный массив. Деление попалам будет в среднем здесь быстрее. UBA>>Так быстрее или суммирование бесполезно? V>Под бесполезностью я и имел ввиду что она будет сведена на нет.
Теперь совсем не понял.
Re[3]: Задача с собеседования: найти удаленноё число
А>>XOR всех елементов масива в результате останется искомое число
D>не совсем так. это верно если xor всех чисел от 1 до N это ноль. D>Но xor всех чисел от 1 до N равен: D>N, если N%4 == 0 D>1, если N%4 == 1 D>N+1, если N%4 == 2 D>0, если N%4 == 3
Это можно исправить добавлением или проверить только часть массива. А решение красивое.
Re[4]: Задача с собеседования: найти удаленноё число
D>>N, если N%4 == 0 D>>1, если N%4 == 1 D>>N+1, если N%4 == 2 D>>0, если N%4 == 3 B>Это можно исправить добавлением или проверить только часть массива. А решение красивое.
это нужно исправить просто учтя то что ксор всех чисел не ноль, а указанное число -- то есть сделать дополнительный ксор с указанным числом.
Решение полностью тождественно решению с суммой, только вместо суммы взят ксор (который является разновидностью суммы).
точно также своп двух чисел без временной переменной можно делать через сумму, а можно через ксор.
Re[8]: Задача с собеседования: найти удаленноё число
Здравствуйте, 4UBAKA, Вы писали:
V>>>>Тем что для суммирования имеет смысл только если сам заполняешь такой отсортированный массив. Деление попалам будет в среднем здесь быстрее. UBA>>>Так быстрее или суммирование бесполезно? V>>Под бесполезностью я и имел ввиду что она будет сведена на нет. UBA>Теперь совсем не понял.
Что именно?
[In theory there is no difference between theory and practice. In
practice there is.]
[Даю очевидные ответы на риторические вопросы]
Re[2]: Задача с собеседования: найти удаленноё число
Здравствуйте, Аноним, Вы писали:
А>>Дана последовательность чисел от 1 до 10000, которые хранятся в массиве с индексами от 0 до 9999 соответственно. Из массива удаляется одно произвольное число. А>>Как вы найдете это число? Опишите свои дейсвтия. А>>Честно говоря, задач там было много и я очень быстро написал, наверное, полный бред, что можно было бы массив разделить на части, отдать части на обработку потокам, которые там уже бы бинарным поиском нашли число. А как правильно? А>Используй указатели
..люк
[In theory there is no difference between theory and practice. In
practice there is.]
[Даю очевидные ответы на риторические вопросы]
Здравствуйте, 4UBAKA, Вы писали:
V>>>>Под бесполезностью я и имел ввиду что она будет сведена на нет. UBA>>>Теперь совсем не понял. V>>Что именно? UBA>Что такое "сведена на нет", неправильный результат будет? UBA>Согласен, для отсортированного массива глупое решение, но работает.
Микроскопом гвозди забивать глупое решение, но работает.
[In theory there is no difference between theory and practice. In
practice there is.]
[Даю очевидные ответы на риторические вопросы]