Обновить
16K+
14
Ира Ко@ira-k

Контент-продюсер в Яндекс Практикуме

7,1
Рейтинг
53
Подписчики
Отправить сообщение

В версии 2022 года основной баг-трекинговой системой был YouTrack, а по Яндекс Трекеру был отдельный урок. В обновлённой программе мы добавили работу именно с Яндекс Трекером как с инструментом, на котором можно отработать процесс заведения и ведения задач/баг-репортов в системе.

По изучению автоматизации: если вы уже прошли ручное тестирование и начали работать, можно смотреть в сторону нескольких программ — зависит от того, насколько глубоко вы хотите погружаться и какой у вас сейчас уровень. Самый насыщенный вариант — «Инженер по тестированию расширенный»: там больше материалов и практики. А если у вас уже есть опыт в тестировании и вы хотите сфокусироваться именно на автоматизации, можно отдельно сравнить курсы автоматизатора на Python или Java.

Здравствуйте! Сейчас у вас остаётся доступ к той версии курса, которую вы купили и проходили. Эта версия курса останется доступной, но обновляться до новой программы она не будет. Обновлённый трек — это отдельная версия курса с другим содержанием, и доступ к нему получают студенты, которые приобрели именно новую программу.

Полный доступ к платформе получают наши выпускники, там же будет ещё больше вакансий, заточенных под навыки, полученные во врем учёбы

Здравствуйте! На платформе есть вакансии не только для самых начинающих, потому что наши курсы с нуля проходят и те, у кого уже есть опыт, например, чтобы структурировать имеющиеся знания. Поэтому мы добавили вакансии и для них.

Ещё больше вакансий для новичков — партнёрские, они будут доступны только нашим выпускникам, поэтому не отображаются на платформе

Спасибо за интерес к новой программе — это приятно и ценно. Важно уточнить: обновление курса не означает, что прежняя версия устарела. Все ключевые навыки, заложенные в неё, по-прежнему востребованы на рынке. Это подтверждают истории трудоустройства наших выпускников, которые успешно применяют эти знания в работе.
Новая программа действительно отличается — мы пересобрали структуру, добавили новые инструменты и расширили практику. Именно поэтому технически невозможно перейти на неё автоматически и мы не даем доступ к ней выпускникам курса. Но у вас остаётся полный доступ к купленному курсу, включая все обновления и улучшения, которые в него входят.

Здравствуйте! Имеете в виду статьи на Хабре или что-то на лендинге? Не видим повторных материалов тут

Привет! Отвечаем на оба вопроса:

1) При обучении на разных тарифах вы получите разные итоговые документы:

На базовом тарифе:
• Удостоверение о повышении квалификации государственного образца (при наличии диплома о высшем или среднем профессиональном образовании)
• Сертификат от Яндекс Практикума (если диплома нет)

На тарифе с самостоятельным обучении:
• Сертификат Яндекс Практикума

Оба документа подтверждают успешное прохождение обучения. Сертификат Практикума выдается на основании образовательной лицензии и признается работодателями. УПК может быть важнее, если вам нужен именно документ государственного образца, например, для подтверждения повышения квалификации на текущей работе.

2) Стоимость курса, если оплатить всё сразу — 85 000 ₽. Если вы будете платить по частям (рассрочка Практикума), то платёж составит 30 000 ₽/мес (то есть всего 90 000 ₽)

Привет! В курсе мы делаем фокус на работу с разными языками, но не разбираем их особенности в деталях, чтобы у студентов была возможность познакомиться с технологиями и практиками дизайна достаточно глубоко, при этом не переучиваясь в чужой стек. Поэтому примеры в курсе могут быть самые разные (Python, Java, С#, PHP и т.д.) — к этому нужно быть готовым.

Писать новые сервисы на незнакомом стеке не нужно, можно будет воспользоваться любым знакомым языком. Для старта учёбы нужно владеть хотя бы одним: Java, Python, C#, Golang, PHP, Node.js.

Делимся ответом:

Рассмотрим последовательно все операции Пети.

1) Выписаны все числа от 1 до 1024. Номер операции — 1, нечётный → вычёркиваем числа на нечётных позициях.

