|
Задачка на собеседовании. как?)
|
|||
---|---|---|---|
#18+
Поставлена такая задача. Есть метод Collection<String> getStringsForHashCode(int hashCode, int length) На входе hashCode и кол-во символов в получаемой строке. Метод должен найти все комбинации char -ов у которых сумма hashCode равна параметру метода и кол-во этих чаров должно быть равно параметру length у метода. Пример: getStringsForHashCode(18,3) = {“dad”, “bbc”, “maa”, …. } Подскажите как такое сделать? я вообще в тупике. Небольшие условия: - hashCode считается так: hashCode(s) = sum (s[i] * (i+1)) - дан метод Int getInt(char c); - дан метод Char getChar(int c); - номер буквы англ. алфавита начинается с 1 и до конца по возрастанию на 1. Ну то бишь у чара a значение int = 1; ... |
|||
:
Нравится:
Не нравится:
|
|||
25.09.2018, 21:25 |
|
Задачка на собеседовании. как?)
|
|||
---|---|---|---|
#18+
если что не понятно по задаче спрашивайте) Я честно хз как лучше решить. надо случайным образом брать чар и пытаться склеивать с другими. Или же идти от обратного: найти сумму цифр и потом по полученным цифрам найти char. Буду очень благодарен помощи) туда я не прошел ибо не справился) ... |
|||
:
Нравится:
Не нравится:
|
|||
25.09.2018, 21:31 |
|
Задачка на собеседовании. как?)
|
|||
---|---|---|---|
#18+
если ограничения по времени работы алгоритма нет :) , то приходит в голову вариант с перебором: у нас есть массив букв [1, 2, 3, .... 26] нужно сгенерировать все комбинации из N чисел с повторением, где N = length и для каждой комбинации проверить хэш. по идее можно оптимизировать скорость ограничив кол-во комбинаций, т.к. с учетом величины hash некоторые числа становятся бессмысленны из-за большой величины, например если у нас hash = 10, то первое число не может быть больше 10, второе больше (10 - 1) / 2 и т.д. Т.е. эффективней сразу считать сумму в процессе генерации комбинаций и обрывать если "перебор" ... |
|||
:
Нравится:
Не нравится:
|
|||
25.09.2018, 22:19 |
|
Задачка на собеседовании. как?)
|
|||
---|---|---|---|
#18+
да.. просто представь что это 26-тиричная система счисления (Если речь о только строчных буквах) и всё. раз по три знака в "числе" (второй параметр) ну и считай по 3 знака. если прям чары чары то знач 255-тиричная система счисления. типа ааа ааб аав ааг аад аае ааж ааз ... бвг ой перебор -- ну возвращаем. комплексити получается Н. пусть радуются. прям битовая маска. да. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.09.2018, 23:44 |
|
Задачка на собеседовании. как?)
|
|||
---|---|---|---|
#18+
Tsyklop, т.е тебе предлагают по хэшкоду подобрать пароль нужной длины, я верно понял ТЗ ? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.09.2018, 01:01 |
|
Задачка на собеседовании. как?)
|
|||
---|---|---|---|
#18+
Tsyklop, если контракт на вычисление хеша известен, то по факту предлагается решить диофантово уравнение от N неизвестных - гуглите. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.09.2018, 05:23 |
|
Задачка на собеседовании. как?)
|
|||
---|---|---|---|
#18+
TsyklopПоставлена такая задача. Есть метод Collection<String> getStringsForHashCode(int hashCode, int length) На входе hashCode и кол-во символов в получаемой строке. Метод должен найти все комбинации char -ов у которых сумма hashCode равна параметру метода и кол-во этих чаров должно быть равно параметру length у метода. Пример: getStringsForHashCode(18,3) = {“dad”, “bbc”, “maa”, …. } Подскажите как такое сделать? я вообще в тупике. Небольшие условия: - hashCode считается так: hashCode(s) = sum (s[i] * (i+1)) - дан метод Int getInt(char c); - дан метод Char getChar(int c); - номер буквы англ. алфавита начинается с 1 и до конца по возрастанию на 1. Ну то бишь у чара a значение int = 1; Можно сгенерировать комбинации строк и вычислить хэшкод для них. Пример вызова генерации тут: 21626774 С уважением, Валентин ... |
|||
:
Нравится:
Не нравится:
|
|||
26.09.2018, 08:28 |
|
Задачка на собеседовании. как?)
|
|||
---|---|---|---|
#18+
SiemarglTsyklop, т.е тебе предлагают по хэшкоду подобрать пароль нужной длины, я верно понял ТЗ ? О пароле никто не говорит. Это просто тестовое задание. Хеш код в реальной строке будет другим. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.09.2018, 08:39 |
|
Задачка на собеседовании. как?)
|
|||
---|---|---|---|
#18+
Valentin Kolesnikov, Вариант, да. Но весьма затратный вариант. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.09.2018, 08:47 |
|
Задачка на собеседовании. как?)
|
|||
---|---|---|---|
#18+
Подбор = перебор ... |
|||
:
Нравится:
Не нравится:
|
|||
26.09.2018, 09:15 |
|
Задачка на собеседовании. как?)
|
|||
---|---|---|---|
#18+
Tsyklop, задача скорее всего на распараллеливание действий. Вероятно надо тупо вычислять хэши для комбинаций типа "aaa", "aba", "abb" и т д. - привязываться к логике вычисления хэша я бы не стал. Но хз какую тему Вы изучаете, может это задача именно на математику - Вам видней. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.09.2018, 10:28 |
|
Задачка на собеседовании. как?)
|
|||
---|---|---|---|
#18+
Kachalovзадача скорее всего на распараллеливание действий у меня тоже промелькнула мысль, что если бы авторы задачи не занимались ерундой, а хотели проверить знания кандидата, то предоставили бы уже линейное решение и предложили распараллелить процесс. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.09.2018, 10:34 |
|
Задачка на собеседовании. как?)
|
|||
---|---|---|---|
#18+
chpashaу меня тоже промелькнула мысль, что если бы авторы задачи не занимались ерундой, а хотели проверить знания кандидата, то предоставили бы уже линейное решение и предложили распараллелить процесс. Мне такое дали на собеседовании, якобы посмотреть как я мыслю. Но блин. такие задачи глупо давать именно на собеседованиях ибо человек нервничает, переживает и т.д. А когда он в спокойной обстановке то сможет сделать решение за 5 мин, а на собеседовании займет много времени. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.09.2018, 10:42 |
|
Задачка на собеседовании. как?)
|
|||
---|---|---|---|
#18+
так не надо печатать прям при них. можно сказать типа я сейчас вам тут печатать ничего не буду но на словах скажу сделал бы так так и так. а еще треш могут попросить на бумажке написать тут сразу посыл. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.09.2018, 10:48 |
|
Задачка на собеседовании. как?)
|
|||
---|---|---|---|
#18+
Проверка на образованность, чтобы поугорать над невежеством. Кстати, над посетителями форума тоже. Я как то видел как php-кам предложили реализовать решение великой теоремы Ферма, из толпы человека 2-3 всего поняли, что это такое. знания кандидата, то предоставили бы уже линейное решение и предложили распараллелить процесс Нет уж, тут как раз задача по информатике, придумать алгоритм решения линейного уравнения в целых числах. кобы посмотреть как я мыслю Если бы вы догадались, про что это вообще и сформулировали бы задачу, может этим бы уже все им и показали. Впрочем, не догадавшись показали тоже. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.09.2018, 12:02 |
|
Задачка на собеседовании. как?)
|
|||
---|---|---|---|
#18+
Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24.
Решение. не знаю насколько правильное, но работает. Скинули на StackOverflow ... |
|||
:
Нравится:
Не нравится:
|
|||
26.09.2018, 12:30 |
|
Задачка на собеседовании. как?)
|
|||
---|---|---|---|
#18+
Представляю, как начнут тиражировать решение полным перебором, и это станет "каноническим решением", которое будут требовать от всех растиражировавшие задачку ничего не соображающие сотрудника отдела кадров. В страшное время живем. Про нормальный способ читайте здесь http://new.math.msu.su/department/number/dw/doku.php?id=ent#решение_линейного_диофантова_уравнения_от_любого_числа_неизвестных "Решение линейного диофантова уравнения от любого числа неизвестных" ... |
|||
:
Нравится:
Не нравится:
|
|||
26.09.2018, 13:02 |
|
Задачка на собеседовании. как?)
|
|||
---|---|---|---|
#18+
в большинстве случаев требуется солдат со знанием фреймворков и умением быстро получить джейсон и быстро положить его в базу а все эти ваши неведомые фигни это для всяких олимпиадников ну и поголоволомничать вместо пиваса с друзьями в кружочке у подъезда. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.09.2018, 13:16 |
|
Задачка на собеседовании. как?)
|
|||
---|---|---|---|
#18+
Eugene NewПро нормальный способ читайте здесь где же ты был раньше? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.09.2018, 13:18 |
|
Задачка на собеседовании. как?)
|
|||
---|---|---|---|
#18+
Eugene NewПро нормальный способ читайте - стоит поменять алгоритм хэширования и весь код можно будет выкинуть в помойку. С точки зрения IT, то что алгоритм хэширования может меняться - это естественное предположение. А перебор хэшей - типовая задача. Так что если соискатель решит задачу рекомендуемым вами способом, работодатель получит хорошего математика, но плохого программиста) ... |
|||
:
Нравится:
Не нравится:
|
|||
26.09.2018, 13:27 |
|
Задачка на собеседовании. как?)
|
|||
---|---|---|---|
#18+
andreykaT, а вам то откуда знать, что требуется? Автор сообщения даже не указал, что за работа и где. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.09.2018, 13:48 |
|
Задачка на собеседовании. как?)
|
|||
---|---|---|---|
#18+
chpasha, где же ты был раньше? Вообще то все что нужно, сказал Андрей Панфилов . ... |
|||
:
Нравится:
Не нравится:
|
|||
26.09.2018, 13:49 |
|
Задачка на собеседовании. как?)
|
|||
---|---|---|---|
#18+
Eugene NewВообще то все что нужно, сказал Андрей Панфилов так и я о том же ... |
|||
:
Нравится:
Не нравится:
|
|||
26.09.2018, 14:02 |
|
Задачка на собеседовании. как?)
|
|||
---|---|---|---|
#18+
Eugene NewandreykaT, а вам то откуда знать, что требуется? Автор сообщения даже не указал, что за работа и где. веб разработка. алгоритмы, криптография не моё. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.09.2018, 14:45 |
|
|
start [/forum/topic.php?fid=59&msg=39708429&tid=2121746]: |
0ms |
get settings: |
15ms |
get forum list: |
14ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
107ms |
get topic data: |
12ms |
get forum data: |
2ms |
get page messages: |
69ms |
get tp. blocked users: |
2ms |
others: | 330ms |
total: | 555ms |
0 / 0 |