Алгоритмы-числа

  • 11
  • Недоступна
Ура, задачи на алгоритмы! Их очень любят резиденты планеты Линейный Хаос. И вы должны любить, по крайней мере, до того момента, как пройдёте пару-тройку собеседований. Итак, у вас есть число из некоторого количества чисел. Нужно найти все числа меньше N, которые удовлетворили бы некоторому критерию (о нём узнаете в самой задаче!).
Вы не можете решать эту задачу, т.к. не залогинены.
Комментарии (199)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий вы должны авторизоваться
Voffka22 уровень, Киев
5 марта, 08:57
Увы, но я ничего тут не понял... И желание продолжать отбилось совсем
Дворник22 уровень
3 марта, 13:00
Осилил со второй попытки. Не компилировалось первый раз, из-за тестового класса, а попытка защитана.
Arkadii24 уровень
2 марта, 20:26
Решил с десятой попытки, возникли проблемы с валидацией из-за статической переменной, писало что есть лишние или недостающие элементы в возвращаемом массиве.
Роман22 уровень
23 февраля, 07:58
Этот комментарий для тех кто хочет решить задачу при помощи стороннего класса ArmstrongNumbersMultiSetLongOpt и для тех кто не понял условие задачи ;) 1) В методах не должно быть выбросов исключения, удаляем их. 2) После передачи максимального значения в метод generate(), заполнит список ArrayList значениями чисел Armstrongа, а вот после этого читаем условие еще раз которое я совсем не понял: "Реализовать логику метода getNumbers, который должен среди натуральных чисел меньше N (long)" находить все числа.. В общем тут хотят: что бы в массиве result не было чисел больше либо равных числу N (Long.MAX_VALUE) 3) Удаляем лишние числа из списка и переносим уже готовые значения в массив result
Антон26 уровень, Москва
24 февраля, 09:47
Спасибо за комментарий! Скинь пожалуйста в лс, как ты реализовал метод getNumbers.
S3R3N1TY28 уровень, Санкт-Петербург
19 февраля, 22:26
Ребят подскажите, где на практике в реальной жизни применяется число Армстронга или его алгоритм? Чето не нашел инфы
Ваня Жуков40 уровень, Санкт-Петербург
25 февраля, 16:50
Там же, где и числа-вампиры
Khabibullaev22 уровень
15 февраля, 15:53
Урраа! Я тоже решил эту задачу. Не смотрел ни в какие подсказки кроме Алгоритма решения. Возился несколько дней(с учетом того что работаю). Сделал все по честному. Без распараллеливания. У меня, правда, для максимального значения программа работала 11,5 сек., но валидатор принял. Были еще идеи по оптимизации, но времени терять не хочется.
Vladislav Moiseev31 уровень, Казань
15 февраля, 01:38
1,4 секунды для Long.MAX_VALUE в лучшем случае, кто меньше?) Убил весь вечер на эту задачу)
Дмитрий К.31 уровень, Иркутск
15 февраля, 08:00
без Thread-ов ?
Vladislav Moiseev31 уровень, Казань
15 февраля, 12:02
У меня "c". Но там трэды не особо решают. Без тредов с правильным алгоритмом для Long.MAX_VALUE считает примерно 4-6 секунд. А треды это уже извращение в этой задаче :D
Nik24 уровень
23 февраля, 01:23
а можешь дать ссылку на решение? Интересно как ты так ловко придумал) У меня 40 секунд лучший результат, ничего лучше пока не придумал
Vladislav Moiseev31 уровень, Казань
24 февраля, 13:48
github Держи) под валидатор не забудь только подогнать, я немного изменил код после валидации)
Nik24 уровень
25 февраля, 08:27
Спасибо) Мощно. Разбираться буду долго))
Ваня Жуков40 уровень, Санкт-Петербург
25 февраля, 16:52
600 ms, что у тебя по железу?
Vladislav Moiseev31 уровень, Казань
25 февраля, 17:18
норм так) i5-7600k
Ваня Жуков40 уровень, Санкт-Петербург
25 февраля, 18:00
У меня попроще :D
Ваня Жуков40 уровень, Санкт-Петербург
25 февраля, 20:02
Из-за неправильного вычисления степеней у тебя результат неверный. Но в общем и целом норм вышло.
Vladislav Moiseev31 уровень, Казань
26 февраля, 12:57
не совсем понял насчет результата. Сейчас проверил, вроде бы всё правильно считает, по крайней мере до Integer.MAX_VALUE (согласно этому сайту ссылка). Не имею возможности проверить на значения больше максимального int'a т.к. уже сдал это задание давно, но при этом валидатор примал эти числа. Скажи хотя бы какие значения неверны, пожалуйста, я проверю ещё раз)
Ваня Жуков40 уровень, Санкт-Петербург
26 февраля, 16:55
Валик смотрит только на числа до Integer.MAX_VALUE, у меня тоже не до конца правильное решение принял. Все числа:
new long[]{
                1, 2, 3, 4, 5, 6, 7, 8, 9, 153, 370, 371, 407, 1634, 8208, 9474, 54748, 92727, 93084,
                548834, 1741725, 4210818, 9800817, 9926315, 24678050, 24678051, 88593477, 146511208,
                472335975, 534494836, 912985153, 4679307774L, 32164049650L, 32164049651L, 40028394225L,
                42678290603L, 44708635679L, 49388550606L, 82693916578L, 94204591914L, 28116440335967L,
                4338281769391370L, 4338281769391371L, 21897142587612075L, 35641594208964132L, 35875699062250035L,
                1517841543307505039L, 3289582984443187032L, 4498128791164624869L, 4929273885928088826L
        }