Остаются только чётные:

2, 4, 6, … , 1022, 1024.

На самом деле можно выписывать только начало каждого ряда, ведь в итоге наш ряд станет очень коротким и два «хвоста» как бы сольются в один, вы увидите это дальше. А ещё каждый ряд будет арифметической прогрессией.

2) Номер операции чётный → убираем числа на чётных позициях в оставшемся ряду.

Остаётся:

2, 6, 10, … , 1018, 1022.

3) Номер операции — нечётный → убираем нечётные номера.

Остаётся:

6, 14, … , 1014, 1022.

4) Убираем чётные номера.

Получится:

6, 22, … , 998, 1014.

Заметим, что первый элемент сохраняется на протяжении двух операций и потом меняется, так будет и потом.

5) Убираем нечётные номера.

Получится:

22, 54, … , 982, 1014.

6) Убираем чётные номера.

Получится:

22, 86, … , 918, 982.

7) Убираем нечётные номера.

Получится такой полный ряд:

86, 214, 342, 470, 598, 726, 854, 982.

8) Убираем чётные номера.

Получится ряд:

86, 342, 598, 854.

9) Убираем нечётные номера, остаются два числа:

342, 854.

10) Убираем чётный номер.

Останется число 342.

Ответ: 342.

Решение перебором — валидное. Конечно, выписывать все числа в каждом ряду не стоит, но можно и нужно попытаться увидеть закономерности.

def main():

	numbers = [i for i in range(1, 1025)]

	result_list = []

	for op in range(1, 11):

    	if op % 2:

        	result_list = numbers[1::2]

    	else:

        	result_list = numbers[::2]

    	numbers = result_list[::]

	print(result_list)

if name == 'main':

	main()

Ответ! Рассчитаем массы. Пропорции орехов в миксе 2:1:1, а всего в миксе 200г, значит, самого дешёвого ореха должно быть 100г, а двух других видов — по 50г.

Найдём исходную стоимость каждого микса:

  1. Арахис + Миндаль + Кешью

Здесь самый дешёвый — арахис.

100г арахиса стоят 0.1*500 = 50 руб,

50г миндаля — 0.05*1000 = 50 руб,

50г кешью — 0.05*1200 = 60 руб.

Тогда итоговая стоимость: 50+50+60 = 160 рублей.

Продавать пакетик такого микса по 200 рублей выгодно!

  1. Миндаль + Фундук + Фисташки

Здесь все орехи дорогие, дешевле остальных — миндаль.

100г миндаля — 0.1*1000 = 100 руб,

50г фундука — 0.05*1100 = 55 руб,

50г фисташек — 0.05*1400 = 70 руб.

Итоговая стоимость микса равна 100+55+70 = 225 руб.

Такую смесь магазину совсем не выгодно продавать за 200 рублей, надо дороже.

  1. Кешью + Фундук + Грецкий

Тут самый дешёвый орех — грецкий.

100г грецкого стоят 0.1*800 = 80 руб,

50г кешью — 0.05*1200 = 60 руб,

50г фундука — 0.05*1100 = 55 руб.

Стоимость микса равна 80+60+55 = 195 руб.

Продавать его за 200 рублей магазину выгодно, но на грани. Там же ещё упаковка сколько-то стоит… В общем, сомнительно, но окэй.

Итого

Наиболее выгодно продавать за 200 рублей первый микс, наименее выгодно — второй. Зато с точки зрения покупателя второй микс будет удачной покупкой!

Первый вариант решения. Задача — повод рассказать о треугольнике Паскаля и его связи с возведением двучлена в степень. 

Зафиксируем на каждом перекрёстке количество возможных способов до него добраться. Тогда количество маршрутов до каждого следующего равно сумме способов добраться до двух предыдущих, ведущих к нему. В этой интерактивной объяснялке подробнее показываем, как получить число на каждом из перекрёстков.

