Прием в училище Yandex. Навлизане в училището за анализ на данни

IN напоследъкУкраинската ИТ общност често обсъжда проблемите на деградиращото образование в Украйна и Русия: университетите вече не произвеждат програмисти-киборги, които изчисляват всеки проект за един ден и усърдно започват да го изпълняват, а в най-добрия случай самоуки програмисти, които в задните редове на аудиторията, вместо да слушат лекции за ретро лампови приемници, четат книги за езици за програмиране. Да, тези хора могат да бъдат поздравени - те самите се опитват по някакъв начин да се научат, за да си намерят работа в бъдеще, но често липсата на методология и ясно дефиниран процес на обучение не позволява на самоуките хора да се конкурират с програмистите от „старата школа“. Аз също съм един от тези хора.

Използвах основно университетската скамейка, за да изучавам различни езици за програмиране, научих много, натрупах опит като наемен програмист и по моите проекти, но чувствам, че все още има една бъркотия в главата ми, която спешно трябва да се приведе в някакъв структуриран вид. В резултат на това започнах да систематизирам придобитите знания, да търся варианти за решаване на проблема още по-бързо и по-ефективно, записвам и подчертавам класа инструменти, които биха ми помогнали с това. Но и това не ме устройваше. Чувствах, че е необходимо да бъда в компанията на хора, които са с глава над мен по знания, да се уча от техния опит. Така попаднах на обява за прием в Училището по анализ на данни от Yandex в Украйна.

Защо толкова много исках да отида в училището за анализ на данни? Защото сега, като въздух, имам нужда от практиката да решавам сложни проблеми, което изисква не само владеене на език за програмиране, но и добра база от знания по математика и теория на вероятностите. Вярвам, че като се науча как да решавам такива проблеми, ще бъда по-конкурентоспособен на пазара - и това е основната ми задача, движещата сила зад желанието ми да научавам нови неща. Смятам, че хората, създали такъв високонаучен проект, имат какво да учат и си струва да се борим за възможността да се учим.

Подготовка

За кандидатстване за прием беше необходимо да се попълни подробен въпросник и да се решат няколко математически задачи. анализ, теория на вероятностите, аналитична геометрия. Задачите бяха много лесни, но тъй като при попълването на въпросника беше необходимо да се посочат само отговорите, а не решението, за безопасност реших да проверя всичко няколко пъти, за да премина този етап със сигурност. Отделих няколко вечерни часа за това след работа и го изпратих.

Седмица по-късно получих писмо от встъпителна комисияучилища, че преминах първия етап и бях поканен на интервю в киевския офис на Yandex. Посъветваха ме да се запозная с основните теми, по които ще се провеждат интервютата. Приятен момент беше, че въпросите бяха придружени и от книги, по които човек може да се подготви (преминах математическия анализ в института преди четири години и, разбира се, забравих имената на книгите).

Реших да прекарам две седмици в подготовка за интервюто и всеки ден след работа си спомнях какво бях забравил и научих това, което не знаех преди. В частност, линейна алгебраТрябваше да го науча от нулата, защото не го преподаваха в моя отдел по електроника. Искам да кажа, че ако вече сте завършили университета и работата ви не е свързана с математика, тогава трябва да отделите повече от две седмици за подготовка. Много е желателно през това време да имате почивка, тъй като трябва да отделите много усилия и време. Акцентът не трябва да е върху теорията, а върху решението практически задачи, което след работен ден е трудно. Теорията обаче също трябва да се знае „от кора до кора“, тъй като задачите на интервюто често бяха нестандартни.

Време "H"

Така дойде денят на интервюто. Сутринта пристигнах в офиса на Yandex, срещнах се с изпитващите (те бяха симпатичен млад човек и момиче от Московския държавен университет) и интервюто започна. Състоеше се от практически задачи. След като решиш първото, ти дават второто, после третото и така докато изпитващият разбере, че си издържал, или ти разбереш, че си се провалил. Първата задача беше на тема програмиране.