Последние 7 у тебя выпали. вот
Vladislav Moiseev31 уровень, Казань
27 февраля, 13:42
Спасибо, большое. Исправил решение) не ожидал такого коварства от Math.pow :D
Павел24 уровень, Москва
14 февраля, 09:27
Задачка учит всему чему только можно. 1. Писать быдло код (это первое что мы делаем когда пишем в тупую свою реализацию)(но валидацию не проходим) (слишком долго) 2. Разрабатывать собственные алгоритмы, мышление (тут уже мозги включаешь и думаешь какой бы алгоритм применить) 3. Гуглить (ищем готовые алгоритмы, способы, без реального кода ибо поиск реального кода бьет по самолюбию) 4. Бинго, все работает, НО! Остался последний рубеж, Валидатор, который просто тебя добивает сообщениями рода (Проверь, что в методе getNumbers не возникает исключения, при любых входных данных.) По истечении времени понимаешь что слишком много времени тратишь на эту задачу и уже начинаешь искать готовый код, разбираешь его, льешь бальзам на самолюбие мол ты бы сам до этого дошел, ведь все понятно и копипастишь. Вопрос: А своевременно ли даются такие задачи? Есть ощущение что скил пока не готов, но при решении теряется много времени и пройденная теория начинает забываться....
Dmytro Zhelezniak24 уровень, Харьков
20 февраля, 09:33
До твоего комментария было стыдно признаться, что мне после десятка отказов валлика, надоедает бороться и я просто делаю копипаст. Спасибо тебе, добрый человек. Поднимать самолюбие буду как-нибудь потом:)
Виталий22 уровень, Санкт-Петербург
3 марта, 06:08
Ахахах)))) Коммент повеселил))) Тоже себя узнал))) На каждую сложную задачу надо вешать такой список с пунктами и отмечать стрелочкой "Вы сейчас ЗДЕСЬ!"
Андрей20 уровень, Москва
суббота, 23:56
Да, не своевременно. Да и бессмысленно.
Даниил24 уровень
6 февраля, 23:23
Да я ещё даже не начал решать, и после 5 минут тупки так и не понял что просят в задании... Зашёл сюда, ещё 6 минут пытался понять избегая спойлеров. Потом снова в задание и вроде понял, но не до конца. Скажите, что это за число N? И нужно, грубо говоря, записать в массив все удовлетворяющие условие числа от 0 до какого-то N? Опять же, включительно или нет? Или вообще, что от меня хотят?
Андрей20 уровень, Москва
позавчера, 10:56
Да. N задаёт валидатор и ждёт на выходе массив подходящих чисел, от 0 до N исключая N!.
Erik Ghukasyan28 уровень
4 февраля, 00:23
Решил за 20 минут, но валидатор думал больше 10 секунд, так что надо еще поразмыслить.
IceBerg30 уровень, Днепр
7 февраля, 00:01
Там на проверке N = Long.MAX_VALUE - можете потестить, но пока программа будет работать, советую чаек заварить, или в гости сходить, может даже успеете в отпуск съездить, пока она завершиться)))
Erik Ghukasyan28 уровень
7 февраля, 09:08
Да )) знаю, 6ти значение число берет 11 секунд. Оставил решение на потом. Сечас бинарное дерево сажаем))