Причём же тут двучлены и возведение их в степень? Дело в том, что получившиеся числа на перекрёстках — это ни что иное, как биноминальные коэффициенты. Бином — это двучлен, например, (a+b). Если мы возводим его в степень, то есть умножаем на самого себя несколько раз, при раскрытии скобок перед каждым буквенным слагаемым будут возникать числа — коэффициенты.

При раскрытии скобок степень переменной a постепенно убывает с n до 0, степень b — возрастает с 0 до n. А сумма показателей в каждом отдельном слагаемом равна n.

Например,

(a+b)² = 1a²+2ab+1b²,

(a+b)³ = 1a³+3a²b+3ab²+1b³,

(a+b)⁴ = 1a⁴+4a³b+6a²b²+4ab³+1b⁴.

Если выписать только коэффициенты из правой части, то получим такой треугольник:

Две верхние строчки соответствуют коэффициентам для (a+b)⁰ и (a+b)¹. Нумеруются строки в треугольнике с нулевой, чтобы номер совпадал со степенью, в которую возводили двучлен.

Как же получить следующую строку? По краям пишем единички, а любое значение в середине равно сумме двух чисел над ним. Подвигать ползунок и посмотреть на процесс.

Итак, зная коэффициенты в седьмой строке, можно получить восьмую:

1 8 28 56 70 56 28 8 1.

И именно в восьмой строке скрыт ответ на исходную задачу: попасть в нужную точку B можно с перекрёстков со значениями 7 и 21, складываем их и получаем 28. Конечно, получить 28 можно было и не выписывая весь треугольник. И даже не зная о его существовании.

Второй вариант решения — комбинаторный.

Макс хочет пройти 6 кварталов вниз и 2 вправо. Все направления «вниз» идентичны между собой, как идентичны и варианты «вправо». Всего Максу нужно пройти 6 + 2 = 8 кварталов.

Закодируем направление «вниз» буквой Н, а варианты «вправо» — буквой П. С точки зрения комбинаторики каждый маршрут — это как бы слово из восьми букв, причём шесть из них — Н и две — П. И нам нужно найти количество таких слов. Это же….
число сочетаний!

Значит, количество способов добраться из точки А в точку В можно записать как C⁶₈  или как C²₈. В любом случае имеем

8! / (2!*6!) = (8*7) / 2 = 28. Именно этот ответ мы и получили раньше.

Обобщим! Любой элемент треугольника Паскаля можно вычислить с помощью формулы для количества сочетаний из n по k. Индекс n пишут внизу рядом с заглавной буквой С, а индекс k — наверху. Формула для подсчёта количества сочетаний равна:

n! / ((n-k)!*k!), где

n — это номер ряда треугольника Паскаля (в нашем случае равно длине слова)

k — это номер коэффициента в n-м ряду (количество выбираемых букв в слове).

Нумерация обоих индексов n и k начинается с нуля!

Вот так легко можно вычислить любой элемент треугольника Паскаля, не вычисляя предыдущие.

Например, второй элемент в четвёртом ряду равен C²₄ = 4! / ((4-2)!*2!) = 4*3 / 2 = 6.

А значит, можно вычислить коэффициент при любом слагаемом в разложении (a+b)ⁿ, не выписывая весь треугольник Паскаля до этой строчки. Удобно!

Недавно выходил материал для разработчиков 1С: https://habr.com/ru/companies/yandex_praktikum/articles/837708/

Наше решение задачи

from bisect import bisect_left

def find(a: [int], k: int) -> int:
	if not a:
    	return -1
	i = bisect_left(a, k)
	if i >= len(a):
    	return len(a) - 1
	if not i or abs(k-a[i]) <= abs(k-a[i-1]):
    	return i
	return i-1

Делимся ответом!

1. Каждый час количество жителей, знающих новость по секрету, увеличивается в одинаковое количество раз — это геометрическая прогрессия.

С 9 до 21 часов произошло 12 итераций, значит, всего было 13 членов прогрессии. Нам надо найти их сумму.