Първата ми задача беше да напиша програма за намиране на GCD на произволен език за програмиране. Тъй като в училище ходех на олимпиади по информатика и математика, бързо го реших (по памет) и преминах към следващия. Втората задача е да се намери производната на x на степен x. Доста лесна задача, ако знаете свойствата на логаритъма, но забравих точно това свойство. За щастие изпитващият ме насочи в тази посока и проблемът бързо се реши. Искам да подчертая, че на интервюто, за разлика от въпросника, вече не се проверяваха отговорите, а ходът на мислите, довели до отговора. Такава система за прием беше използвана в същия KPI преди въвеждането на единно тестване и даде доста добри резултати. Вижда се, че училището е организирано не за Yandex PR, а за да могат обещаващи млади хора да направят качествен скок в развитието.

Не помня точно следващите задачи, помня само темите: пресмятане на детерминанта на матрица с размер n, където n е произволно число; проверете дали е векторно пространствооснова; изчислете дисперсията на функцията на разпределение върху дадена функцияплътност на вероятността. Средно интервюто отне два часа - някой се отказа по-рано, някой седеше до последно.

"Опитай отново"

Изпитната комисия изпрати резултатите по пощата, независимо дали лицето е издържало или не. Изпратиха ми известие, че не съм преминал.

Изненадващо, след като не ме приеха, желанието да уча в ШАД не изчезна, а само се засили. Тази година също искам да се опитам да ходя на училище, но гледам да се подготвя предварително. За начало е необходимо отново да си припомним цялата теория, а след това - да разглобим и разглобим задачите, тъй като именно те са най-важни за приема.

С тази статия искам официално да започна кампанията си за подготовка за присъединяване към Yandex School. Смятам да споделя моите мисли и разработки в тази посока с читателите на DOU: Мисля, че не съм единственият, който се готви да влезе тази година.

Лятото е време за приемни изпити. В момента приключва подборът в училището за анализ на данни Yandex - провеждат се интервюта за тези, които вече са издържали изпита. Училището по компютърни науки преподава машинно обучение, компютърно зрение, анализ на текст на естествен език и други области на съвременната компютърна наука. В продължение на две години студентите изучават предмети, които обикновено не са включени в университетските програми, въпреки че са много търсени както в науката, така и в индустрията. Можете да учите не само в Москва - училището има клонове в Екатеринбург, Минск, Киев, Новосибирск, Санкт Петербург. Също така има задочно, където можете да учите, като гледате видео лекции и кореспондирате с учителите на Московското училище по пощата.

Но за да влезете в ShAD, трябва успешно да преминете през три етапа - да попълните формуляр за кандидатстване на сайта, да преминете приемния изпит и да дойдете на интервю. Всяка година старши студенти, завършили и докторанти на Московския държавен университет, Московския физико-технологичен институт, Висше училище по икономика, ITMO, Санкт Петербургски държавен университет, UrFU, NSU влизат в ShaD и не всички от тях се справят с нашите тестове. Тази година получихме анкети от 3500 души, от които 1000 бяха допуснати до изпита, а само 350 го издържаха успешно.

За тези, които искат да опитат себе си и да разберат на какво са способни, сме подготвили анализ на тазгодишния приемен изпит. Опцията, която избрахме за вас, е изпълнена от 56% от решилите. В тази таблица можете да видите колко души са успели да решат всяка от задачите в нея.

Но първо бих искал да обясня какво проверяваме с изпита и как подхождаме към подготовката му. В първите години от съществуването на SAD нямаше писмен изпит, тъй като все още имаше малко заявления и беше възможно да се говори лично с всеки, който премина онлайн теста. Но тогава интервютата бяха по-дълги; някои завършили си спомнят, че са били интервюирани в продължение на шест часа, предлагайки много предизвикателни задачи. Тогава имаше повече желаещи - и през 2012 г. се появи писмен изпит.

В създаването на варианта участват кураторите на Московския ШАД, един от които съм и аз; при избора на задачи им помагат колеги от филиали. Броят на задачите във варианта не се е променил много през тези четири години: първоначално те бяха седем, а миналата година бяха осем. Всеки вариант има математически задачи (пет до седем) и задачи с алгоритми (една или две).

Що се отнася до математиката, ние, разбира се, проверяваме дали кандидатите владеят основните раздели на програмата: алгебра, математически анализ, комбинаторика и теория на вероятностите. Но това, което е важно за нас, не са знанията, които се постигат с тъпчене и се забравят седмица след теста или изпита - като ужасни формули от таблицата неопределени интегралиили функциите на разпределение на Студент; ето защо позволяваме на кандидатите да вземат всякакви хартиени източници със себе си на писмения изпит. Много по-ценно е разбирането на същността на случващото се, както и способността да се прилагат стандартни факти и методи в необичайни ситуации. Също така се опитваме да запазим изчислителната сложност до минимум; дори двуцифрените числа трябва да се умножават рядко. Така че по време на изпита няма да срещнете рутинни и досадни изчислителни упражнения и много задачи ще изглеждат нестандартни и може би дори олимпиадни.

