powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Задачка на собеседовании. как?)
25 сообщений из 56, страница 1 из 3
Задачка на собеседовании. как?)
    #39708005
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;
...
Рейтинг: 0 / 0
Задачка на собеседовании. как?)
    #39708009
Tsyklop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
если что не понятно по задаче спрашивайте)

Я честно хз как лучше решить. надо случайным образом брать чар и пытаться склеивать с другими. Или же идти от обратного: найти сумму цифр и потом по полученным цифрам найти char.

Буду очень благодарен помощи)

туда я не прошел ибо не справился)
...
Рейтинг: 0 / 0
Задачка на собеседовании. как?)
    #39708022
chpasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
если ограничения по времени работы алгоритма нет :) , то приходит в голову вариант с перебором:
у нас есть массив букв [1, 2, 3, .... 26]
нужно сгенерировать все комбинации из N чисел с повторением, где N = length и для каждой комбинации проверить хэш. по идее можно оптимизировать скорость ограничив кол-во комбинаций, т.к. с учетом величины hash некоторые числа становятся бессмысленны из-за большой величины, например если у нас hash = 10, то первое число не может быть больше 10, второе больше (10 - 1) / 2 и т.д. Т.е. эффективней сразу считать сумму в процессе генерации комбинаций и обрывать если "перебор"
...
Рейтинг: 0 / 0
Задачка на собеседовании. как?)
    #39708055
andreykaT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
да.. просто представь что это 26-тиричная система счисления (Если речь о только строчных буквах) и всё. раз по три знака в "числе" (второй параметр) ну и считай по 3 знака. если прям чары чары то знач 255-тиричная система счисления.

типа ааа ааб аав ааг аад аае ааж ааз ... бвг ой перебор -- ну возвращаем. комплексити получается Н. пусть радуются.

прям битовая маска. да.
...
Рейтинг: 0 / 0
Задачка на собеседовании. как?)
    #39708071
Siemargl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tsyklop,

т.е тебе предлагают по хэшкоду подобрать пароль нужной длины, я верно понял ТЗ ?
...
Рейтинг: 0 / 0
Задачка на собеседовании. как?)
    #39708111
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tsyklop,

если контракт на вычисление хеша известен, то по факту предлагается решить диофантово уравнение от N неизвестных - гуглите.
...
Рейтинг: 0 / 0
Задачка на собеседовании. как?)
    #39708145
Фотография Valentin Kolesnikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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

С уважением, Валентин
...
Рейтинг: 0 / 0
Задачка на собеседовании. как?)
    #39708150
Tsyklop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SiemarglTsyklop,
т.е тебе предлагают по хэшкоду подобрать пароль нужной длины, я верно понял ТЗ ?
О пароле никто не говорит. Это просто тестовое задание. Хеш код в реальной строке будет другим.
...
Рейтинг: 0 / 0
Задачка на собеседовании. как?)
    #39708152
Tsyklop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Valentin Kolesnikov, Вариант, да. Но весьма затратный вариант.
...
Рейтинг: 0 / 0
Задачка на собеседовании. как?)
    #39708165
andreykaT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Подбор = перебор
...
Рейтинг: 0 / 0
Задачка на собеседовании. как?)
    #39708226
Kachalov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tsyklop, задача скорее всего на распараллеливание действий. Вероятно надо тупо вычислять хэши для комбинаций типа "aaa", "aba", "abb" и т д. - привязываться к логике вычисления хэша я бы не стал. Но хз какую тему Вы изучаете, может это задача именно на математику - Вам видней.
...
Рейтинг: 0 / 0
Задачка на собеседовании. как?)
    #39708233
chpasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kachalovзадача скорее всего на распараллеливание действий
у меня тоже промелькнула мысль, что если бы авторы задачи не занимались ерундой, а хотели проверить знания кандидата, то предоставили бы уже линейное решение и предложили распараллелить процесс.
...
Рейтинг: 0 / 0
Задачка на собеседовании. как?)
    #39708244
Tsyklop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
chpashaу меня тоже промелькнула мысль, что если бы авторы задачи не занимались ерундой, а хотели проверить знания кандидата, то предоставили бы уже линейное решение и предложили распараллелить процесс.

Мне такое дали на собеседовании, якобы посмотреть как я мыслю. Но блин. такие задачи глупо давать именно на собеседованиях ибо человек нервничает, переживает и т.д. А когда он в спокойной обстановке то сможет сделать решение за 5 мин, а на собеседовании займет много времени.
...
Рейтинг: 0 / 0
Задачка на собеседовании. как?)
    #39708249
