All streams
Search
Write a publication
Pull to refresh
1
0
Тарасов Константин @saroff

Full stack developer

Send message
Так в том и дело, что статью я прочитал, а про 100% покрытие увидел только эти две фразы :)
Почему coverage.py работает плохо понятно, почему никаким тулзам нельзя верить на 100% думаю все и так знают, так что нам теперь, специально уменьшать покрытие тестов? Ну чтоб это, не расслаблялись.
Так а почему 100% покрытие это плохо-то?
Статья хорошая, но хочется сказать, что сколько раз я видел увлекающихся планированием людей, столько раз это было планирование ради планирования. Т.е. на самом деле это было
время на задачу + время на планирование > время на задачу

иногда это были даже замечательно организовавшие все люди, которые по итогу не успевали ничего сделать. Для себя со временем пришел к выводу, что инструменты планирования идут только во вред. Потому что наоборот, потом когда произойдет невероятно срочное «внезапно» (а происходит оно довольно регулярно), рушащее все планы, приходится проходить и через дискомфорт от того что система рушится, и возвращаться опять в режим сложно.
Т.е. мы распределяем все шансы, когда делаем свой выбор в первый раз. Как я говорил, случайным образом, делим на группы. Скажем что мы делим на группы не 1-99, а 10-50-40. И изначально можем выбрать себе только группу с 10. А потом ведущий убирает из всех трех групп не верные шары и оставляет только один, после чего мы можем спокойно поменять группу. Логично ведь, что там, где было 50 шаров, гораздо больше шанс, что оставшийся последний это верный, чем там где было 10?
Вот именно, разницы нету. Пока вы сидели в туалете, вы не делали никакого нового выбора, просто вернулись и зарбали то что было за вашей дверью. Если вы решили остаться со своим выбором — не важно, смотрели ли вы, как ведущий открывает другие двери, не смотрели, решали, не решали, это все равно что вы выбрали дверь и сразу открыли ее.
По другому говоря — мы делим шарики на группы. В первой группе 1 шарик, а во второй 99. Делим случайным образом. И ведущий нам говорит, что если вы выберете группу, в которой 99 шариков, то я уберу из нее 98 не верных и оставлю вам последний. Ясно ведь, что шанс, что верный шарик среди 99 шариков, больше чем это единственный в отдельной группе?
Нету нового выбора. Вспомните мою аналогию с шариками.
У нас есть шарик в руке. Мы выбирали его с вероятностью 1/100. Это было в прошлом и никогда не изменится.
После этого ведущий убирает из мешка 98 не верных вариантов и забирает себе последний оставшийся. Шанс, что мы оставили в мешке верный шарик — 99/100. Т.е. это шанс, что шарик в руке у ведущего верен. С этим шансом тоже никогда ничего не случится.
Теперь мы можем оставить себе наш шарик, с верностью 1/100, или поменять его на шарик ведущего, с верностью 99/100. Мы не делаем слепой выбор между двумя шариками, как в первом случае.
Есть 100 дверей, если мы выбираем одну, шанс выиграть 1/100. При этом открывает ведущий другие двери или нет, это абсолютно никак не влияет на наш шанс выиграть, он все еще 1/100.
Представьте, что вместо дверей у нас есть мешок, в нем 100 шариков, 99 пустые, в 1 приз. Мы наугад вытягиваем из мешка 1 шарик и забираем его себе. Какой шанс что он верен? 1/100. Если ведущий сейчас вытащит из мешка 98 не верных шариков и оставит там только один. Как изменится наш шанс на то, что шарик в нашей руке верен? Да никак, мы вытягивали наш шарик когда в мешке было 100, и не важно что после этого ведущий сделает, шанс всегда останется 1/100. Ведь если мы не меняем выбор, то это именно так, мы оставляем себе шарик который с шансом 1/100 верен. Мы не выбираем второй раз. Для того чтобы шанс изменился на 1/2, нам нужно было бы положить свой шарик обратно в мешок, перемешать, и потом наугад из них выбрать 1, Не зная какой мы выбрали изначально.
Каков же шанс, что после нашего выбора в мешке остался верный шарик? 99/100. После этого ведущий убирает из мешка 98 не верных шариков. Есть 2 возможных причины, почему именно этот один шарик остался в мешке 1 — Этот шарик верный. 2 — Верный шарик у нас в руке, но ведущий уже вытащил 98, и не может вытащить последний.
Чтобы произошло второе событие, при котором нам выгоднее придерживаться нашего выбора, нужно, чтобы изначально, с шансом 1/100 мы выбрали верный шарик.
При этом чтобы произошло первое событие, при котором нам выгоднее сменить выбор, нужно чтобы когда мы забирали один шарик из мешка, мы с шансом 99/100 забрали не верный, а верный остался среди прочих лежать в мешке.
Повторюсь, то, что ведущий что-то делает с остальными вариантами, когда мы уже выбрали свой, никак не может повлиять на вероятность уже выбранного нами варианта. Не изменяя свой выбор, мы не совершаем выбор второй раз с новым шансом, мы оставляем себе первоначальный выбор с тем шансом, с каким мы его доставали. Повторюсь, представьте что вы достали шарик из мешка и забрали его себе. Ведущий вынимает из мешка 98 не верных шариков и берет себе последний оставшийся шарик. После чего предлагает вам обменяться с ним шариками. Эти действия никак не могут повлиять на шанс верности шарика у вас в руке (1/100). И точно также они не влияют на шанс верности шарика в руке у ведущего (99/100), потому что именно с такой вероятностью мы, доставая свой шарик, оставили верный в мешке.
Грубо говоря, если мы меняем свой выбор, то мы вместо нашей двери, идем и открываем 2 другие двери. Открыв две двери шанс ведь больше чем открыв одну? Просто в изначальном условии ведущий нам помогает открыть одну дверь :)
Много раз объясняли, что шанс того, что вы выбрали изначально правильную дверь — 1\3. Шанс, что правильная дверь, это одна из других — 2\3. После того, как ведущий открыл одну из других дверей, шанс для вашей двери все еще остался 1\3. Шанс того, что автомобиль находится за одной из двух других дверей — 2\3. Ведущий открывает одну из других дверей, которая заведомо неверная. У нас есть две двери, шанс того, что автомобиль за одной из них 2/3, одна из них открыта, и мы знаем, что автомобиля за ней нету. Но шанс 2\3 никуда не девается.
С шансом за нашей дверью тоже ничего становится, если мы не изменим свой выбор, то вообще не обязательно открывать другую дверь, можно сразу открыть нашу, и шанс 1\3.
В обоих случаях выбираем из трех.
Чтобы было легче объяснить, представим что дверей не 3, а 100. Так вот, помните, после нашего выбора, ведущий откроет 98 дверей, которые точно не содержат приз, если мы изменим свой выбор, и в этой двери окажется приз, то это мы можем думать, что мы сразу выбрали 99 дверей и открыли их все, если в одной из них был приз, то выиграли.
Т.е. если мы не меняем выбор, это все равно что мы выбрали 1 дверь из 100 и сразу ее открыли.
Если мы изменили выбор, это все равно что мы выбрали 99 дверей из 100 и открыли их все.
Вы не правильно понимаете порядок действий, он такой:
1. Есть миллион дверей. Вы выбираете одну — шанс, что эта дверь верна 1 к миллиону.
2. Ведущий открывает 999 998 неверный дверей.
3. За одной из двух оставшихся выбор точно есть приз.
(3.5) Вы можете поменять свой выбор на вторую не открытую дверь.
4. Вы узнаете результат.