Що се отнася до алгоритмите, ние избягваме проблеми, които изискват познаване на специфични структури от данни (дървета за търсене, хеш-таблици и т.н.) или алгоритми (алгоритми за бързо сортиране, алгоритми за най-краткия път на графики и т.н.). В допълнение, ние не изискваме от кандидатите да напишат имплементация на изобретен алгоритъм на който и да е език за програмиране; по-скоро напротив - по всякакъв начин възпираме това. Наистина, при писмения изпит най-много се интересуваме не от уменията за програмиране, а от способността ясно да опишем алгоритъма и, ако е необходимо, да убедим читателя, че той удовлетворява ограниченията за времето за изпълнение и количеството разпределена памет. Приемат се обаче решения, съдържащи код на всеки език, който можем да четем, но те са по-трудни за проверка и освен това все още трябва да бъдат придружени от обосновка за коректност.

Задача 1

Намерете границата на редицата (a n), за която

Отговор


Решение

Нека първо докажем, че последователността се събира. Ако a n< 0 , Че a n+1< 0 , така че е ограничен отгоре. Нека сравним a nИ a n+1:


Виждаме това при a n ∈(-1;0) има неравенство a n< a (n+1) , тоест последователността се увеличава. По теоремата на Вайерщрас тя има граница. За да го намерим, нека отидем до лимита в нашата релация на повторение:
откъдето границата може да бъде едно от числата 0, -1 и 4. Лесно е да се види, че това е 0.

Задача 2

На равнина, покрита с еднакви правоъгълници със страни 10 и 20 (правоъгълниците граничат със страни), начертайте произволна окръжност с радиус 4. Намерете вероятността окръжността да има общи точки с точно три правоъгълника.

Отговор


Решение

Ще следим позицията на центъра на кръга. Ясно е, че можем да ограничим разглеждането си до вътрешността на един правоъгълник. Лесно се вижда, че за да може окръжността да пресича точно три правоъгълника, трябва да са изпълнени две условия: (1) разстоянията от центъра до двете най-близки страни на правоъгълника трябва да са по-малки от 4; (2) разстоянието до най-близкия връх на правоъгълника трябва да е по-голямо от 4. Знаейки това, можем да начертаем набор от точки, които отговарят на тези условия.

Следователно желаната вероятност е равна на

Задача 3

Дима и Ваня се редуват да попълват матрицата с размери 2n×2n. Целта на Ваня е получената матрица да има собствена стойност 1, а целта на Дима е да му попречи. Дима е първи. Някой от тях има ли печеливша стратегия?

Отговор

При правилна стратегия Ваня ще спечели.


Решение

Получената матрица Аще има собствена стойност 1, ако матрицата А - Еще се изроди. Ваня може да постигне това напр. по следния начин. След като Дима влезе в някакъв елемент aij, Ваня влиза в нов елемент aikна същия ред, така че a ik -δ ik =-(a ij -δ ij), Където δijе символът на Кронекер. След това сумата от числата във всеки ред на матрицата А-Еще бъде равна на нула, тоест матрицата А - Еще се изроди.

Задача 4

Намерете детерминантата на матрица A=(aij), Където

Отговор


Решение

Използваме формулата Извадете предишния от всеки ред на матрицата, а след това предишния от всяка колона. Получената матрица ще изглежда така:


Продължавайки аргумента чрез индукция, ние се уверяваме, че детерминантата на оригиналната матрица е равна на детерминантата на единичната матрица, т.е. 1.

Задача 5

Дадени са два масива от цели числа аИ b, и всички елементи bразличен. Изисква се да се намери набор от индекси i_1< i_2 <… < i_k , за което компл а,...,ае пермутация на елементите на масива b, а разликата i_k - i_1възможно най-малко. Краен срок - O(nk)(но може би можете по-бързо), по памет - На).

Решение