andreykaT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
так не надо печатать прям при них. можно сказать типа я сейчас вам тут печатать ничего не буду но на словах скажу сделал бы так так и так. а еще треш могут попросить на бумажке написать тут сразу посыл.
...
Рейтинг: 0 / 0
Задачка на собеседовании. как?)
    #39708334
Eugene New
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проверка на образованность, чтобы поугорать над невежеством. Кстати, над посетителями форума тоже.

Я как то видел как php-кам предложили реализовать решение великой теоремы Ферма, из толпы человека 2-3 всего поняли, что это такое.

знания кандидата, то предоставили бы уже линейное решение и предложили распараллелить процесс

Нет уж, тут как раз задача по информатике, придумать алгоритм решения линейного уравнения в целых числах.

кобы посмотреть как я мыслю

Если бы вы догадались, про что это вообще и сформулировали бы задачу, может этим бы уже все им и показали. Впрочем, не догадавшись показали тоже.
...
Рейтинг: 0 / 0
Задачка на собеседовании. как?)
    #39708364
Tsyklop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: 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.
class Ideone
{   
    public static void findStrs(int hash, int n, String s) {
    if (n==0) {
        System.out.println(s);
        return;
    }   

    int from = hash / n - 13 * (n-1);
    from = (from < 1)? 1: from;
    int to = (hash - (n * (n-1) / 2)) / n;
    to = (to > 26)? 26: to;

    for (int i = from; i<= to; i++){
        //System.out.println(i);
        findStrs(hash - i * n, n - 1, (char)(97 + i - 1) + s);   
    }
   return;
 } 
    public static void main (String[] args) throws java.lang.Exception
    {
       findStrs(18, 3, ""); // your code goes here
    }
}



Решение. не знаю насколько правильное, но работает. Скинули на StackOverflow
...
Рейтинг: 0 / 0
Задачка на собеседовании. как?)
    #39708383
Eugene New
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Представляю, как начнут тиражировать решение полным перебором, и это станет "каноническим решением", которое будут требовать от всех растиражировавшие задачку ничего не соображающие сотрудника отдела кадров.

В страшное время живем.

Про нормальный способ читайте здесь

http://new.math.msu.su/department/number/dw/doku.php?id=ent#решение_линейного_диофантова_уравнения_от_любого_числа_неизвестных

"Решение линейного диофантова уравнения от любого числа неизвестных"
...
Рейтинг: 0 / 0
Задачка на собеседовании. как?)
    #39708398
andreykaT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в большинстве случаев требуется солдат со знанием фреймворков и умением быстро получить джейсон и быстро положить его в базу

а все эти ваши неведомые фигни это для всяких олимпиадников ну и поголоволомничать вместо пиваса с друзьями в кружочке у подъезда.
...
Рейтинг: 0 / 0
Задачка на собеседовании. как?)
    #39708402
chpasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Eugene NewПро нормальный способ читайте здесь
где же ты был раньше?
...
Рейтинг: 0 / 0
Задачка на собеседовании. как?)
    #39708410
Kachalov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Eugene NewПро нормальный способ читайте
- стоит поменять алгоритм хэширования и весь код можно будет выкинуть в помойку. С точки зрения IT, то что алгоритм хэширования может меняться - это естественное предположение. А перебор хэшей - типовая задача. Так что если соискатель решит задачу рекомендуемым вами способом, работодатель получит хорошего математика, но плохого программиста)
...
Рейтинг: 0 / 0
Задачка на собеседовании. как?)
    #39708429
Eugene New
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andreykaT,
а вам то откуда знать, что требуется? Автор сообщения даже не указал, что за работа и где.
...
Рейтинг: 0 / 0
Задачка на собеседовании. как?)
    #39708432
Eugene New
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
chpasha,
где же ты был раньше?

Вообще то все что нужно, сказал Андрей Панфилов .
...
Рейтинг: 0 / 0
Задачка на собеседовании. как?)
    #39708453
chpasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Eugene NewВообще то все что нужно, сказал Андрей Панфилов
так и я о том же
...
Рейтинг: 0 / 0
Задачка на собеседовании. как?)
    #39708503
Tsyklop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Eugene NewandreykaT,
а вам то откуда знать, что требуется? Автор сообщения даже не указал, что за работа и где.
веб разработка. алгоритмы, криптография не моё.
...
Рейтинг: 0 / 0
Задачка на собеседовании. как?)
    #39708506
andreykaT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну вот. нужен очередной солдат для того чтоб положить джейсон в базу.
...
Рейтинг: 0 / 0
25 сообщений из 56, страница 1 из 3
Форумы / Java [игнор отключен] [закрыт для гостей] / Задачка на собеседовании. как?)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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