Заметьте, если вы не меняете свой выбор, то шаги 2-3.5 никак не влияют и вообще могут быть опущены. Представьте что вы сделали выбор и ушли в туалет пока ведущий открывал другие двери. Т.е. шанс остается 1 к миллиону.
Чтобы шанс был 1 к 2, порядок действий должен быть:
1. Есть миллион дверей.
2. Ведущий закрывает 999 998 дверей, в которых точно нет приза.
3. Вы выбираете из 2 оставшихся.

В таком случае нам вообще не важно сколько дверей изначально, шанс всегда 1 к 2.
В качестве варианта объяснения, почему при смене выбора вы будете выигрывать чаще, можно представить условия немножко по другому, вам дается на выбор два варианта:
1. Вместо варианта, когда вы не изменяете свой выбор, вы просто выбираете одну дверь, и ведущий сразу сообщает вам выиграли вы или нет.
2. Вместо варианта, когда вы изменяете свой первоначальный выбор, вы можете выбрать сразу две двери, если хотя бы за одной из них будет приз — вы выиграли.

Очевидно что при втором варианте вероятность выиграть в два раза больше. Такая аналогия верна, потому что после первоначального выбора ведущий говорит вам, в какой из других двух дверей точно нету приза, т.е. если мы изменим выбор, это равносильно тому, что мы изначально выбрали сразу две двери.
let таки всплывает, но не инициализируется, т.е. до момента фактического объявление переменной в коде, получить к ней доступ нельзя. Подробнее можно про TDZ почитать, например тут.
Это чашки для кофе все таки. Толстые стенки — чтобы медленнее остывало. Как я написал выше, ручки такие делают для того, чтобы мы пальцам не жглись об стенки кружки. В кружках с большой, стандартной ручкой, приходится следить, чтобы не притронуться.
Мне кажется, они сделаны так, чтобы при хвате наши пальцы не касались самой чашки, которая может быть очень горячей. Ручка остаточно толстая и не позволяет засунуть внутрь палец.
Обычно в таком случае насыпают побольше статистики.
2

Information

Rating
Does not participate
Location
Воронеж, Воронежская обл., Россия
Date of birth
Registered
Activity