Това може да стане с едно преминаване през масива a. Всеки път, когато срещнем елемент от масив b, записваме него и номера му в специални масиви. В същото време поддържаме сегмент I в тези масиви, в който се надяваме да намерим всички различни елементи b. Ясно е, че ако следващият елемент от масива a съвпада с първия елемент от сегмента I, тогава I очевидно не може да бъде най-късиятотсечка, която отговаря на условието на задачата, и можем да преместим левия й край. Ако на следващата стъпка разберем, че I съдържа всички отделни елементи b, тогава I е кандидат за отговора; в този случай изместваме и левия му край.

Степен На)очевидно от паметта. Степен O(nk)сложността може да бъде оправдана по следния начин: правим всичко наведнъж (следователно н) и на всяка стъпка трябва да търси елемент в масива b(следователно к). Ясно е, че алгоритъмът може да бъде подобрен: ако първо сортираме bи използваме двоично търсене, получаваме O(n log k). Ако използвате перфектно хеширане, тогава можете да постигнете сложност O(n+k).

Задача 6

През 2222 г. волейболните турнири се провеждат по нова система. Казват А отбора надминаваотбор B, ако A победи B или всеки отбор, който победи B. Всяка двойка отбори играе 1 път. Равенствата се изключват от волейболните правила. Отборът, който надмине всички останали отбори, се обявява за шампион. (a) Докажете, че трябва да има шампион (b) Докажете, че не може да има точно двама шампиони.

Решение

Да се ​​съгласим, че всеки отбор за турнира получава точки, равни на броя отбори, надминати от него. Първо доказваме следната проста лема:

Лема.Нека отбор E не превъзхожда отбор K. Тогава K събра повече точки от E.

Доказателство.Ако E не превишава K, тогава K е победил отбор E, както и всички отбори, които отбор E е спечелил.

Сега нека X е отборът, победен от отбор E. Ако E победи X, тогава K също победи X. Така че K победи X. Ако E победи отбор F, който победи X, тогава отбелязваме, че K също победи F. Следователно K победи F, който победи X, тоест K победи X. Общо K победи всички отбори, които победиха E, и E в допълнение, тоест поне един отбор повече от E. Лемата е доказана a.

(a) Нека A е отборът с най-много точки. Нека докажем, че А е шампион. Да кажем, че не е, тогава има отбор Б, който А не е победил. По силата на лемата получаваме, че B е спечелил повече точки от A. Противоречие.

(b) Да предположим, че имаме двама шампиони: A и B. Те играят един срещу друг; нека, например, A да спечели. Тъй като B е по-добър от всички останали отбори (и A в частност), тогава B победи някой отбор, който спечели срещу A.

Да приемем като начало, че има отбори, които са спечелили и A, и B. Тогава може да се покаже, че този от тях (да го наречем C), който е събрал най-много точки, ще бъде третият шампион. Наистина, нека E е отборът, който не е бил победен от C. Тогава, първо, E спечели и A, и B, и второ, E спечели повече точки от C. Противоречие.

Да предположим сега, че няма отбори, които са спечелили едновременно A и B. Помислете за множеството от всички такива отбори, които са спечелили A, но са загубили B. Обърнете внимание, че не е празно (вижте по-горе). Сред тях вземете отбора с най-голям брой точки. Тогава, използвайки лемата, можем да установим, че този отбор е третият шампион.

Задача 7

Изчислете интеграл

образование

През 2017 г. влезте в ShaD (Училище за анализ на данни) Yandex.

Здравейте!

Казвам се Владимир, на 26 години съм. Имам няколко висши образования (инженер по металургия и икономика и управление на предприятия). Получих и двете образования в Московския институт за стомана и сплави. В момента работя като ръководител на проекти в една от местните ИТ компании, която е доставчик на информационни системи за управление на производството. По време на работа постоянно се сблъсквам с необходимостта от агрегиране и прехвърляне на данни, интегриране на различни системи с помощта на Enterprise Service Bus (ESB). Чух за ShAD преди година, но предходната година беше много натоварена - доставката на дисертации във вторите висши и магистърски програми, прием в аспирантура. Освен това имаше много продължителни, работни командировки. В момента не е толкова натоварено, така че мисля най-накрая да се справя с подготовката и приемането. За текущата дата се чувствам малко повече от напълно неподготвен;) Всички институтски матан са забравени. По комбинаторика и тер.вер учих материала сам. В програмирането научих Python сам (с помощта на курсове по курсера и степика). Смятам, че обучението ще се разпредели като сложност и натоварване както следва: Матан - 50%, Комбинаторика и Тер.Вер. - 30%, Програмиране - 20%.