Первый член равен 2, знаменатель равен 3.

Вычислим сумму по формуле:

S₁₃=b₁(1-q¹³)/(1-q)=2(1-1594323)/(1-3) = 1 594 322.

За день больше полутора миллионов человек узнают секретную новость!

2. Теперь элементы геометрической прогрессии не увеличиваются, а уменьшаются, причём стремительно. Каждый следующий член в 1.5 раза меньше предыдущего, значит, знаменатель q=1/1.5=10/15=2/3. Это меньше 1.

У прогрессий с |q|<1 есть уникальная особенность — для них можно найти сумму всей прогрессии! Формула выглядит вот так: S = b₁/(1-q).

В нашем случае b₁=8, q=2/3, значит, S = 8/(1-2/3) = 8*3=24. Именно столько печенек чиновник съест за бесконечно долгое время в городе N. А что, не так уж и много! Коробки с 50 печеньками ему хватит с лихвой!

Он будет и в базовой, и в расширенной программе

Каждый наш курс вы можете купить в рассрочку или кредит — получится избежать оплаты сразу всей суммы.

Обновления на лендингах появятся в конце следующей недели. А нашим читателям на Хабре мы решили рассказать о новостях заранее :)

Этот опрос был частью исследования Практикума и Хабра о выгорании во время учёбы. Результаты и выводы мы собрали тут: https://studyburnout.habr.io/

Оптимальное решение
int FindSingleNumber(const vector<int>& nums) {
    	int result = 0;

    	for (int n : nums) {
        	result ^= n;
    	}

    	return result;
	}

Такой способ позволяет решить за O(n) по времени и O(1) по памяти.

Это возможно с помощью оператора XOR — исключающее ИЛИ.

Числа состоят из байтов, а байты из битов. XOR работает с битами двух чисел и возвращает в результате третье число. Операция производится поразрядно по одному биту из каждого числа.

XOR вернёт 1, если только один бит равен 1. Получится вот так:

A B C
0 0 0
1 0 1
0 1 1
1 1 0

На примере вот такого вектора: {12, 11, 12} рассмотрим что будет происходить. Покажем только 4 первых бита:

Изначально result равен нулю, значит:

0 ^ 12 — 0000 ^ 1100 = 1100

1100 ^ 11 — 1100 ^ 1011 = 0111

0111 ^ 12 — 0111 ^ 1100 = 1011

В конце получился 1011, это 11 в двоичной системе счисления.

Первое число просто присвоилось переменной result, а далее биты другого числа вычитались из него. После второго числа в переменной было число 0111 — число 7. Если бы не условие, что все числа будут повторяться дважды, кроме одного, то наличие числа 7 в векторе всё бы испортило и превратило число назад в 0. Второе повторение того же числа (необязательно даже последовательное) отменяет первую операцию. А так как одно число повторяется только один раз, то его никто не компенсировал, и оно осталось храниться в результате.

Решение задачи ↓
  1. Для любого кофе доступны 4 варианта: без молока, на обычном молоке, на соевом молоке, на овсяном молоке. 

Варианты напитка в принципе:

  • кофе без сиропа, 

  • с одним сиропом или с двумя сиропами,

  • горячий шоколад на молоке,

  • чай.

Всего вариантов:

  • кофе без сиропа: 4×7=28,

  • кофе с одним сиропом: 8×4×7=224,

  • кофе с двумя разными сиропами: (7×8)/2×4×7=784,

  • горячего шоколада: 3×2=6,

  • чая: 5.

Итого получаем: 28+224+784+6+5=1047. 

1047 дней понадобится Ане, чтобы перепробовать все возможные варианты напитков. 

Посчитаем количество дней в 3 годах: 3×365=1095. Это не на много, но всё же больше, чем 1047, значит, за 3 года Аня справится!

  1. Предыдущий ответ нужно умножить на два: 1047×2 = 2094 дня, это примерно 5 лет и 9 месяцев. Долгосрочная задача!

1

Информация

В рейтинге
1 027-й
Работает в
Зарегистрирован
Активность