Я фронтенд разработчик, но я восхищаюсь людьми, которые занимаются темой Data science. Сам в свободное время играюсь с ИИ на питоне, стараюсь придумывать для себя задачки (единственное - никогда не любил статистику, хотя в целом математика мне нравилась и до сих пор нравится). Автор молодец, так держать!)
спасибо, коротко, по существу. Честно! Какие-то фейлы спокойно описываешь. Вот так сидя с дивана оно виднее, что вон тут проблема, тут ошибка, а в стрессе собеса конечно сложнее
Недавно проходил собес в сбер на NLP/Audio. Прошёл алгоритмическую секцию, общий ML, Audio/NLP/Deep Learn, а так же два финала с лидами команд. И не взяли в итоге. Только зря на 5 собесов время тратил :(
С кубиком суть не в том, что вероятность > 1/2, а в мат ожидании. Если на текущем броске выпало число, которое меньше, чем будущее мат ожидание (3.5), то перебрасываем, иначе оставляем. Это достаточно известная задача, она даже есть в "Green Book", но там мы можем кидать кубик 3 раза, а не 2.
Молодец! Лучше конечно говорить правду. Работодателю интересно нанять адекватного соискателя пусть даже если он знает меньше того, кто врёт. Это моё мнение.
Автор молодец, спасибо за ролик! Жаль что конечно не признаёт, что чего-то не знает, на самом деле честность и открытость подкупают больше, чем хард скиллы. Желаю успехов!
Задача с кубиком требует пояснений. Если цель - максимизировать выигрыш, то: 1. говорим, что броски независимы 2. считаем матожидание 3. если выпало больше матожидания, сохраняем, если меньше, то перебрасываем Если цель - с наибольшей вероятностью получить больше чем в первый бросок (причем не важно насколько больше), то тогда да все верно решено в видео. Просто если был бы не кубик, а что-то другое, например, на кубике вместо 6 стояло бы 1 миллион, интуитивно понятно, что нам выгоднее перебрасывать даже когда выпало 5, потому что 1 млн это много и он сильно оттягивает матожидание. А если бы цель не проиграть, т.е. не получить меньше, тогда логика как в видео. Так что решение тут правильное, но рассуждение не совсем, я думаю стоит через матожидания делать. Т.е. для каждого случая переброса считать матожидание выигрыша, и если оно больше того, что выпало, то перебрасывать. Особенно если события зависимы и матожидание зависит от того, что выпало на предыдущем броске. Но тут повезло, неправильное рассуждение привело к правильному ответу) Так что смотрите что надо, либо МАТОЖИДАНИЕ выигрыша максимизировать, либо ВЕРОЯТНОСТЬ выгоды на втором броске.
Я вот ещё подумал, что при 4ке можно перебрасывает также. Вероятность выпадения нормальной грани (4,5,6), те 3/6. Конечно в данном случае я считаю что повторный выпад 4 это тоже хороший результат .
В задаче unique_in_order за начальное значение prev нельзя принимать пустую строку, так как первым элементом параметра sequence может быть именно пустая строка.
Я вот ещё подумал, что при 4ке можно перебрасывает также. Вероятность выпадения нормальной грани (4,5,6), те 3/6. Конечно в данном случае я считаю что повторный выпад 4 это тоже хороший результат.
🐳 Следи за новостями: t.me/gernar228/ - новости, анонсы, бесплатный контент 🍑 Приватный телеграм: t.me/gernar228_bot/ - весь движ тут: сообщество, собесы, мои личные консультации и другой эксклюзивный контент! ⬆ Boosty больше недоступен, всё переехало в телеграм ⬆
Здача 2 На чиле решил за 10 минут (что вообще не быстро уже), но на собесе бы просто насрал в штаны от стресса def decompose(n): s = str(n) digits = [i for i in s] return digits def next_smaller(n): digits_init = decompose(n) i = n while i > 0: i -= 1 digits_next = decompose(i) check = [s for s in digits_init if s not in digits_next] if len(check) == 0: break return i
@@valerierfolg1112 А меня наоборот этот фэйл вдохновил отвлечься от вылизывания картинок в ноутбуках и почитать про алгоритмы, потусить на литкоде. Кстати, в этой задаче, кажется, нужно найти все варианты перестановок цифр в числе и среди получившихся найти ближайшее слева к данному.
@@СырноБаказадача решается довольно просто за линию - в плюсах уже готовая есть prev_permutation идея такая - мы хотим сделать изменения в минимальном суфииксе. Если суффикс нестрого возрастает, то его уменьшить нельзя никак - найдем первую позицию с конца, где монотонность нарушается 1237079 - максим возрастающий суффикс это 079, значит будем менять только 7079, а 123 останется 7 в начале 7079 мы должны заменить на что-то меньшее, причем, чем больше, чем лучше - заменим на наибольшее число, строго меньшее данного 7079 -> 0779 заметим, что при этом 779 будет нестрого убывать (если монотонность нарушена, выбрали неправильное число на замену 7), значит, чтоб получить максимальное число из него, надо реверснуть итого 1237079 -> 123 (7) 079 -> 123 (0) 779 -> 123 (0) 977 -> 1230977 еще пример 15236 -> 1 (5) 236 -> 1 (3) 256 -> 1 (3) 652 -> 13652
@@gernar228 а почему выбор делается на основе вероятности получить во время второго броска больше очков? Условие задачи странное, но я бы его воспринял, как найти стратегию, при которой математическое ожидание выигрыша наибольшее ( или любая другая статистика) Скажем, если бы во время второго броска с большой вероятностью (90%) мы бы теряли очко, а маленькой (10%) увеличивали выигрыш на миллиард, разве не выгоднее было бы рискнуть, несмотря на меньшую вероятность?
Вот именно! Очень хорошо если нас будет много, а то недавно проходил собеседование, спрашивали как на 300+, а в итоге сказали у нас на этой позиции максимум 110🤣 Плюс ребята с региона!!!! Не соглашайтесь на зп меньше! Сейчас стоимость всех товаров и услуг (в т.ч квартиры, машины) иксанули. И когда говорят, сколько бы вы хотели получать в регионе? Да какая разница регион или не регион! Сейчас все и везде одинаково дорого!
Слушать тяжело. Ибо ты говоришь тихо, а твой собеседник громко. И ты либо глохнешь при перескакивание на него, либо ничего не слышишь, когда говоришь ты. Надо как-то уравновесить громкость :(
@@bogdanns2 я на ютубе штук 20 разных мок интервью ДС смотрел. И под каждым видео находится васян, которому легко и изи. Такому васяну изи только мелочь в пятерочке на кассе считать, чтобы пачку примы взять.
Самое ужасное что после таких видео когда люди массово на тренировались проходить собесы они приходят на работу и ничего не могут делать. Спасибо что помогаеие людям войти в айти)))
@@cardmaster6915 на это требуется дополнительное время, а это ценный ресурс. Да многое дополнительными вопросами отсеятся, но есть индивиды которые уже сотый раз проходят на собесы и уже более менее подготовлены отвечать на разные вопросы, а на практике не знаю ничего. Жаль потерянного времени.
Это невозможно понять плюс это дело компании. Плюс я лучше найму джуна из универа, который знает математику и питон слабо знает дата сайенс, чем чела после курсов, который знает про модели из курсов и может делать базовые вещи, но не знает математики. Тк первый через пару месяцев догонит второго(скорее всего), а второй при всем желании не сможет исключить логические фейлы ввиду слабой мат базы @@gernar228
4:25 решение задачи: def next_smaller(n): n = str(n) j = i = len(n) - 1 while i > 0: i -= 1 if n[i+1] < n[i]: if i == 0 and n[-1] == '0': return -1 # исключили случай с n = 30, 500, и т.д while True: if n[j] < n[i]: if j != len(n) - 1: return int(n[:i] + n[j] + n[i+1:j] + n[i] + n[j+1:]) return int(n[:i] + n[j] + n[i + 1:j] + n[i]) j -= 1 return -1
Я не хочу, я устал - после этой фразы интервьювер понял, что нужно брать 😅
А что, так МОЖНО было что ли?
найс ролик сделал, глухие, на левое ухо, будут довольный )
Из-за тебя гнездо наушника сломал, думал одно ухо не работает - раскавырял все. спс
Я фронтенд разработчик, но я восхищаюсь людьми, которые занимаются темой Data science. Сам в свободное время играюсь с ИИ на питоне, стараюсь придумывать для себя задачки (единственное - никогда не любил статистику, хотя в целом математика мне нравилась и до сих пор нравится). Автор молодец, так держать!)
держи в курсе
@@Maraur-y9s токсик, арбузер
Эта тема)) как я должен с ним работать, если меня не берут на работу, где я должен с ним работать 😅
спасибо, коротко, по существу. Честно! Какие-то фейлы спокойно описываешь. Вот так сидя с дивана оно виднее, что вон тут проблема, тут ошибка, а в стрессе собеса конечно сложнее
"я устал":D вот это прикол
чет мне кажется странным что после слов "не хочу, я устал" тебя куда-то взяли, работать придётся фулл день, а ты устал за час или два собеседования
день и ночь
Лол, что
Самые важные вопросы, привязанные к работе завалил, но прошел?
Да уже видно , кто помогает Бакстерам чистить карманы рабочего класса
Шок! Действительно очень полезное видео! Посмотрел его и стал проходить собесы в 1.3 раза лучше!!! ЭТО ЖЕЕСТЬ!!!😶🌫💣💣 КРУТО!!! 😎
Недавно проходил собес в сбер на NLP/Audio. Прошёл алгоритмическую секцию, общий ML, Audio/NLP/Deep Learn, а так же два финала с лидами команд. И не взяли в итоге. Только зря на 5 собесов время тратил :(
5 секций это жесть
мдаа уж, не совсем понятно что они вообще хотели, или передумали вообще брать кого-либо
Увидели конкурента😊
В задаче на функцию next_smaller в конце написано '7079' should equal 790, что неверно. По идее должно быть 977. А задачка действительно интересная.
Приветствую, расскажи пожалуйста, с чего начинал изучение? Мб какие то курсы/школы есть? Спасибо
С кубиком суть не в том, что вероятность > 1/2, а в мат ожидании. Если на текущем броске выпало число, которое меньше, чем будущее мат ожидание (3.5), то перебрасываем, иначе оставляем.
Это достаточно известная задача, она даже есть в "Green Book", но там мы можем кидать кубик 3 раза, а не 2.
Вы абсолютно правы! Я тоже хотел об этом написать.
Странное интервью, если честно. Мало в какой конторе будут слушать того, кто с таким "энтузиазмом" отвечает на вопросы интервьюера.
Это ты видос с ВТБ не видел ещё
Я думаю это манера разговора многих в через айти. Т.е. норм
Молодец!
Лучше конечно говорить правду. Работодателю интересно нанять адекватного соискателя пусть даже если он знает меньше того, кто врёт. Это моё мнение.
Автор молодец, спасибо за ролик!
Жаль что конечно не признаёт, что чего-то не знает, на самом деле честность и открытость подкупают больше, чем хард скиллы. Желаю успехов!
Честно, ни разу не видел, когда ответ на вопрос «я не знаю» засчитался как «+». Гораздо лучше рассуждать начать
все индивидуально. Люди разные, интервьюеры разные. Одни интервьюеры точно засчитают это красным флагом, другим нужно рассуждение
Задача с кубиком требует пояснений. Если цель - максимизировать выигрыш, то: 1. говорим, что броски независимы 2. считаем матожидание 3. если выпало больше матожидания, сохраняем, если меньше, то перебрасываем
Если цель - с наибольшей вероятностью получить больше чем в первый бросок (причем не важно насколько больше), то тогда да все верно решено в видео.
Просто если был бы не кубик, а что-то другое, например, на кубике вместо 6 стояло бы 1 миллион, интуитивно понятно, что нам выгоднее перебрасывать даже когда выпало 5, потому что 1 млн это много и он сильно оттягивает матожидание. А если бы цель не проиграть, т.е. не получить меньше, тогда логика как в видео. Так что решение тут правильное, но рассуждение не совсем, я думаю стоит через матожидания делать. Т.е. для каждого случая переброса считать матожидание выигрыша, и если оно больше того, что выпало, то перебрасывать. Особенно если события зависимы и матожидание зависит от того, что выпало на предыдущем броске. Но тут повезло, неправильное рассуждение привело к правильному ответу) Так что смотрите что надо, либо МАТОЖИДАНИЕ выигрыша максимизировать, либо ВЕРОЯТНОСТЬ выгоды на втором броске.
Я вот ещё подумал, что при 4ке можно перебрасывает также. Вероятность выпадения нормальной грани (4,5,6), те 3/6. Конечно в данном случае я считаю что повторный выпад 4 это тоже хороший результат
.
А такое можно публиковать вообще?)
Стоит ли ожидать блокировки канала?
можно публиковать
Хотелось бы посмотреть реальные ответы с собеса, на не врезки
В других роликах уже выкладываю полные версии
Я устал, я мухожук...)
В задаче unique_in_order за начальное значение prev нельзя принимать пустую строку, так как первым элементом параметра sequence может быть именно пустая строка.
тогда None
Привет! Какое у тебя образование? Вышка?
Офигеть какие требования в российских компаниях 😮
Лаконично и информативно) Было интересно подумать, как бы ответил)
Последних задач условия не до конца понял только))
не захочу 😁😁😁😁
Я вот ещё подумал, что при 4ке можно перебрасывает также. Вероятность выпадения нормальной грани (4,5,6), те 3/6. Конечно в данном случае я считаю что повторный выпад 4 это тоже хороший результат.
live coddng - сразу мимо, это как правило говорит о тупости и не готовности к диалогу интервьюэра. Таких сразу надо в игнор
🐳 Следи за новостями: t.me/gernar228/ - новости, анонсы, бесплатный контент
🍑 Приватный телеграм: t.me/gernar228_bot/ - весь движ тут: сообщество, собесы, мои личные консультации и другой эксклюзивный контент!
⬆ Boosty больше недоступен, всё переехало в телеграм ⬆
4:27 Последний тест неправильный. Там в конце 890, а должно быть 809.
вообще спасибо за короткий видос. это хороший формат. правда звук когда комментируешь плохой.
звук галимый
Слушай Вадим. Все по делу. Четко!
Вадим спасибо за полезный контент=)
Здача 2
На чиле решил за 10 минут (что вообще не быстро уже), но на собесе бы просто насрал в штаны от стресса
def decompose(n):
s = str(n)
digits = [i for i in s]
return digits
def next_smaller(n):
digits_init = decompose(n)
i = n
while i > 0:
i -= 1
digits_next = decompose(i)
check = [s for s in digits_init if s not in digits_next]
if len(check) == 0:
break
return i
А лол, потестил, не катит, ну вот я и тут уже обосрался
ты пытался
Прочитала ваш комментарий и кажется я передумала начинать учиться в Айти сфере
@@valerierfolg1112
А меня наоборот этот фэйл вдохновил отвлечься от вылизывания картинок в ноутбуках и почитать про алгоритмы, потусить на литкоде.
Кстати, в этой задаче, кажется, нужно найти все варианты перестановок цифр в числе и среди получившихся найти ближайшее слева к данному.
@@СырноБаказадача решается довольно просто за линию - в плюсах уже готовая есть prev_permutation
идея такая - мы хотим сделать изменения в минимальном суфииксе. Если суффикс нестрого возрастает, то его уменьшить нельзя никак - найдем первую позицию с конца, где монотонность нарушается
1237079 - максим возрастающий суффикс это 079, значит будем менять только 7079, а 123 останется
7 в начале 7079 мы должны заменить на что-то меньшее, причем, чем больше, чем лучше - заменим на наибольшее число, строго меньшее данного
7079 -> 0779 заметим, что при этом 779 будет нестрого убывать (если монотонность нарушена, выбрали неправильное число на замену 7), значит, чтоб получить максимальное число из него, надо реверснуть
итого
1237079 -> 123 (7) 079 -> 123 (0) 779 -> 123 (0) 977 -> 1230977
еще пример
15236 -> 1 (5) 236 -> 1 (3) 256 -> 1 (3) 652 -> 13652
Звук плохой(
в последних роликах исправил
Здравствуйте. Подскажите как осваивали профессию?
Учился. Выйдет отдельное видео про это
а где финальный этап?
Божественно
Здравствуйте. Было ли финальное собеседование?
Было, но попросили не выкладывать. Выйдет в приватном доступе.
Рекомендации были потому что вакансия на рекомендательные системы?
Да, но в Яндексе в целом их почти всегда спрашивают, тк они везде есть
не стремно выкладывать? Разве это не приватная инфа?
Не приватная, не боюсь
@@gernar228 думаю жопа в сбере у кого-то подгорит и прибегут к тебе с этим (работал в сбере 3+ года)
Было интересно.
Можешь объяснить откуда в задаче терверу, вероятность получить 1 5/6, 2 4/6
вероятность того, что мы выбросим число >1 = 5/6, потому что у нас 5 граней кубика из 6, которые удовлетворяют этому условию
@@gernar228 а почему выбор делается на основе вероятности получить во время второго броска больше очков? Условие задачи странное, но я бы его воспринял, как найти стратегию, при которой математическое ожидание выигрыша наибольшее ( или любая другая статистика)
Скажем, если бы во время второго броска с большой вероятностью (90%) мы бы теряли очко, а маленькой (10%) увеличивали выигрыш на миллиард, разве не выгоднее было бы рискнуть, несмотря на меньшую вероятность?
Привет) это мидл?!)
привет, да
Интересно в какое подразделение собесился.
Что-то многовато 300к для мидла. Сам работаю ds в Сбере на 10 грейде
Откуда взяты задачки? Есть ссылки на литкод или подобную платформу с именно этой задачей? Спасибо.
Думаю, в основном с литкода. Саму задачу не нашел(
@@gernar228кстати а как ты учился ,на дату ?на курсы или сам нашел материал ?
Если такие собеседования на Джуна, то дайте мне миддла, простейшие задания:(
это не на джуна) мне оффер 250к сделали после этого собеса
@@gernar228это много или мало для вашего уровня знаний? Это рубли? (Для меня я так поняла вы очень хорошо разбираетесь в айти)
Ребята 300 это сейчас всего лишь 3000 баксов. Это три нормальных телевизора. Это зарплата солдата с сво. Не снижайте планку,
Вот именно! Очень хорошо если нас будет много, а то недавно проходил собеседование, спрашивали как на 300+, а в итоге сказали у нас на этой позиции максимум 110🤣
Плюс ребята с региона!!!! Не соглашайтесь на зп меньше! Сейчас стоимость всех товаров и услуг (в т.ч квартиры, машины) иксанули. И когда говорят, сколько бы вы хотели получать в регионе? Да какая разница регион или не регион! Сейчас все и везде одинаково дорого!
Сразу видно что человек рос во времена Ельцина "Я устал, я ухожу"))
Такие же вопросы на джуна JS разработчика с зп 15т.р
JS джунам стоит задуматься
Голос у вьюера просто треш, респект, что выдержал его
Слушать тяжело. Ибо ты говоришь тихо, а твой собеседник громко. И ты либо глохнешь при перескакивание на него, либо ничего не слышишь, когда говоришь ты. Надо как-то уравновесить громкость :(
Это жесть 😂 Требования джуна. Что они там напрограммирубт 😂
Типо очень легко?
Ты бы лайвкоде все это сделал без проблем?
@@bogdanns2 я на ютубе штук 20 разных мок интервью ДС смотрел. И под каждым видео находится васян, которому легко и изи. Такому васяну изи только мелочь в пятерочке на кассе считать, чтобы пачку примы взять.
а это на позицию Джуна собес?
нет
Вторая задача решается просто реверсом цифр в числе?
Простой реверс не подходит, для примера 1009. По моему лучший вариант, разбиение на цифры -> построение всех комбинаций -> поиск нужного.
Такое решение не проканает?
def next_smaller(num):
import itertools
digits = list(str(num))
permutations = list(itertools.permutations(digits))
permutations = sorted([int(''.join(permutation)) for permutation in permutations])
i_to_select = permutations.index(num) - 1
return permutations[i_to_select] if i_to_select >= 0 else -1
перестановки это ⚰️
Самое ужасное что после таких видео когда люди массово на тренировались проходить собесы они приходят на работу и ничего не могут делать. Спасибо что помогаеие людям войти в айти)))
Таких элементарно отсеять на собесе, а если собеседующий не способен это сделать, то это проблема компании, а тот кто прошел - молодец
@@cardmaster6915 на это требуется дополнительное время, а это ценный ресурс. Да многое дополнительными вопросами отсеятся, но есть индивиды которые уже сотый раз проходят на собесы и уже более менее подготовлены отвечать на разные вопросы, а на практике не знаю ничего. Жаль потерянного времени.
Так пусть проверяют на собесах сможет человек выполнять рабочие задачи или нет)
Это невозможно понять плюс это дело компании. Плюс я лучше найму джуна из универа, который знает математику и питон слабо знает дата сайенс, чем чела после курсов, который знает про модели из курсов и может делать базовые вещи, но не знает математики. Тк первый через пару месяцев догонит второго(скорее всего), а второй при всем желании не сможет исключить логические фейлы ввиду слабой мат базы @@gernar228
@@gernar228 лучше бы это сразу и проверяли, а не задачи про кубики или еще какую-нибудь фигню
хмм я думал сказать "нет не хочу" - это как то грубо.
4:25 решение задачи:
def next_smaller(n):
n = str(n)
j = i = len(n) - 1
while i > 0:
i -= 1
if n[i+1] < n[i]:
if i == 0 and n[-1] == '0':
return -1 # исключили случай с n = 30, 500, и т.д
while True:
if n[j] < n[i]:
if j != len(n) - 1:
return int(n[:i] + n[j] + n[i+1:j] + n[i] + n[j+1:])
return int(n[:i] + n[j] + n[i + 1:j] + n[i])
j -= 1
return -1