Защо решихте да използвате тази услуга? Всичко е просто. Мисля, че ще ми помогне да следя динамиката и може би ще намеря хора, които могат да ми помогнат или на които аз мога да помогна :)

Критерии за прекратяване

Записване в ЕАД. Не е задължително за редовен отдел, но за предпочитане за бюджетно място.

Лични средства

Ресурсите за тази задача са време и информация. Времето е малко, т.к. работа, командировки и обучение на студенти.

Може да имате нужда от пари, за да платите за курсове или учител. Няма особени проблеми с парите.

Зелен гол

Искам да вляза в ShaD, за да получа уникални знания, които ще ми помогнат в бъдеще. Това знание се дава от абсолютно уникални хора, запознанството с които, сигурен съм, няма да е излишно в живота ми. Освен това това е добро предизвикателство да докажете независимост, самоорганизация и способност да постигате целите си.

Лятото е време за приемни изпити. В момента приключва подборът в училището за анализ на данни Yandex - провеждат се интервюта за тези, които вече са издържали изпита. Училището по компютърни науки преподава машинно обучение, компютърно зрение, анализ на текст на естествен език и други области на съвременната компютърна наука. В продължение на две години студентите изучават предмети, които обикновено не са включени в университетските програми, въпреки че са много търсени както в науката, така и в индустрията. Можете да учите не само в Москва - училището има клонове в Екатеринбург, Минск, Киев, Новосибирск, Санкт Петербург. Има и отдел за кореспонденция, където можете да учите, като гледате видео лекции и кореспондирате с учителите на Московското училище по пощата.

Но за да влезете в ShAD, трябва успешно да преминете през три етапа - да попълните формуляр за кандидатстване на сайта, да преминете приемния изпит и да дойдете на интервю. Всяка година старши студенти, завършили и докторанти на Московския държавен университет, Московския физико-технологичен институт, Висше училище по икономика, ITMO, Санкт Петербургски държавен университет, UrFU, NSU влизат в ShaD и не всички от тях се справят с нашите тестове. Тази година получихме анкети от 3500 души, от които 1000 бяха допуснати до изпита, а само 350 го издържаха успешно.

За тези, които искат да опитат себе си и да разберат на какво са способни, сме подготвили анализ на тазгодишния приемен изпит. Опцията, която избрахме за вас, е изпълнена от 56% от решилите. В тази таблица можете да видите колко души са успели да решат всяка от задачите в нея.

Но първо бих искал да обясня какво проверяваме с изпита и как подхождаме към подготовката му. В първите години от съществуването на SAD нямаше писмен изпит, тъй като все още имаше малко заявления и беше възможно да се говори лично с всеки, който премина онлайн теста. Но тогава интервютата бяха по-дълги; някои завършили си спомнят, че са били интервюирани в продължение на шест часа, предлагайки много предизвикателни задачи. Тогава имаше повече желаещи - и през 2012 г. се появи писмен изпит.

В създаването на варианта участват кураторите на Московския ШАД, един от които съм и аз; при избора на задачи им помагат колеги от филиали. Броят на задачите във варианта не се е променил много през тези четири години: първоначално те бяха седем, а миналата година бяха осем. Всеки вариант има математически задачи (пет до седем) и задачи с алгоритми (една или две).

Що се отнася до математиката, ние, разбира се, проверяваме дали кандидатите владеят основните раздели на програмата: алгебра, смятане, комбинаторика и теория на вероятностите. Но това, което е важно за нас, не са знанията, които са постигнати с тъпчене и забравени седмица след контролното или изпита - като ужасни формули от таблицата на неопределените интеграли или функцията на разпределение на Студента; ето защо позволяваме на кандидатите да вземат всякакви хартиени източници със себе си на писмения изпит. Много по-ценно е разбирането на същността на случващото се, както и способността да се прилагат стандартни факти и методи в необичайни ситуации. Също така се опитваме да запазим изчислителната сложност до минимум; дори двуцифрените числа трябва да се умножават рядко. Така че по време на изпита няма да срещнете рутинни и досадни изчислителни упражнения и много задачи ще изглеждат нестандартни и може би дори олимпиадни.

Що се отнася до алгоритмите, ние избягваме проблеми, които изискват познаване на специфични структури от данни (дървета за търсене, хеш-таблици и т.н.) или алгоритми (алгоритми за бързо сортиране, алгоритми за най-краткия път на графики и т.н.). В допълнение, ние не изискваме от кандидатите да напишат имплементация на изобретен алгоритъм на който и да е език за програмиране; по-скоро напротив - по всякакъв начин възпираме това. Наистина, при писмения изпит най-много се интересуваме не от уменията за програмиране, а от способността ясно да опишем алгоритъма и, ако е необходимо, да убедим читателя, че той удовлетворява ограниченията за времето за изпълнение и количеството разпределена памет. Приемат се обаче решения, съдържащи код на всеки език, който можем да четем, но те са по-трудни за проверка и освен това все още трябва да бъдат придружени от обосновка за коректност.

Задача 1

Намерете границата на редицата (a n), за която

Отговор


Решение

Нека първо докажем, че последователността се събира. Ако a n< 0 , Че a n+1< 0 , така че е ограничен отгоре. Нека сравним a nИ a n+1:


Виждаме това при a n ∈(-1;0) има неравенство a n< a (n+1) , тоест последователността се увеличава. По теоремата на Вайерщрас тя има граница. За да го намерим, нека отидем до лимита в нашата релация на повторение:
откъдето границата може да бъде едно от числата 0, -1 и 4. Лесно е да се види, че това е 0.

Задача 2

На равнина, покрита с еднакви правоъгълници със страни 10 и 20 (правоъгълниците граничат със страни), начертайте произволна окръжност с радиус 4. Намерете вероятността окръжността да има общи точки с точно три правоъгълника.

Отговор


Решение

Ще следим позицията на центъра на кръга. Ясно е, че можем да ограничим разглеждането си до вътрешността на един правоъгълник. Лесно се вижда, че за да може окръжността да пресича точно три правоъгълника, трябва да са изпълнени две условия: (1) разстоянията от центъра до двете най-близки страни на правоъгълника трябва да са по-малки от 4; (2) разстоянието до най-близкия връх на правоъгълника трябва да е по-голямо от 4. Знаейки това, можем да начертаем набор от точки, които отговарят на тези условия.

Следователно желаната вероятност е равна на

Задача 3

Дима и Ваня се редуват да попълват матрицата с размери 2n×2n. Целта на Ваня е получената матрица да има собствена стойност 1, а целта на Дима е да му попречи. Дима е първи. Някой от тях има ли печеливша стратегия?

Отговор

При правилна стратегия Ваня ще спечели.


Решение

Получената матрица Аще има собствена стойност 1, ако матрицата А - Еще се изроди. Ваня може да постигне това например по следния начин. След като Дима влезе в някакъв елемент aij, Ваня влиза в нов елемент aikна същия ред, така че a ik -δ ik =-(a ij -δ ij), Където δijе символът на Кронекер. След това сумата от числата във всеки ред на матрицата А-Еще бъде равна на нула, тоест матрицата А - Еще се изроди.

Задача 4

Намерете детерминантата на матрица A=(aij), Където

Отговор


Решение

Използваме формулата Извадете предишния от всеки ред на матрицата, а след това предишния от всяка колона. Получената матрица ще изглежда така:


Продължавайки аргумента чрез индукция, ние се уверяваме, че детерминантата на оригиналната матрица е равна на детерминантата на единичната матрица, т.е. 1.

Задача 5

Дадени са два масива от цели числа аИ b, и всички елементи bразличен. Изисква се да се намери набор от индекси i_1< i_2 <… < i_k , за което компл а,...,ае пермутация на елементите на масива b, а разликата i_k - i_1възможно най-малко. Краен срок - O(nk)(но може би можете по-бързо), по памет - На).

Решение

Това може да стане с едно преминаване през масива a. Всеки път, когато срещнем елемент от масив b, записваме него и номера му в специални масиви. В същото време поддържаме сегмент I в тези масиви, в който се надяваме да намерим всички различни елементи b. Ясно е, че ако следващият елемент от масива a съвпада с първия елемент от сегмента I, тогава I очевидно не може да бъде най-късиятотсечка, която отговаря на условието на задачата, и можем да преместим левия й край. Ако на следващата стъпка разберем, че I съдържа всички отделни елементи b, тогава I е кандидат за отговора; в този случай изместваме и левия му край.

Степен На)очевидно от паметта. Степен O(nk)сложността може да бъде оправдана по следния начин: правим всичко наведнъж (следователно н) и на всяка стъпка трябва да търси елемент в масива b(следователно к). Ясно е, че алгоритъмът може да бъде подобрен: ако първо сортираме bи използваме двоично търсене, получаваме O(n log k). Ако използвате перфектно хеширане, тогава можете да постигнете сложност O(n+k).

Задача 6

През 2222 г. волейболните турнири се провеждат по нова система. Казват А отбора надминаваотбор B, ако A победи B или всеки отбор, който победи B. Всяка двойка отбори играе 1 път. Равенствата се изключват от волейболните правила. Отборът, който надмине всички останали отбори, се обявява за шампион. (a) Докажете, че трябва да има шампион (b) Докажете, че не може да има точно двама шампиони.

Решение

Да се ​​съгласим, че всеки отбор за турнира получава точки, равни на броя отбори, надминати от него. Първо доказваме следната проста лема:

Лема.Нека отбор E не превъзхожда отбор K. Тогава K събра повече точки от E.

Доказателство.Ако E не превишава K, тогава K е победил отбор E, както и всички отбори, които отбор E е спечелил.

Сега нека X е отборът, победен от отбор E. Ако E победи X, тогава K също победи X. Така че K победи X. Ако E победи отбор F, който победи X, тогава отбелязваме, че K също победи F. Следователно K победи F, който победи X, тоест K победи X. Общо K победи всички отбори, които победиха E, и E в допълнение, тоест поне един отбор повече от E. Лемата е доказана a.

(a) Нека A е отборът с най-много точки. Нека докажем, че А е шампион. Да кажем, че не е, тогава има отбор Б, който А не е победил. По силата на лемата получаваме, че B е спечелил повече точки от A. Противоречие.

(b) Да предположим, че имаме двама шампиони: A и B. Те играят един срещу друг; нека, например, A да спечели. Тъй като B е по-добър от всички останали отбори (и A в частност), тогава B победи някой отбор, който спечели срещу A.

Да приемем като начало, че има отбори, които са спечелили и A, и B. Тогава може да се покаже, че този от тях (да го наречем C), който е събрал най-много точки, ще бъде третият шампион. Наистина, нека E е отборът, който не е бил победен от C. Тогава, първо, E спечели и A, и B, и второ, E спечели повече точки от C. Противоречие.

Да предположим сега, че няма отбори, които са спечелили едновременно A и B. Помислете за множеството от всички такива отбори, които са спечелили A, но са загубили B. Обърнете внимание, че не е празно (вижте по-горе). Сред тях вземете отбора с най-голям брой точки. Тогава, използвайки лемата, можем да установим, че този отбор е третият шампион.

Задача 7

Изчислете интеграл

Yandex отваря нов прием за Училището по анализ на данни. Това са безплатни двугодишни вечерни курсове за тези, които искат да получат образование в областта на обработката и анализа на данни и извличането на информация от Интернет. Училището изисква добра математическа подготовка и е предназначено предимно за студенти и младежи, завършили инженерни и математически специалности.

Как да процедираме

Трябва да попълните формуляр на сайта на училището до 15 май. След това ще получите имейл с линк към онлайн тест по математика и основи на програмирането. Всички успешно завършили теста ще бъдат поканени от училището на писмен изпит, който ще се проведе в края на май - началото на юни. Най-добрите резултати от изпита ще трябва да преминат през интервю, след което ще бъде взето окончателно решение.

Програма за обучение

На уебсайта на училището можете да изучавате изпитните задачи от минали години и да разберете за какво трябва да се подготвите. Можете да се запознаете с учителите на училището и да научите за новото направление „Големи данни“ в Деня на отворените врати на ШАД. Ще се проведе 19 априлв московския офис на Yandex, за да участвате, трябва да се регистрирате.

Занятията в SHAD се провеждат вечер през делничните дни. Можете да учите в училище присъствено или задочно, по видео лекции. По време на обучението или след дипломирането студентите могат да вземат стаж в Yandex.

Училището за анализ на данни съществува от 2007 г. и е завършило повече от 300 специалисти, много от които се занимават с наука, работят за Yandex и други големи ИТ компании в Русия и чужбина. Клонове на ShAD съществуват в Санкт Петербург (в рамките на Центъра за компютърни науки), Новосибирск, Екатеринбург, Минск и Киев.