Задачка на ймовірність знаходження помилок

Ви розробляєте систему протягом достатньо великого проміжку часу.
Після кожної збірки проходять паралельно автотести та мануальне тестування.

У 20% випадків автотести виявляли помилки.
У 30% випадків мануауальне тести виявляли помилки.
Мануальні тести по факту дублюють всі авто тести : якщо автотести виявили помилки — то і мануальні тести виявлять помилки, але не навпаки.

Сьогодні зранку автотести не виявили помилок.

Яка ймовірність того, що мануальні тести теж не виявлять помилок?

/ підказка — достатньо простих арифметичних операцій /

👍ПодобаєтьсяСподобалось0
До обраногоВ обраному0
LinkedIn

Найкращі коментарі пропустити

Задачка для бландінок, 50 на 50, шонеясно: або виявлять, або не виявлять.

Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

Автор, давайте вірний розв’язок, не мучте нарід.

Так, так, а де ваша відповідь? — Боїтесь помилитись?

Одне питання: Я так розумію помилки завжди є в системі?

Як бачите — «сьогодні зранку» не було в ручних тестах.

У 20% випадків автотести виявляли помилки.

Автотести виявляли у 20%
1) за умови якщо помилки насправді були,
2) чи без різниці, були помилки чи ні насправді?

ой — в автотестах, а не ручних тестах, не було «сьогодні зранку помилок».

Автор теми, ви хоч сам знаєте правильну відповідь? Якщо — так, то коли її озвучите?

сам знаєте відповідь

відповідь в мене є

то коли її озвучите

окрім пана її ще ніхто не питав) не певен що вона настільки цікава. Згодом.

Ну хоч підкажіть на скільки коментатори близькі до правильної відповіді|, чи багато думає правильно.

Мне тоже очень интересен ответ, есть несколько вариантов ответа, интересно где истина..

Дякую всім за інтерес та цікаві відповіді.

Насправді конкретна відповідь оригінальному автору була не дуже важлива, важливі були слова та позиція людини на інтервю.

Найбільшу дискусію викликала

Мануальні тести по факту дублюють всі авто тести

, і на ній справді «собаку зарито».

На мій погляд з того що тест план === авто тестам ще не слідує що ці плани хтось притримується. До того ж технічні засоби, що використовує людина, часто є іншими від автотесту.

якщо автотести виявили помилки — то і мануальні тести виявлять помилки,

 — на мій погляд це може бути через «дублювання» і наприклад, через перетертість кабелю між сервером БД та веб сервером.

Звертаю також увагу і на час у твердженнях: мануальні тести дублюють, а автотести виявляли.

Отже, якщо б я ставив гроші, то я б виходив із 7/8.

Ось оце — погана практика, коли дають задачку на форумі, а через тиждень виявляється, що відповідь на неї «є не дуже важливою оригінальному автору», а «неоригінальний» автор теми зараз каже що у нього є лише припущення...

так там по условию было видно, что это риторческая задачка

Наведіть, плз, конкретні цитати, по чому ви бачили, що це «риторична задачка».

не приведу, ибо, для меня это было видно в общем и целом, можно сказать опыт который позволяет видеть «XYZйню» и который сразу подсказывает, а стоит ли вообще серезно относиться к этому или нет.

Да я уже неделю кричу людям, что их «тренируют», а мне не верили)

Задача некорректна по суті.
Що значить -
у 20% випадках автотести виявляли помилки-
— якась нелогічна хрєнь.
За один прогон тестів- можна ж знайти більше ніж одну помилку.
Наприклад тестів- N штук..
І що далі, це означає, що автотести знаходять 20% від N помилок?
Значить, це строга залежність і імовірність тут ні до чого.
Я вважаю що зараз усі міркування ведуться на тлі подібного до: «якщо припустити, що білий несподівано став чорним, то тоді у Альдебаранца Брехлівіуса вуса відросли б зелені чи в крапку?» І Ось, шановні, ви ламаєте списи, хоча ніхто з вас навіть не замислився а чи є на Альдебарані Брехлівіус та чи вирощує він вуса?

Що значить -
у 20% випадках автотести виявляли помилки-
— якась нелогічна хрєнь.

Это значит, что при количестве запусков автотестов приближенной к бесконечности, в 20% запуск завершался ошибкой.

За один прогон тестів- можна ж знайти більше ніж одну помилку.

Это не относится к задаче.

Наприклад тестів- N штук..

Это тоже не относится к задаче.

І що далі, це означає, що автотести знаходять 20% від N помилок?

Нет, Это означает, что все автотесты не проходят в 20% случаев. Вы подменяете понятия. Выше вы писали, что тестов N штук, а теперь пишите, что N уже ошибок. Ошибка и тест это совершенно разные понятия.

Вы подменяете понятия.

Нет, видимо спешил -имеется ввиду, автотесты находят ошибки в 20% случаях от N тестов.

Имеется ввиду, не что 20% тестов фейлятся, а то, что примерно каждый пятый запуск автотестов находит ошибку(или несколько). Потому, что одно из условий задачи:

Сьогодні зранку автотести не виявили помилок.

То есть это задача не о способностях разных видов тестировщиков, а все- таки о свойствах самой тестируемой системы? Какое-то странное ПО, что дает 30% ошибок на протяжении бесконечного времени) Более логично было бы считать, что это задача о способностях тестеров. Так как реальное ПО все время меняется -дописывается , переписывается , фиксится- не может быть строгой вероятности. А если тестер Вася способен находить лишь 20% ошибок- то это может быть константой)

Задача на логику наверное.. Ведь в реальности никаких 20% и 30% не бывает..

Ну если на логику, то давайте посмотрим:
1) Если бы не было условия,(что мануальные дублируют автотесты — и если автотесты находят ошибку то находят и мануальные, но не наоборот)- то ответ бы был скорее всего 0,56(0,7*0,8)
2) Но поскольку — это условие есть- то его можно понимать по разному:
а) выборка мануальных тестов на 10% больше, чем выборка автотестов и включает их в себя, тогда ответ:
0,9 -
Решение Алексей Пение- приводил ниже.
б) множество тестов одно и тоже, просто мануальщики могут ошибаться ,а автотесты нет:
тогда решение будет:
Автотестирование — идеальное (иначе количество вариантов существенно увеличивается). Поэтому оно проявляет ли в системе ошибки (Err) или нет (Ok). Таким образом вероятность Err — 1/5, вероятность Ok — 4/5.
Мануальщик может ошибиться. Пусть ошибка человека это событие А, а реальная правота — событие не-А.
Когда человек скажет, что в системе есть ошибки? В двух случаях. Или когда человек не ошибается и в системе самом деле есть ошибки, или когда она ошибается, а в системе ошибок нет. Поэтому событие «Человек сказал что ошибка», назовем ее С, равна:

С = Ok * А + Err * не- А

Пусть вероятность события А равна x: p (A) = x. Поскольку события, составляющих событие С несовместимы, то для вероятности события С имеем уравнение:

p © = p (Ok) * x + p (Err) * (1 — x).

Известно, что р © = 3/10. Поэтому ищем х:

3/10 = 4/5 * х + 1/5 * (1 — х)

3 = 8х + 2 — 2х

6х = 1

х = 1/6.

Если система в норме (Ok), и мануальщик подтвержденно говорит, что она в норме.
D = не-А * Ok
Найдем вероятность этого события.
p (D) = p (не-A) * p (Ok) = 5/6 * 4/5 = 20/30 = 2/3 Это мой ответ!
3) Есть еще 3-е решение, которое большинство написало 7/8.
Почему то решили, что события зависимы, хотя они параллельно происходят, и я не считаю, что они зависимы.

А якщо p(Err) = 0.5, p(OK) = 0.5, C = 0.6? ) Ну тобто у 50% авто виявили помилки, у 60% — мануал. Чому дорівнює х тоді?)

Так, не портите мне малину))

Это означает ,что мануальщики не нужны.)

Это не ошибка, при принятии тех условий задачи, которые я записал выше:
будет что-то вроде:
p(x) = 2 ErrC — Err— C + 1
Это — поверхность второго порядка «гиперболический параболоид» повернута сдвинута относительно начала координат. Необычайная она тем, что, во-первых, имеет так называемую «седловину», а во-вторых состоит из прямых линий, хотя и является сама криволинейной. Именно седловина приходится на область определения наших переменных Err и C. Именно поэтому при значении Err = 1/2 мы получаем постоянное значение для р (x), не зависит от C:
p (х) [p = 1/2] = 2 * (1/2) * C — (1/2) — C + 1 = C — C + (1/2) = 1/2.
Интерпретировать этот результат можно так, что когда система равновероятно может иметь ошибку, или не иметь ее, то тогда проверяющий сделает ошибку ровно в 50% случаев, независимо от того, с какой вероятностью он будет угадывать состояние системы.)
Хотите, можете назвать это «парадоксом De Money» — «существуют ситуации, когда по большой фени сколько ты прикладываешь усилия к тому, чтобы быть правым — ошибка все равно подстерегает тебя».:)

Спасибо) Если мне потребуется перегрузить мозг, я буду читать Ваш коммент))

количестве запусков автотестов приближенной к бесконечности, в 20% запуск завершался ошибкой.
За один прогон тестів- можна ж знайти більше ніж одну помилку.
Это не относится к задаче.
Наприклад тестів- N штук..
Это тоже не относится к задаче.

Почему вы так решили? Вы невнимательно читаете условия?
Сказано- виявляли помилкИ, а не запуск завершался ошибкой(одной).
В реальности же не все баги фиксят потом, часть перейдет на следующий запуск тестов.
И не получится в реалии 20% на бесконечности -задача высосана из пальца..
Если это все так, как вы говорите, тогда подумаем.
Вообще желательно автора задачи послушать, он небось сидит и смеется над всем этим топиком)

Я думаю это больше задача на логику, а не практическая.

Вообще желательно автора задачи послушать, он небось сидит и смеется над всем этим топиком)

Или думает — ничего себе они замудрили, не буду отписываться, что бы не подумали, что дурак ))

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

Ну так статистика бралась же не за один тест, тобто залишок непофікшених помилок враховується.

Хм, хоча я теорії ймовірності не вчив взагалі, але мені здається відповідь очевидною: ймовірність, що ручні тести виявлять помилки, залишається незмінною — на рівні 30%, тобто ймовірність проходження тестів без помилок залишиться в межах 70%.

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

Наступні наведені додаткові умови в задачі, здається, взагалі не впливають на те, що питає задача:
— автотести у 20% виявляють помилки
— автотести дублюють ручні тести
— автотести не виявили помилок «сьогодні зранку».

Мне вот интересно, если в условии поменять 20% на 80%, а 30 на 90, то все, кто утверждал что правильный ответ 1/10, будут давать такой же ответ и при этих условиях?)

Давай уберем проценты и сделаем равномерное распределение. При бесконечном количестве опытов, модель становится гладкой и убираются неровности. Скажем что в приложении ровно 100 багов. 80 багов нашли автотесты, ещё 10 новых багов нашли мануалы. Еще 10 багов не покрыты тестами. Итого, Какова эффективность мануал тестов если автотесты уже отработали ? Правильно, найти все теже 10 багов из 100

причем тут вообще баги? Множество, на котором считаются вероятности — это дни. Вообще неважно сколько там багов. Грубо говоря, из 1000 предыдущих дней 800 дней автотесты падали, и 900 дней падали мануальные тесты, и при этом если автотесты падают, мануальные всегда падают. И вот сегодня такой день когда автотесты не упали, а мануальные еще не запускали, предположим. И уже зная, что автотест не упал, какая вероятность того что мануальные тесты не упадут в данном случае?

Что такое 1000 800 900 и причем тут вообще преведущие дни опытов, если имеет значение только процент срабатывания из задачи выше ?

процент срабатывания — это и есть количество дней в статистическом измерении.

Всеравно не понял откуда взято число 800 900 или 1000.
Вы чтото себе выдумали с потолка, думается мне.

Мне вот интересно, если в условии поменять 20% на 80%, а 30 на 90, то все, кто утверждал что правильный ответ 1/10, будут давать такой же ответ и при этих условиях?)

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

У 20% випадків автотести виявляли помилки.
У 30% випадків мануауальне тести виявляли помилки.
якщо автотести виявили помилки — то і мануальні тести виявлять помилки

Либо вероятности поменяйте местами в первом случае, либо автотесты на мануальное измените во втором случае.
Спасибо.

Зачем дублировать автотесты мануальными тестами?

Чтобы по факту провести те же автотесты, а денег за это взять как за мануальное. Ничего-то вы в менеджменте не понимаете. 8-я картинка.

Потому, что автотесты криво написаны, и

У 30% випадків мануауальне тести виявляли помилки.

Бачу, задача виявилася занадто простою, що можна легко підігнати цифри під «вірний» результат. Приблизимо до реальності: нехай мануальні тести дублюють не всі автотести, а лише 75% — зможете вирішити?

Як вирішували будете розкривати, чи просто застосували першу ліпшу формулу?

Все просто:
Автотесты и мануальные тесты видят ошибку — 15%
Автотесты видят ошибку, мануальные нет — 5%
Автотесты не видят ошибки, мануальные видят 15%
Ни авто, ни мануальные тесты не видят ошибки 65%

Условие «автотесты прошли без ошибок» оставляет нам последние два сценария (15%+65%), из которых только в последнем (65%) мануальные тесты не увидят ошибки.

ответ 65%/80% = 13/16

Но почему делим на 80%? Если условие говорит «автотесты прошли успешно», это говорит о свершившеся факте. О событии, произошедшем со 100% долей вероятности.

Мы не имеем права менять условие, и говорить что сегодня утром произошло событие с 80% вероятностью. Кот Шрёдингера перестаёт быть таковым как только вскрыли его коробку. Вне коробки эта сущность не существует.

Могу сказать о чём цифра 13/16 — это относительная вероятность.
Вероятность события «Мануальные тесты пройдут» на 13/16 состоит из вероятности «автотесты пройдут», и соответственно на 3/16 из «автотесты не пройдут».

Никто не меняет условие. Просто вероятность — это довольно сложное понятие. 80% — это априорная вероятность что автотесты пройдут, а 100% — апостериорная, после того как они прошли. 13/16 — апостериорная вероятность что пройдут мануальные если мы уже знаем что автотесты прошли.

Вероятность события «мануальные тесты пройдут» — на 0.8 состоит из вероятности 13/16 (при условии автотесты пройдут) и на 0.2 из вероятности 1/4 (при условии что мануальные не пройдут). Можно убедиться что 0.8*13/16 + 0.2 * 1/4 = 0.7

попробую объяснить яснее. Давайте представим себе что мы повторили эксперимент сто миллионов раз.
Тогда (приблизительно)
Автотесты и мануальные тесты видят ошибку — 15 млн раз
Автотесты видят ошибку, мануальные нет — 5 млн раз
Автотесты не видят ошибки, мануальные видят 15 млн раз
Ни авто, ни мануальные тесты не видят ошибки 65 млн раз.

Соответственно если мы про один эксперимент знаем что в нем автотесты прошли — то это может быть любой из 80 млн экспериментов. И в 65 млн из этих экспериментов — мануальные тесты пройдут. Значит вероятность того что они пройдут — 65/80, то есть 13/16.

У меня друг математик, у него вышло тоже 13/15, правда..
Это становится интересно- уже 4 варианта решения задачи))

В этой ветке мы немножко модифицированную задачку обсуждаем. В немодифицированной у меня 7/8 ответ.

Кореляція — ніколи про таке не чув?

Мануальні тести по факту дублюють всі авто тести : якщо автотести виявили помилки — то і мануальні тести виявлять помилки, але не навпаки.

Самый спорный момент, ведь человеку проще допустить ошибку. Но если упустить, то остается 10% на ошибку, или 90% на успех. Такая элементарная математика заставляет задуматься, нет ли в задаче подвоха

В этом вся сложность задачи. Люди не верят, что подвоха нет, что самый очевидный ответ — правильный.

Вот так можно расписать.
За рассматриваемый в задаче элементарный исход выбираем срабатывание ручного теста и не срабатывание автоматического. Так как в 20% случаев сработали автоматические, а в 30% — ручные, а ручные дублируют все автоматические (всегда срабатывают), то только в 10% случаев срабатывали ручные при условии, что автоматические в них не срабатывали («при условии» — это не причинно-следственная связь, просто одновременно происходящие вещи). Следовательно, статистическая вероятность того, что сработали ручные при условии, что не сработали автоматические 0.1. Вероятность противоположного события — не сработаю ручные при том же условии = 1-0.1=0.9

Математически — да. Психологически гораздо сложнее: людям очень сложно даётся брать ответственность за решение целиком на себя. Им нужно авторитетное мнение, пусть даже и неправильное, но авторитетное. То, за которое нет наказания. Математическая формула, притянутая из чуть другого случая, прекрасно это мнение имитирует.

На самом деле в этой задаче есть неочевидный нюанс: то самое «при условии». Вот если бы вероятность была не 100%, эту цифру бы заметили как входные данные, и соответственно дали бы ей правильное имя: коэффициент корреляции. И применили бы правильную формулу подсчёта через корреляцию.

В реальных случаях эта цифра редко бывает 100%, она от −100% до +100%.

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

Если построить корреляционную таблицу, то для исхода 0 ручн при условии 0 автом, получаем 00 — 0.7 деленное на сумму для 0 автомтич, т.е. 0.7/0.8 = 7/8. Если не выдвигаем условия в которых появляется событие 00, то его вероятность 0.7 (и то и то не нашло ошибок). Можно еще поиграться с подсчетами и доказать, а зависимы или независимы события нахождения ошибок автоматич или вручную, на основе предполагаемой нами таблицы., которая оторвана от жизни
ручн. \ автоматические
| 1 | 0 | сумма
1 | 0.2 | 0.1 | 0.3
0 | 0 | 0.7 | 0.7
сумма | 0.2 | 0.8 | 1
Проблема с ситуацией 01, для которой поставили 0, хотя там число отличное от нуля д/б.

Для гениев, заменяющих красивыми формулами логику:
Меняю условие. Мануальные — 100%, автотесты — 90%. Вполне реальная ситуация.
Ваш ответ?

Как уже ответил ниже — если мануальные валятся в 100% случаев как может быть отличный от 0 результат их успешного прохождения %) (чисто с мат.точки зрения)
ПС: о! в данном случае у нас скорее всего расхождение в понятиях — оперируя вероятностью, мы (то есть я) предполагаем, что есть какая-та вполне определенная закономерность, которая имеет эту самую вероятность. Как данность. Саму вероятность точно вычислить можно в двух случаях — либо если мы имеем точную мат.модель, либо если имеем бесконечно длинную последовательность наблюдений. В данном случае ни то, ни другое. Именно поэтому математика в виде базовой теории вероятностей хороша, но не совсем. В данном случае имеем конечную последовательность событий, которые пытаемся предсказать. А это уже нечто большее, чем просто теория вероятности. Так как тогда нужно еще оценивать, насколько точны исходные данные, качество тестов, учитывать поведение во времени, пытаться вычислить тренды всякие и учесть всякие доп.факторы... И результат при малых выборках — обычно не одно число, а доверительные интервалы/доверительные вероятности (как вспомню, так вздрогну ). Еще чуть-чуть и на кандидатскую тема потянет %)

Еще чуть-чуть и на кандидатскую тема потянет

По философии — запросто.

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

По самой задаче: заметь слово виявляли. Прошедшее время. То есть конкретный набор входных данных отличается от тех на которых набрана статистика, и соответственно на конкретном наборе данных ситуация может отличаться от 0. Неизменными являются тесты. Но по условию «зранку» конкретный набор данных показал данные отличные от предсказания, что не делает неверными предсказания, лишь говорит о единичном факте. В остальном требуется применить предсказание и посчитать вероятность.

100% мануалки — точно так же являются статистическим предсказанием. Но по условию, они на 90% состоят из автоматики, которая как мы знаем, с утра показала 0% вместо предсказанных 90.

Но по условию, они на 90% состоят из автоматики

Или на 20/30= 0.666(6)? :)
Тут тоже философский вопрос- отнимать или делить.
Если оба тестирования идут

паралельно

Гугліть decision theory. А ваша «теорія» виглядає взагалі нефальсифікованою.

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

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

Вероятность последовательности — да. Но вероятность события 10-го броска никак не может зависеть от результата предыдущих 9. Однако казино остались бы без львиной доли дохода, если бы люди перестали верить в альтернативные теории.

Тем не менее не было 100 подряд красное никогда в реальном казино)
Официальный рекорд на живом столе был 23 красное, 22 раза черное, насколько я знаю. Что вписывается.
Опять же- это философия. Как на это смотреть, или на последовательность или на просто независимые броски.
Люди проигрывают не из-за того, просто 23 розыгрыша не дадут поставить лимиты казино, постоянно увеличивать ставку в 2 раза. Ну выиграешь первоначальную ставку мартингейлом даже если, и что? Поставить и рискнуть на десятки тысяч, чтобы выиграть доллар?) Во-вторых казино берет себе 1/37 за счет зеро. И это основной их доход.

Тем не менее не было 100 подряд красное никогда в реальном казино)

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

И что? Естественно не было, но остальные нас не интересуют)

Что выпадет при очередном броске, не зависит от предшествующей последовательности. И для Мартингейла все равно, необязательно ставить все время на один и тот же цвет, можно в разнобой. Мартингейл все равно не работает хоть так, хоть эдак. Вернее, работает, если у игрока бесконечное количество денег. Но зачем ему тогда играть?

Никогда?
О какой размерности идет речь?
Я писал емулятор случайных собитий, чтобы промониторить статистику
(Когда-то у меня было другое понимание про предел одинаковых последовательностей)
И нет никакого предела, может быть спокойно и 100раз подряд Черное
Вопрос лишь только в количестве проведенных событий
Результат прошлых событий, абсолютно никак не влияет на последующие, если их природа имеет случайный характер

В реальном казино не может. Потому что там не случайный характер. Играет роль, как крупье кидает шарик, геометрия стола,.его покрытие, перекос плоскости вращения, сила трения ,вес шарика и пр.

Чем больше етих параметров, тем болие случайный будет результат

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

И какое количество нужно ,чтобы 100 черное попалось? Небось несколько миллиардов испытаний?

Комбинаторика в помощь
Если не изменяет память, это будет размерность 2 в 100степень, деленое на 2

Ты хоть представляешь ,что это количество больше, чем звезд во вселенной)
То есть мы можем пренебречь исчезающей малой.

Возвращаясь к твоему коменту
Что хоть и зафиксировано было как ты пишешь 23 подряд одинаковых собитий максимум
Когда случится такое в след раз, вероятность того что оно повторится 24й будет ровно 50%
Как бы ты не думал что если таково факта не наблюдал еще то ето маловероятно
Ето маловероятно только если вести счет с 0
Но если ты ужетнаблюдаешь 23 подряд
То шансы на 24й будет 1 к 2

теорвер и статистика такая фигня, что все зависит от точки зрения)
Если мы, например, сгруппируем все события попарно по 2. И знаем уже что один в какой-то паре событий черный, то вероятность того, что оба будут черные 1/3.

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

sdb=# with t as (select d, case when random()<0.2 then 1 else 0 end as ad from 
generate_series (1, 1000000) as d (dates) 
) 
select ad, md, grouping(ad, md), count(*) as cnt_d from 
  (select d, ad, case when ad = 1 then 1 else case when random()<0.125 then 1 else 0 end  end as md 
    from t) 
tests group by rollup(ad, md);

 ad | md | grouping | cnt_d
----+----+----------+---------
  0 |  0 |        0 |  699899
  0 |  1 |        0 |   99745
  0 |    |        1 |  799644
  1 |  1 |        0 |  200356
  1 |    |        1 |  200356
    |    |        3 | 1000000
(6 rows)

ad = 1 — автоматическое тестирование выявило ошибку
md = 1 — ручное тестирование выявило ошибку
cnt_d — количество определенных комбинаций

Я так понимаю, что требуется пояснение.
В запросе я написал

when random()<0.125

это условие генерирует 1 с вероятностью 1/8, надеюсь, понятно почему)
Статистическая вероятность обнаружения ошибки ручным тестированием — 0.1, а невыявления ошибок в случае если автоматические тесты не выявили — 0.7 — самая первая строка с нулями.

Как добавить немного шизы в задачку для 11го класса? — Запостить ее на форум фулстек девелоперов бгг

вот вам конспирация:
ТК пишет

якщо автотести виявили помилки — то і мануальні тести виявлять помилки, але не навпаки.

возможно если случаи когда Мануальные не нашли ошибки, а Автотесты нашли (если окружение поменялось, или human failure или еще что)

тк набросил, а мы хаваем

Из мешка достают коробочки, черные и белые. В черных всегда приз, в белых — только в одной из восьми. Вероятность вытащить черную коробочку — 20% (автотест нашел ошибку). Но это неважно, так как сегодня все вытащенные коробочки — белые. Какова вероятность того, что все они пустые? (7/8)^n, где n — количество коробочек. Это если задача поставлена корректно, и сегодня все как всегда. Если что-то поменялось, то вероятность 50% — высшая степень неопределенности, мы ничего не знаем.

На довбаном пікабу навіть задачки цікавіше! cs8.pikabu.ru/...​6/1493110178123951435.jpg

Ну не знаю, с Грефом и Балмером я б не полагался на математику. Вот экспериментец бы, с электродами в нижнее полушарие мозга...

А про наркоманов я ответ знаю. Результат — вышеупомянутые тесты :)

Звісно, задача суто теоретична. Бо на практиці все інакше — ці тести не можуть пройти паралельно.
Я зазвичай дуже серйозно ставлюся до таких задач на публіку: вони показують наскільки САМОВПЕВНЕНІ люди, і наскільки заради власних понтів здатні завалити навіть саму просту задачу. Що вже казати про складні.

Показую на пальцях: «мануальні» тести де-факто дублюють «автотести». Тобто, я можу стверджувати, що мануальні складаються із двох НЕЗАЛЕЖНИХ груп тестів, одна з яких де-факто (за качиною типізацією) є «автотести», відповідно інша нехай називається «не-авто тести». Тобто, група «не-авто тести» додає незалежних 10% спрацювання. Підкреслюю, незалежних.

Відповідно, ці 10% будуть спрацьовувати незалежно від того, як змінилася поведінка групи «автотести». Навіть якщо вона зараз взагалі перестала помічати помилки, які раніше помічала.

Правильна відповідь — 90%. І мене дуже дивує чисельність людей, що шукали (і знайшли) подвох. Я навіть припускаю, що той хто ставив задачу, також «додумав» умову до стану подвоху, і відповідно визначив відповідь 90% як невірну. Сотні разів стикався з таким у тестах для людей.
______________________
Показую, чому відповідь 7/8 є невірною. Умова:
У 20% випадків автотести виявляли помилки.
У 30% випадків мануауальне тести виявляли помилки.

Тобто, мова йде про НЕЗАЛЕЖНІ випадки, тобто незалежні ділянки коду, які будуть тестуватися тестом А та тестом А+Б.
От як формально виглядає масив отриманих даних, скажімо із 10 елементів.
Тест А = [0,0,0,0,0,0,0,0,1,1]
Тест А+Б = [0,0,0,0,0,0,0,1,1,1]
Відповідно, якщо тест А пройдено, маємо:
Тест Б [0,0,0,0,0,0,0,1,0,0]

Відповідь 7/8 була би вірною, ЯКЩО не було би умови «Мануальні тести по факту дублюють всі авто тести». Акцент на слові «всі». Це дуже важливий предикат у формальній логіці.

А почему Вы решили, что 10% полностью независимы от 20%? Да, первая мысль была такой, но подумав и раскинув — я не нашел в условии задачи того, что указывало бы на это. Одна ошибка вполне может валить два теста — один из группы А, второй из группы Б. Более того, вполне может быть, что если не проходит тест из А, то будут наверняка валиться некоторые тесты из группы Б. В условии об этом ничего, как и про обратное. Но это не значит, что нужно самому додумывать — просто из-за того, что меньше определенности на входе — ее меньше на выходе. Да и не вижу я тут так много «самовпевнених» — народ развлекается и почти никто не возводит свои рассуждения и ответы в степень абсолюта :)

Потому что это условие. Я не просто так акцентировал на слове «случай». Это и говорит о непересечении. Случай — величина дискретная. Если бы мы говорили о вероятности срабатывания теста на неком наборе данных, то расчёт шёл бы именно по вероятности, то есть одна ошибка могла бы быть ответственной за все срабатывания.

У нас же грубо говоря, мануальное тестирование выбивает 3 из 10, автоматическое 2 из 10, притом [это условие] 2 срабатывания мануалки из трёх СТРОГО СООТВЕТСТВУЮТ (то есть совпадают) срабатываниям автомата. Иными словами, мануалка [с точки зрения теста как чёрного ящика] содержит копию автоматики + свой набор тестов.
Поскольку набор тестов является чёрным ящиком, то абстрагируемся от набора, и будем считать что есть ОДИН тест А — автоматический. Тогда мануальный будет состоять из двух независимых наборов, А+Б.

Кстати, эта независимость — условна. Всё что мы о ней знаем, что набор Б увеличивает общую вероятность срабатывания на 10% по отношению к исходному набору.

Давайте упрощу:
Есть поток исходного кода. Когда вы провели на нём автотесты, они покажут 20% косяков.
А теперь вы проводите мануалку, но... раздельно: сначала дубликаты автотестов — они покажут 20%. А потом уникальный набор остальных — и он покажет ещё 10% сверху, и эти 10% не являются частью тех 20. Потому что таково условие — общий результат будет 30% случаев.
А теперь вы провели автотесты, ИСПРАВИЛИ все косяки которые там были найдены, и соответственно эти 20% уже не срабатывают. Но есть ещё +10% которые добавлялись мануалкой. Снова подчёркиваю, +10% случаев, а не +10% общей вероятности. То есть исправления сделанные для автотестов НЕ МОГЛИ повлиять на эти +10%, поскольку они являются отдельными СЛУЧАЯМИ, которые НЕ ловились автотестами, но ДА ловились мануалкой. Соответственно исправить, вмешаться в эти отдельные случаи вы не могли — автотест вам их не показал, и вы не полезли их править.

Так что единственно возможный ответ — остались 10% случаев непойманными. Следовательно, 90% случаев пройдут оба набора тестов. Что впрочем не говорит, что в них нет ошибок :)

Ось програма, що це просто тестує в лоб cpp.sh/76ka
Вкажіть там помилку, будь ласка. І краще ще виправлену версію дайте. Це набагато коротше та швидше за ваші простирадла ;) Ні я десь розумію та підтримаю понакидати, але треба й міру знати.

Просто порівняйте ЩО САМЕ вас запитали в умові, а що порахували ви.
І просто оцініть наскільки небезпечним може бути ваш код, якщо навіть у такому простому завданні ви зуміли підігнати результат та заховати його у простирадло коду, замість власне вирішити задачу.

На місті вашого керівництва я би перевірив всі проблемні випадки по вашому коду за останні пару років, особливо якщо це якимось боком стосується фінансів. У разі виявлення бодай однієї підробки даних — просто замовити ментам, але за тими ж принципами якими скористалися ви: покарати (та виплатити гонорар виконавцям) виключно якщо письмово визнаєш провину.

По самій програмі: ви тупо поділили дані із ймовірністю 0.7 на дані із ймовірністю 0.8, і таким чином підігнали під завдані 7/8.

Порахуйте скільки буде 1 — chanceManualWhenNoAuto, тобто те що вимагалося за умовою, але
chanceManualWhenNoAuto визначити як manualWhenNoAuto/total

На місці вашого керівництва я б перевірив, чи ви пишете код взагалі. =)

ви тупо поділили дані із ймовірністю 0.7 на дані із ймовірністю 0.8

В якому рядку? ;)

Порахуйте скільки буде 1 — chanceManualWhenNoAuto

рядок 71
Ви не розумієте, чому треба ділити на noAuto, а не на total?

Я розумію що «ймовірність» має обчислюватись як кількість потрібних подій відносно загальної кількості випадків.
З якого дива ви вважаєте, що застосування автотестів має виключати якісь дані із набору для мануальних?

Припустимо, автотести знаходять 100%, а мануальні — 90%. Яка ймовірність тоді? Моя — все ще 90%. А ваша?

Такі відсотки порушують дві умови задачі і це можна побачити, погонявши ту програму.
Перша:

якщо автотести виявили помилки — то і мануальні тести виявлять помилки

Друга:

Сьогодні зранку автотести не виявили помилок.

Показово, що нема відповідей на питаннячки)

О, тролінг пійшов. Як очікувано :)

Де саме порушення? Я не бачу. Є контент із 100% помилок. Автотести знаходять 90%, мануалка всі. Грєбці на галєрах працювали всю ніч, і до ранку виправили ті помилки що знаходять автотести.

Питання до вашої програми — чому дорівнює ймовірність знаходження випадку без помилок мануалкою? Моя відповідь — 90%. Відповідь вашої програми?

тролінг пійшов. Як очікувано :)
Припустимо, автотести знаходять 100%, а мануальні — 90%
Автотести знаходять 90%, мануалка всі.

lolwut?

Что мне больше всего «нравится» в некоторых (да что там, в абсолютном большинстве) QA -
непреодолимое желание всё усложнить, отоверинженерить, на ровном месте создавать запутанные расчёты, и это помимо изобретения всё новых и новых аббревиатур и «стратегий и подходов» в тестировании.

Maybe they’re compensating for something ©
или, если по-нашенски — надуть щеки, создавать Важность и Значимость ©(тм) всей этой шебуршни и «процэсов и методологий», напрочь отрицая KISS.

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

Особенно это интересно слышать от QA) Или вы «не такой»?)

О, правильно!

2 из 10 тестов не проходят автоматических тестов, 3 из 10 — ручных, из них 2 соответствуют автоматическим. Если автоматические прошли, то это был один из 8, из этих 8 только 1 упадёт при ручном тестировании, значит вероятность прохождения — 7 / 8, или 87,5%.

А кто вам таки сказал, что 2 из 10 случаев отсекаются как истинно совершенные, и не могут упасть на мануалке? В условии сказано только о вероятности. Нигде не сказано, что ОДИН И ТОТ ЖЕ случай не может к примеру завалить все тесты.

Никто. Прямо в условии сказано обратное.

якщо автотести виявили помилки — то і мануальні тести виявлять помилки

Средний результат будет таки 0.9, и я это проверил на коде предоставленном ниже в комментах. Тестилось на наборе случайных чисел, в последовательности длиной 100 000.

Да вы че, прикалываетесь все?
Статистическая вероятность успешного прохождения обоих тестов — 0.7, а если брать только выборку, в которой автоматические тесты завершились успешно, то вероятность того что ручные тоже завершатся успешно — 0.875.

sdb=# with t as (select d, case when random()<0.2 then 1 else 0 end as ad from 
generate_series (1, 1000000) as d (dates) 
) 
 select  md, grouping(md), count(*) as cnt_ad0 from 
 (select d, ad, 
      case when ad = 1 then 1 else case when random()<0.125 then 1 else 0 end  end as md 
  from t) tests 
  where ad=0 group by rollup( md);
 md | grouping | cnt_ad0
----+----------+---------
  0 |        0 |  700059
  1 |        0 |   99865
    |        1 |  799924
(3 rows)
700059/799924 ~= 0.875.

А почему вы делили 700059/799924, когда надо было 1 — 99865/1000000 ?

Всегда удивляло это стремление показать «красоту» решения, чтобы потом подогнать цифры под нужный ответ, вместо того чтобы получить реальную цифру.

СПРАШИВАЕТСЯ: вероятность того, что мануальные тесты пройдут без ошибок. Мануальные тесты осуществляются на полном наборе, в данном случае из 1 000 000. А значит мат.ожидание получается как отношение количества пройденных (в вашем случае это 900135) к общему (1 000 000).

Единственный случай получить 7/8 — это вручную подобрать нужные цифры из сушествующих так чтобы практика совпала с «теорией».

Тут вопрос только в том что принимать в качестве полной группы событий. Я же показывал распределение различных сочетаний событий уже, там вероятность того что мануальные тесты пройдут без ошибок — 0.7.
Я не понимаю этих обвинений в подгонке, это эксперимент с заданными вероятностями, я могу его хоть каждую секунду запускать))

В качестве полной группы событий понимать полную группу событий. Даже специально в условии написали — тесты проходят параллельно, то есть независимо.

Обвинение в подгонке результата — то что ты взял нужные тебе цифры чтобы получить заранее известные тебе 7/8. Хотя цифры 8 в знаменателе у тебя не должно было оказаться.

Я больше скажу, представь себе что мануалка имеет иную корреляцию с автоматом, и покрывает его не на 100%, а скажем на 97%. Надеюсь ты не считаешь, что такая задача нерешаема? Притянуть за уши ответ здесь будет посложнее :)

Вообще ничего сложного, полная группа событий будет корректироваться не на 20%, а на 20*0.97. А к вероятности того, что мануальные тесты обнаружат ошибки, добавится еще 0.03.

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

Но в задаче спрашивается не это! В задаче спрашивается какая вероятность ПРИ УСЛОВИИ что тесты завершились успешно. Ты не знаешь что будет в другие дни, ты знаешь что случилось этим утром. Уже случилось. С безусловной вероятностью, 100%.

С безусловной вероятностью ответ будет 0.875, так как события, при которых в 20% случаев мануальные тесты могут завершиться выявлением ошибки, просто не могут произойти, их просто нет, это значит что полная группа событий должна корректироваться на 20%.
P.S. корректировал чтобы постараться точно сформулировать. В условиях задачи статистическая вероятность и речь идет и статистике выполнения тестов. Если автотесты уже завершились и выполнились успешно, это значит, что у нас уже на 20% меньше потенциальных вариантов завершения мануальных тестов, и эти 20% исключают именно случаи выявления ошибок.

Ладно, есть массив входных данных
[a0,a1,a2,a3,a4,a5,a6,a7,a8,a9]
его параллельно (по условию) подали на мануальное тестирование, и на автомат. Автомат ошибок не нашёл. Мануалка нашла ошибку в a6.
КАКИЕ ИМЕННО данные ты предлагаешь исключить из этого массива, и на каком основании?

))
вообще не об этом речь, никакие данные не исключаются.
Я могу такую аналогию привести. ДОпустим, есть сайт badforecast.com и evenworseforecast.com. Первый предсказывает погоду и прогнозы сбываются с вероятностью 30%, а у второго — 20%. Если у второго прогноз оказывается правильным, то у первого тоже правильный. Если известно что у второго сайта прогноз неправильный в какой-то день, то какая вероятность что у первого прогноз не сбудется тоже?

Задача сильно притянута за уши, но с точки зрения теорвера вполне допустима.

Ответ 90%. Посчитан через коэффциент корреляции, то есть событие «прогноз 1 сбудется» на 20/30 состоит из «прогноз 2 сбудется», на 10/30 из «прогноз 2 не сбудется». Если прогноз 2 не сбылся, то составляющая c коэффициентом 20/30 равна 0. Остаётся +10/30 от 100%. Поскольку ты сам задал в «если известно» что прогноз 2 не сбылся.

Объясняю: свершившийся факт не позволяет применить к нему вероятность. Для свершившегося факта вероятность 100/0, а не 80/20. Однако вероятность может быть применена для других вычислений, там где достоверных данных нет. В частности, для вычисления корреляции и применения её к ДРУГОМУ событию.

Корреляция — это та тема, которую надо учить при анализе линейно зависимых событий. Для нелинейных зависимостей новый функционал не изобретают, просто вычисляют функцию от исходных данных по которой корреляция будет линейна.

OMG, ладно, последняя попытка и я сдаюсь.
Почему в запросе

(select d, ad, case when ad = 1 then 1 else case when random()<0.125 then 1 else 0 end end as md
from t)

я генерирую случайную величину с вероятностью 1/8, а в результате в итоговом распределении для этого случая (т.е. ручное тестирование выявило ошибку) получается вероятность 1/10 и что будет если генерировать в запросе случайную величину с вероятностью 1/10?

postgres=# with t as (select d, case when random()<0.2 then 1 else 0 end as ad from generate_series (1, 1000000) as d (dates) ) 
select ad, md, grouping(ad, md, (md)), count(*) as cnt_d 
 from (select d, ad, 
   case when ad = 1 then 1 else case when random()<0.1 then 1 else 0 end  end as md 
   from t) 
tests group by rollup(ad, md);

 ad | md | grouping |  cnt_d
----+----+----------+---------
  0 |  0 |        0 |  720035
  0 |  1 |        0 |   80150
  0 |    |        3 |  800185
  1 |  1 |        0 |  199815
  1 |    |        3 |  199815
    |    |        7 | 1000000
(6 rows)

Ой, а теперь вероятность обнаружения ошибки ручными тестами (суммарная) — 0.28, а вероятность обнаружения ошибки (ручными тестами если исключить те, что совпадают с автотестами) — 0.8.
А зато вероятность прохождения тестов на выборке если автотесты проходят теперь 720035/800185 ~= 0.9
:)
к общему (1 000 000).

Ні. З цих 1 000 000 деякі не відповідають умові того, що автотести пройшли, і тому не повинні враховуватись. Ми не рахуємо вірогідність для цих днів, бо вони не відповідають умовам випадку, для якого рахується вірогідність.

Чего?) Нам уже дана вероятность и конкретный день, когда автотесты прошли.

Бо вони не входять у обсяг вибірки. Нам треба саме для таких конкретних днів порахувати вірогідність, а не для будь-яких. То берем число саме таких днів, ділимо на нього число днів у яких трапився випадок — отримуємо оцінку вірогідності випадка саме для таких днів.

А в чому різниця таких днів? Гороскоп інший? Чому в ці дні раптом повна група складається із 80%, а не зі 100%?

Перекладу: з якого дива ти викреслив 20% із мануалки, якщо сказано що вони проходять ПАРАЛЕЛЬНО.

Дивись: автотест проходить в середньому 8 із 10 випадків, у конкретний ранок пройшло 10 із 10 випадків. Якщо ти стверджуєш, що треба 2 із них викинути із загального набору — вибач, які саме? За гороскопом визначити, чи екстрасенса викликати?

А в чому різниця таких днів?

В тому, що вони не входять у вибірку по якій прикидуємо ймовірність. Є інші дні крім того мільйона. Є крім днів багато чого. Є мільйон днів, 200к вихідних, 800к буднів, ти потроллив у 200к вихідних і у 700к буднів, виходячи з такої вибірки, який твій шанс потроллити у будні? 90%?

з якого дива ти викреслив 20% із мануалки, якщо сказано що вони проходять ПАРАЛЕЛЬНО.

Бо вони не відповідають умові входження у вибірку.

ти стверджуєш, що треба 2 із них викинути

Це в тебе інша задача.

Такий день один. Чи хочеш взяти 0.8 ранку?

Таких днів близька 800 000 у нашій вибірці. Про шо отой мільйон взагалі, розумієш?)
Ми моделюємо ситуацію багато разів, щоб отримати достатньо багато потрібних днів, щоб була вибірка по якій можна прикинути вірогідність.

Так, моделюємо багато разів. Назви, за яким критерієм ти відібрав 800 000 з мільйона? Якщо за тим, що вони ПРОЙШЛИ автотест — то за умовою весь мільйон його пройшов. То як ти отсіяв 200 000 — наобум Лазаря?

за умовою весь мільйон його пройшов

Нема такої умови для моделювання. Тут моделюється не тільки ті дні, коли пройшов автотест, а усі, в яких запускалися тести. З них 80% пройдуть авто, 70% пройдуть мануал. І ці 70% — це коли пройдуть і мануал і авто. Для тих 80% днів шанс проходження всіх тестів 7/8.

За умовою день лише один. І автотест пройшов.

Для всіх інших — не 7/8, а 7/10.
Є передбачувана ймовірність, є факт. Там де є факт, ти не маєш права застосовувати передбачення.

За умовою з ранку не 8 із 10 пройшли автотест. ВСІ пройшли. Всі 100% конкретного дня пройшли автотест. І це — факт.

За умовою день лише один

А було б 800к — була б інша вірогідність і ще одна — для мільйона?)

І це — факт.

Який ми промоделювали 800к разів кожен з яких є таким самим фактом. І з цих 800к — 700к пройшли мануал. То яка вірогідність?

Якщо умовою заданий факт, до нього застосовується ймовірність 100%. Аж ніяк не передбачення. Факт — це факт.

Він є 100% фактом для тих 800к випадків.

Вообще походу брутфорсить задачу по теорверу- незачет.)
В книжке написано ,что теорвер позволяет решать задачи без статистических выкладок.
Сначала нужно обсудить условия ,потом математику ,а потом уже лезть в алгоритмы, имхо. Никто еще четко не расписал -что события, например совместные, независимые и т.п.
Тогда будет ясно кто прав ,кто нет, когда с теорией разберемся. Пока я больше склоняюсь к Олексій Пєніє . У него есть смысл.

Ви навіть так зрозуміти не можете — оце незалік. Все по десять разів написано вже, з брутфорсом просто свідкам одного дня складніше.

Да, вы предлагаете мне весь топик перечитать?)
Окей)

От класичне: dou.ua/...​rums/topic/21616/#1173507
От «на пальцях»: dou.ua/...​rums/topic/21616/#1175802
Код от є з тестами — можна підправити, покажіть ваші 0.9) cpp.sh/76ka

Пересмотрел -не увидел вашей теории СЛОВАМИ, понять не то ,что не могу -не очень хочется понять нелогичное, если на уровне условий задачи уже расхождения.
Вы перепрыгиваете важные вопросы- бегом к коду) , типа и так понятно, но у вас разница с Алексеем глобальная в теории. Мне не интересно про выборку на миллион, хоть на 10 миллионов пока что.
Напишите- как вы оцениваете события А и Б- это какие?
Парадокс мальчика и девочки Гарднера знаете?
Есть большая разница, или рассматривать:
1) Из выборки дней, где автотесты не прошли- отбирается произвольный день- это задача на статистику.
2) Или перебирают все дни ,где прошли и не прошли- по очереди, и когда находят, где автотесты не прошли- нужно найти результат. по мануальным. Это задача на теорвер.
Вы больше склоняетесь к второму варианту, что это типа задача на условную вероятность, но он мне кажется неправильным, потому что сказано ,что тесты идут параллельно!!!. То есть к тому моменту, когда прошли автотесты — мануальные тоже уже прошли. Уже свершилось событие.
Поэтому я склоняюсь к точке зрения Алексея, возможно я не прав)

Есть большая разница

Нема. Усе є в умовах. Парадокси (математичні) — не про цю задачу. Три варіанти. Авто та manual не пройшли, авто пройшли мануал не пройшли, усі пройшли. Імовірності кожного рахуються з умов однозначно. Рівно один (а не то один то два, як у Гарднера) так само однозначно викидається.

Как вы понимаете условия задачи??:

якщо автотести виявили помилки — то і мануальні тести виявлять помилки, але не навпаки.

Можно я отвечу?
Если автотест выявил ошибки, то ручные тесты тоже выявят. Т.е. если сегодня автотест нашел ошибки, то ручные тесты тоже нашли, завтра нашел, то и ручные нашли, и т.д.
Но если ручные тесты выявили ошибки сегодня, то это не значит что автотесты выявят, и это ж явно описывается статистической вероятностью.

вы ничего не ответили, вы пересказали условие задачи на русском языке)

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

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

В коді (cpp.sh/76ka ) - це умова на строчці 25. В якому порядку вони йдуть — не важливо, це умова на після того як усі пройшли.

Прежде чем решать задачу, нужно разобраться с условиями)
Как вы поняли условия- код весь покрывается тестами, но эффективность автотестов- 20%, а мануальных 30%. Или автотесты покрывают лишь 20% процентов кода, а мануальные покрывают 30% кода?

И вы учли в коде, что количество тестов тоже меняется каждый день случайным образом? Программисты дописывают новые модули, удаляют старые и т.д. Это конечно не так важно,
более важно понять- что значить -
у 20% випадках автотести виявляли помилки-
— якась нелогічна хрєнь.

Доки умови виконуються — може відбуватись що завгодно. Як на мене краще уявляти день бабака, де тільки відповідні події змінюються згідно вірогідностям.

Мой ответ 2/3, я вот так понял и решил задачу:
dou.ua/...​rums/topic/21616/#1177518

топікстартеру краще нормально написати, що він мав на увазі під "

але не навпаки

а шо тут не ясно?
Під «навпаки» мається на увазі «якщо мануальні тести виявили помилки — то і автотести виявлять помилки». Топікстартер наголошує на тому, шо це не обов’язково так

Тобто, зворотної умови не ставиться. Умови «навпаки» — нема. Це єдине вірне трактування граматичного розбору української мови. Прислівник відноситься до дієслова. Неповне речення без дієслова означає вираз стану, там мало б бути слово «є».

Может я и туплю.
20% кода покрыли автотесты
30% кода покрыли мануал тесты
30%-20% = 10% кода покрыты только мануал тестами
Если автотесты ничего не нашли (мы прошли 20% покрытия) то остается 10% покрытые только мануал тестами. Итого 1/10 к тому что мануал тесты могут еще чтото найти. Или с вероятностью 90% что уже ничего не найдут.

Ответ правильный, но решение нет.
Не 10% кода покрыты мануалкой, а 100%. Просто мануальные тесты дают 10% вероятности, независимо от автотестов. А остальные 20% «мануалки» на самом деле являются теми же автотестами, копией, просто запускаемой вручную.

Кстати, способность или неспособность решить эту задачу НИЧЕГО не говорит о квалификации QA. Эта задача и ей подобные очень часто даются юристам, и только для юридических профессий эти задачи ценны. Ну может ещё историкам, немножко философам. Но никак не QА.

Згідно умови автотести можна взагалі не брати до уваги(так як мануальні тести дублюють автотести).Тобто, ймовірність знаходження помилки буде рівною ймовірності знаходження помилки мануальними тестами

Тут навіть не потрібно враховувати дубляж автотестів. Це також абсолютно не випливає на ймовірність проходження ручних тестів.

З ймовірністю 0.7
Якщо автотести не виявили помилок, то мануальні тести ВИЯВЛЯТЬ помилки з ймовірність 0.3, а НЕ ВИЯВЛЯТЬ помилок з ймовірність 1 — 0.3

А якщо у задачі числа 20% і 30% замінити на 100% і 100% (код покритий тестами ідеально), а також викинути той факт, що автотести не знайшли помилки (Ви і так його не враховуєте у формулі), то Ваша формула залишилася б такою ж? ;-)
І, так як ймовірність вийшла б 0%, твердження було б «незалежно від того, пройшли автотести чи ні, мануальні тести покажуть, що нема помилки»?

Не зовсім так. Ймовірність вийшла 0, то це означає, що мануальні тести НЕ ЗНАЙДУТЬ помилки з ймовірністю 0, тобто, мануальні тести точно ЗНАЙДУТЬ помилку(з ймовірністю 1, так як і сказано в зміненій умові).

чому ви вважаєте, що «відсоток покриття коду тестами» те саме що «імовірность виявлення помилки» ?

Що найгірше, вони і в реалі так вважають.

Дійсно, неуважно прочитав умову задачі)

p = 0.2
q = 0.3
-------
Р(А-М-) = (1-p)*(1-q) = 0.8 * 0.7 = 0.56

может показаться что 70%, но это при условии что мы не знаем что там с автотестами. Тут же мы знаем, потому просто
факт, что А+ гарантирует М+ нам дает 20% вероятность что оба теста позитивные на ошибки, возможно это и проецируется на то что если М- то и А-, поэтому условие следует расширить, что такое «не навпаки», тут 3 случая попадают под «навпаки»

все херня, ответ 0.53(3) ? :)

Звідки взялося це число без пояснення? Моделюванням методом Монте-Карло, причому не було можливості реалізувати стохастичний процес достатньо велику кількість разів? :)

По формулі баєса з мого поста нижче

А що тоді є повною групою незалежних подій? Не можу зрозуміти, яка там з модифікацій формули Баєса...

P(A-M-) = P(A-|M-)*P(M-). Вы же записали P(A-M-) = P(A-)*P(M-), соответственно предположили , что события A- и M- - независимые (и в таком случае P(A-|M-)=P(A-)), что противоречит условию:

якщо автотести виявили помилки — то і мануальні тести виявлять помилки, але не навпаки.

.

Что читается как:
P(мануальный тест завален| авто тест завален) =1 != P(мануальный тест завален) = 0.3
=> события A & M — зависимые

ок, но данные вероятности 0.2 и 0.3 для независимых событий, так если бы мы делали только авто и только мануальные тесты
может пусть топиккастер рассудит?

Я в предыдущем посте показал, что эти события зависимы. P(A) = 0.2, P(M) = 0.3, но P(A & M) != P(A) * P(M)

Р(А-М-) = (1-p)*(1-q)

Справедливо только для независимых событий.

Ну господа, фиг знает
Топиккастер выделил слово паралельні жирным
Пусть тк обьяснится

Слово «паралельні» не має жодного стосунку до незалежності подій, тут це просто слово української мови

P(M) = 0.3
P(A) = 0.2
P(M&A) = 0.2
---
P(!M | !A) = P(!M & !A) / P(!A) = (1 — P(M) — P(A) + P(A&M)) / (1 — P(A)) = (1 — 0.3 — 0.2 + 0.2) / (1 — 0.2) = 0.7/0.8 = 7/8

P(M-|A-) = P(A-|M-)*P(A+)/P(M-) = P(A-M-)*P(A+)/P(M-)P(M+), и я не уверен что P(A-M-) = 0.56, кто-то может меня убедить?

Прямых путей не ищем:
P(M|A)=1 (из условия задачи)
P(A|M)=Pa*P(M|A)/Pm=Pa/Pm
P(M*!A)=Pm*P(!A|M)=Pm*(1-P(A|M))=Pm-Pa (тут доказывет, что интуиция не врет и 0.3=0.2+0.1)
P(M|!A)=P(M*!A)/P(!A)=(Pm-Pa)/(1-Pa)
P(!M|!A)=1-P(M|!A)=(1-Pm)/(1-Pa)=7/8
но в конце концев приходим туда же %))
ПС: из разряда «25 лет спустя»... так если кто не согласен с выкладкой выше — сильно не пинайте %))

Но все гораздо проще если сообразить вовремя, что P(!A|!M)=.... 1:) Почему и говорил про прямость путей :)))

А где условие наложения множеств? То самое, что результат фильтра =TRUE от автомата гарантирует =TRUE от мануалки.

Это условие меняет расклад, и соответственно даёт иной результат.

P(M|A)=1 оно и есть и без него выкладки выше не получились бы. По сути это можно также трактовать как, P(!A|!M)=1, хотя не так сразу очевидно. Но для желающих легко увидеть графически. По сути 7/8 это худшая оценка. Реальный результат будет между 0.9 и 7/8, просто тогда в условие задачи нужно добавлять уточнения — например, связаны и пересекаются ли тесты или нет. Этим и отличаются математики от инжинеров — математики все, что недосказано, считают возможным, инжинеры начинают привязывать возможные реализации базируясь на собственном опыте. Правы и не правы по-своему обе стороны.

инжинеров

Инженеры конечно %). Разве что они сильно любят инжир...

«Выкладки бы не получилось» не повод менять условие под красоту формулы.
Растолкуйте своими словами, что значит P(M|A)=1, и сравните с исходным условием.

Реальный результат будет не «между 0.9 и 7/8», он будет 0.9.
Условий достаточно. Сказано, что условие М покрывает условие А. То есть существует условие, что вероятность случаев покрытых М, не покрытых А равна 10%. И внезапно, это то что спрашивается в задаче.

Если бы этого условия не было, правильный ответ был бы 0.7.

В таких очевидных неочевидных случаях мозги лучше прочистить экспериментам. Потому что формулам мозг верит не очень, память выбирает алгоритм по принципу авторитетности мнения. А самое авторитетное — это полученное самостоятельно в эксперименте.

Для эксперимента могут быть даже другие числа вероятности, лишь бы условия наложения теста соблюдалось. Например: возьмите отрывок текста Корана, и натыкайте туда псевдослучайно слов «бл..ь», «на..й», «ё..аный».
После чего посчитайте вероятность вхождения. Пусть «автомат» ловит «бл..ь», «на..й», а мануалка — «бл..ь», «на..й», «ё..аный».
Проведите замену слов «бл..ь», «на..й» на любые другие, только так автомат не поймает ничего. Сравните вероятность посчитанную по вашей формуле, и простое вычитание (как для независимых случаев).

Когда убедитесь, что случаи действительно независимы, верните слова на место. А вдруг вы основатель новой религии, и этот первоисточник будет стоить миллионы на аукционе?

Растолкуйте своими словами, что значит P(M|A)=1, и сравните с исходным условием.

==

якщо автотести виявили помилки — то і мануальні тести виявлять помилки,

Ни больше, ни меньше.
uk.wikipedia.org/wiki/Умовна_ймовірність

Це зрозуміло, вибачаюся, я теорію ймовірності вчив давненько, років із 20 тому.
Але це не пояснює чому при визначенні ймовірності ви ділите
(1-Pm)/(1-Pa)
, тобто порушуєте саме означення ймовірності.

На тест мануалкою подаються всі 100% даних, незалежно від того що про них каже автоматика.

Припустимо іншу ситуацію, при тих самих умовах. Індуси написали новий код, який має 100% помилок. Мануалка находить всі 100%, автоматика — лише 90%. Індуси правили код усю ніч, і на ранок автоматика не знайшла жодної помилки.
Яка ймовірність того, що мануальні тести теж не виявлять помилок?

Моя відповідь — ті самі 90%. Ваша, так розумію, 0%?

тобто порушуєте саме означення ймовірності.

Честно говоря, не понял. Первая выкладка — это были чисто математическая последовательность базируясь на исходных данных без всяких доп.допущений. В принципе все то же самое можно было сделать за одну строку, если принять, что, как я писал выше, P(!A|!M)=1 (то есть если все мануальные тесты прошли успешно, то и авто тесты пройдут успешно. Я по сути это доказал, хотя это из разряда «легко видно» :) Хотя вот пишу это, и все равно закрадывается сомнение %)
Тогда результат получается как P(!A&!M)=P(!A|!M)*P(!M)=P(!M|!A)*P(!A) ->
P(!M|!A)=P(!A|!M)*P(!M)/P(!A)=P(!M)/P(!A). То есть деление вероятностей вполне дает вероятность. Вы ведь не против, когда для независимых событий умножаете вероятности? А тут обратное.
Но математики, как начинают вычислять, часто забывают про то, что скрыто за формулами. Я считаю это недостатком %) И, к примеру, я частично с Вами согласен в том плане, что 0.9 тоже имеет место как один из верных результатов. С точки зрения не-математика. Просто если начать реализовавыть это в виде эксперимента, скорее всего не получитие 7/8 (если только специально не постараться). Или же замеры на реальной системе, для которой это всё делалось, могут не показать 7/8, а показать 0.9. Но! Полученные на практике значения не будут ниже 7/8. И — боюсь ошибиться, но чувствую одним местом — не будут выше 0.9 %))

Індуси написали новий код, який має 100% помилок. Мануалка находить всі 100%, автоматика — лише 90%

Мм.. Как по мне, тесты либо выполняются, либо нет, но не находят конкретные ошибки. Ошибки потом находят программисты %) В случае, если обычно 100% мануальных тестов валятся, а авто — только в 90%. Если у нас авто тесты прошли, то у меня получается что вероятность того, что мануальные пройдут успешно... да ноль. И тут нет конфуза с точки зрения математиков — ибо изначально сказано, что мануальные в 100% валятся %))) Вы же, выдав результат 90%, нарушили то, что тесты валятся в 100% случаев. И именно потому, что в данном случае математика считает неглядя на изменившиюся ситуацию. То есть если вдруг мануальные тесты не свалились — то нужно провести переоценку исходных данных ибо доверия к ним и вычислениям базирующихся на них уже нет %) То есть вопрос — стоит ли решать после успешно пройденных автотестов тому, что индусы (или неиндусы) научились писать код, который не валит все мануальные тесты %)))) Вопрос интересный... Вы оптимист, я пессимист, судя по результатам.
А вообще польза от данного топика в том, что позволяет размять мозги и взглянуть на, вроде бы банальную, проблему с разных точек.

Ну, я-то ответ знаю. А когда не знаю — знаю как узнать, в том числе экспериментальным путём.

Но то чем я интересуюсь — поведенческая психология. В частности, конфликт логики и интуиции. Я знаю, что интуиция почти всегда побеждает. Но вот как делать чтобы победила логика, или чтобы не могла победить — эти вопросы куда интереснее глупой математики за 5-й класс.
________________________
Теперь с тестами: Я не просто так поставил граничную цифру 100%, но для того чтобы задача свелась к булевой алгебре, которая хоть как-то граничит с логикой. К сожалению, вопрос не позволяет свести к границе 50%.

Ещё раз повторюсь: статистическое предсказание не имеет отношения к конкретному набору данных. Если что-то ИЗВЕСТНО про конкретный набор, это МЕНЯЕТ общее предсказание.

Ладно, пусть будет не 100%, а 99.9999% — устроит? Всё равно это граничный случай. Просто потому, что если вероятность нахождения ошибок 100%, это не значит что не могли измениться входные данные. А они изменились. По условию, данные прошли такие, что прошли автотест. Хотя все что были раньше, валили его в 90% случаев.

Смотри: если все ошибки находимые автотестом исправлены к утру, это НЕ ЗНАЧИТ что в 100% исходных данных появились новые ошибки, видимые только мануалкой. Просто вспомни, что мануальный тест на 90% состоит из того самого автотеста, то есть если автотест ошибок не найдёт, то и та часть мануального что дублирует автотест — тоже не найдёт ошибок. Следовательно, вероятность нахождения ошибок в конкретном наборе данных уже не 100%, как предсказано статистикой. Предсказание нужно применить только к неизвестной части, а известную — просто использовать как константу.

В этом вся суть понимания вероятности: конкретные данные ей не соответствуют, и там где есть точное условие, оно должно быть использовано вместо вероятности.
В этом разница с другими задачами. Там когда что-то неизвестно, задача не решается вовсе, остаётся уравнением относительно неизвестных. А в случае вероятности — идёт наложение условий О ТЕХ ЖЕ данных, притом одни условия (предсказание) противоречат другим (факты). Вот это и есть причина, почему надо применять логику ДО того как применить стандартный математический набор (уравнения). Слишком легко ошибиться, заложив не те константы. Или же выбрав не ту формулу.
______________________
Основная причина ошибок — идиотское объяснение теории вероятности «математическим» языком, через сигмы, лямбды, дельты и прочие мерзости. В этом математика сходна с программированием на регулярных выражениях — да, это работает, но бльадь это противоречит человеческой модели памяти. Люди привыкли хранить львиную долю знаний на речевом аппарате, а им НАМЕРЕННО пихают объекты, которые непроизносимы, похожи друг на друга для зрительной памяти, и разумеется одинаковы на цвет, вкус и запах.

ЗАЧЕМ это делается: чтобы доказать основной массе людей, что они этого никогда не поймут. Обычная бюрократия, с целью защитить тех избранных, которые сумели выдрочить свой мозг на подчинение правилам и положить его жертвой этой самой бюрократии.

Кстати, примерно то же самое произошло с музыкой. Нотная запись сильно далека от совершенства. И если вам приходилось работать с midi-редактором, то знаете насколько проще кодировать ноты по линейке высоты тона, а совсем не краказяблинами по линейке, которая не соответствует реальному масштабу. И мир от этого уходит. Точно так же мир уходит от идиотских математических выкладок, к сожалению приняв решение похоронить целую науку из-за её сложности.

Результат предсказуем: математическая наука развивается крайне медленно, из-за того что её нельзя передать массам. Её даже от человека к человеку сложно передать. А что не имеет спроса — не имеет и капиталовложений, наоборот, страдает от оттока капитала.

В своё время с тем же столкнулась философия. Хотя казалось бы, мать всех наук. А вот поди ж ты, бюрократический барьер мусора создан, и каждый должен его преодолеть чтобы считаться философом. Хотя никто из тех кто создал философию — ничего подобного не преодолевал.

Больше всего меня беспокоит, что так же разрушилась отрасль правоведения. Нагородив кучу мусора, юристы внезапно стали элитой, которая дерёт больше ITшников. Хотя то чем они занимаются, призвано... упрощать отношения обычных людей, создавать простые правила игры. Так вот, нет нихера больше правил игры. А есть рой юристов, никто из которых по отдельности не понимает и сотой части всего, но все делают вид что понимают. Результат — очень мало кто изучает, как на самом деле строятся простые отношения. Ещё меньше тех, кто при этом их строит, иначе как на собственном опыте.

Вот такой сложный ответ на вопрос «зачем». Моя цель — не доказать. Но понять, как научить людей подменять свои знания, если какая-то их часть оказалась фиктивной. Я не знаю другого способа кроме экспериментального. Теории конечно есть, но они громоздкие, много «воды». Эксперименты куда достовернее и дешевле.

А если бы речь шла о реальном вопросе с вероятностью, я бы просто согласился с неверным ответом, как только понял что ничего от него не потеряю. Но только в этом случае.

если автотест ошибок не найдёт, то и та часть мануального что дублирует автотест — тоже не найдёт ошибок.

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

Ваши рассуждения позволяют понять, что хотели услышать авторы задачи и какова была их логика.

А всякие лямбды © позволяют как раз формализировать условие, чтобы не приходилось додумывать, как в данном конкретном случае.

Речь идет о статистической вероятности вообще.

тут проблема в задаче в условиях- что он имел ввиду- «але не навпаки»?
Если то ,что нахождение мануальных ошибок- не означает нахождение ошибок автотестами- тогда вы скорее всего правы по логике)
Хотя конечно разница между 7/8=0,875 и 0,9 не очень существенна)

Нет проблемы в условиях. Наоборот — наречие, наречие по дефолту относится к глаголу. Всё чётко. Обратной зависимости эта задача не даёт. То есть если ошибка найдена мануалкой — не имеет следствия что она будет найдена автоматикой. Если бы имела, результат был бы 100%. Если не имеет — 90%.

Разница существенна. Потому что задача не на кофейную гущу, и даже не на теорию вероятности. Задача на логику!

Юристы её решат если не все, то абсолютное большинство. А вот айтишники...

Ідеальна викладка, навіть нічого додати:)

Вы настолько же самоуверенны, насколько обвинили в
том других :) См. мой ответ насчет наложения — и скажите, в чем я ошибся. Я не говорю, что прав, но пока что аргументов неправоты не вижу. Но мне позволительно — в последний раз теорию вероятности листал в начале 90х :)

Давайте подискутуємо:) Все таки не впевнена, що підхід із умовною ймовірністю невірний. Хоча, підказка автора про арифметичні операції, вписується у ваше пояснення про дві групи незалежних тестів (не зрозуміло до кінця, чому вони незалежні, бо одна помилка може теоретично валити тести у обох групах).
А ближче до справи, то складається враження, що у міркуваннях про дві групи «авто-тести» і «не-авто-тести» ховається припущення, що якщо автотести не виявили помилок, то і мануальні тести не виявлять у відповідній групі, тому їм залишиться 10%. Але про це в умові нічого не сказано при поясненні слова «дублюють» (можливо, пояснення зайве, або там бракує умови). Сказано лише, що якщо автотести виявлять помилки, то їх виявлять і мануальні. Тобто а => м, що не дозволяє робити висновок про !а => !м у відповідній групі.

Тести формально незалежні. Незалежність доводиться саме через умову залежності: якщо автоматичний тест А ловить 20% випадків, а мануальний тест «А+Б» ловить 30% випадків, то не можна гарантувати що Б без А виловить саме 10%. Тобто, умови неперетину Б і А немає.

Але можна гарантувати, що існують 10% випадків, які НЕ ловляться тестом А, але ловляться тестом А+Б. Тому вдале проходження теста А фактично гарантує що залишилися виключно ці 10%. Навіть якщо тест Б знаходить те саме, що знайшов би А — цей перетин виключається проходженням теста А.

Я можу рекомендувати перевірку:
Нехай є потік довільних цифр від 0 до 9, це легко запрограмувати. Нехай «автоматичний» тест ловить [8, 9], а «мануальний» — [7, 8, 9]. Це відповідає умові: автоматичний 20%, мануальний 30%, те що піймано автоматичним — гарантовано ловиться мануальним, але не навпаки. Як гадаєте, якщо 7 і 8 більше не вважати помилками (тобто, ситауції типу «7» і «8» виправлені і тепер працюють як треба), то... яка ймовірність того, що в потоці цифра не є 9?
Варіанти відповіді:
— 9/10 [моя]
— 7/8
— 5/6
— а давайте в потік їєъы’½ подамо [відповідь справжнього QA]

Не учтено условие АєМ. То есть что прохождение условия М гарантирует прохождение условия А.
Да, это не так просто загнать в формулу. Ещё сложнее — признать что формула неприменима.

Стоит ли проводить мануальное тестирование, если автотесты прошли ок %))) (но остается непонятным, зачем мануальное дублирует все автотесты... разве что для тестирования автотестов %))))

Схоже ви дуже мало розв’язували задачок у своєму житті. Насправді практика легкого заплутування досить часто зустрічається в задачках. Хто шарить, той не враховуватиме зайві умови.

Угх. Да, очень «мало». С вероятностью «0.9» %).
А. Не спешите делать выводы.
Б. Пост выше был всего лишь а-ля www.youtube.com/watch?v=zCeAfmdpMMo
Число круглых скобочек как-бы намекало на это.

Довести, що більшість кандидатів дурні, не можуть вирішити навіть простенької задачі, тому не варто корити HR департамент за погану роботу.

Насправді задача доводить суто протилежне: ті хто вже працює так само не можуть вирішити задачу. Більш того, вони не визнають що цього не можуть, а дають невірну відповідь, ще й наполягають на ній. Проте факт є фактом — ці люди працюють в галузі, і працюють непогано.

Тобто, задача цього класу не має відношення до професії. І будучи застосованою у процесі відбору, насправді відшиє ПОТРІБНИХ людей. Іншими словами, такий HR наносить шкоди в рази більше, аніж просто брати людей з вулиці.

Это в смысле такие задачи HR дает в качестве теста? Мы вообще задач при собеседовании не даем — один-три месяца испытательного обычно хватает, чтобы понять, потянет или не потянет... Ну что, ждем очередной темы с очередной задачкой, но только не про круглые люки. Лучше уж с competitive programming :) ?

Мы вообще задач при собеседовании не даем — один-три месяца испытательного обычно хватает

Сломал систему :)
Вы ещё скажите что у вас нет 7 менеджеров на 1 гребца.

Ладно, слушайте: почему люки прямоугольные?

Ладно, слушайте: почему люки прямоугольные?

Тот, кто их придумал, не прошел собеседование в гугл %)
ПС: интересно, тот, кто придумал вариант ответа, что круглый круг не проваливается — учел нашу местную специфику? У нас и круглые проваливаются. Либо по частям, либо вместе с кольцом, либо просто испаряются %)

На самом деле круглые считаются лучше переносят нагрузку, и занимают меньше площади на дорожном покрытии. Однако проваливаются они ЛУЧШЕ прямоугольных. Хватит даже небольшого смещения, чтобы люк превратился в ловушку: выглядит закрытым, но если встать — чётко оказывается на двух точках опоры, чтобы перевернуться, сожрать жертву, и ждать новую.

Львиная доля всех люков — прямоугольные. Они гораздо дешевле в изготовлении, их можно сделать без сложного оборудования, а просто вырезав из листа болгаркой. Им не нужно идеально попадать в размер, да и подогнать не сложно. Их легко может измерить роботяга даже в полупьяном виде.

Так что круглые люки — понты и не более. Как и круглые двери в домах хоббитов.

Кстати говоря, по той же причине хорошие сайты — вертикальная лента. Прямоугольная. Любые рюшечки рано или поздно сталкиваются с тем, что хочется чётко задать им геометрию в пикселях. А вот прямоугольник — прекрасно растягивается под нужную геометрию.

То же самое по кнопкам: круглые кнопки хороши, когда их одна или две. Но когда их 6 — уже неудобно фокусироваться. А если их 20? 60?

PS. Вот что б такое оторвать дизайнерам, за ненастраиваемые круглые вкладки? Особенно в IDE, где и так всё нужное в экран не лезет, постоянно переключаться надо, а тут эти грёбаные круглые люки вместо табличного интерфейса.

Однако проваливаются они ЛУЧШЕ прямоугольных.

Где ты берешь такие забористые вещества? Даже ежу, который посетил хоть один урок геометрии в средней школе, должно быть понятно, что поскольку любая сторона прямоугольной крышки люка меньше диагонали поперечного сечения шахты, то прямоугольная крышка в шахту улетает со свистом, стоит только неудачно разместить. Недостаток, которого по ну очень очевидным причинам лишена круглая крышка.

Не факт. Под крышку есть гнездо, и если оно прямоугольное — то надо сдвинуть по ДВУМ осям сразу, чтобы крышка упала. Де-факто, её трудно сдвинуть случайно, потому что сдвигать нужно обязательно в направлении оси. Иначе она стремится вернуться в гнездо.

А вот круглая крышка даже при небольшом сдвиге в любом направлении — не возвращается, а приобретает ось опоры. По мере последовательного по ней проезда автотранспорта, она сдвигается всё больше и больше, превращаясь в ловушку. Чтобы хоть как-то скомпенсировать недостаток, крышку приходится делать специальной выгнутой формы. Вогнутой тоже бы сработало, но резко увеличивает нагрузку на сам люк. В любом случае это сильно удорожает производство и понижает ТТХ дороги, потому ставят обычные плоские.

Попробуйте узнать, сколько людей провалились в люк в любом регионе. И сколько из них — в круглые люки, а сколько — в прямоугольные. Притом что прямоугольных навалом, вы их просто не замечаете.

Кстати, прямоугольную крышку как правило цепляют на петли — дёшево и сердито. С круглой это сделать сооовсем не просто. Равно как и поставить замок.

Круг дает максимальную площадь при минимальном периметре.

Формально — да. Но стоимость изготовления всё равно ниже у прямоугольной. Плюс ниже требования к стали — за счёт более простой конструкции опоры.

Как думаете, почему ливнёвки прямоугольные?

Зависит от технологии производства, если лить, круглые дешевле. Если вырезать или вытачивать — прямоугольные. У ливневок другие требования.

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

Например, люди не делают крышки погребов круглыми. Или выходы на чердак. Люки в общественном транспорте и окна в квартирах. Даже унитазы — и те овальные, а в общественных туалетах — прямоугольные.

По той же причине ФОРМАЛЬНО с точки зрения математики — фрактал является идеальным для 3D-графики. Но когда речь идёт о стоимости вычислений — да здравствует треугольник!

Формально, для сжатия 2D-графики, тоже лучше всего фрактал. Но как только упёрлись в удобство хранения и скорость кодирования — увы и ах, квадрат наше всё. Хотя если честно, вычисления давно подешевели, думаю эра JPG подошла к концу.

Дальше, прочность мостовых переходов — в идеале должен быть полугруг. Но когда приходим к расчёту затрат на подъём для автотранспорта, к цене высотного строительства, и в конце концов, к необходимости точно вымерять геометрию — имеем лишь небольшой эллипс. А местами и плоские конструкции.

Дома. Они должны быть круглыми со всех сторон, с точки зрения энергосбережения. Но вы прикидываете, ВО СКОЛЬКО обходится строительство таких чудес? А планировка? А ошибки при возведении?

А ещё голова у людей природой задумана круглой. И те кого доставали кесаревым, форму головы сохраняют. А вот остальным геометрию при рождении рассказывает совсем другой орган, у которого явно другие предпочтения в математике.

PS. Спросите у типичной «хрюши», почему у неё одна бровь выше другой — она что, изменяла в постели? А потом извинившись скажите не отвечать на этот вопрос. Когда всё же поинтересуется зачем вы его задали — спросите то же самое про её вопрос!

Люки отливают из чугуна.
А с точки зрения экономии материала и прочности круглый люк предпочтительней.

Те которые на дорожное покрытие — да. А вот те которые на ненагруженные участки местности, вполне годятся из обычной листовой стали. Дёшево, сердито, легко выполнимо по замерам кустарным методом, да и погрешность допустима. В том числе изготовление по месту, без каких-либо проектов и согласований.

Из листовой стали кустарного производства видел люки только на теплотрассах, больше нигде.
Для ненагруженных участков, например пешеходных зон и производственных помещений с особыми требованиями, можно использовать пластиковые и композитные люки.

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

Стали тоже достаточно скоро не будет, но пока есть.

Дивно, а де ж виготовляється весь той пластик, що ми бачимо на смітниках...?

Сам материал китайский или российский. А льют/прокатывают в России в основном. В прочем, есть и в Украине прокатка в листы и бутылку.

Если бы в Украине было серьёзное производство строительных композитов, пластик на помойке ты бы встретил не чаще чем макулатуру и стеклотару.

Цікаве зауваження. Треба почитати про цю тему

А вот для дороги по современным меркам лучше всё-таки делать из железобетона. Вполне поддаётся расчёту. Особенно там где участок оказался заглублённым. И по форме снова ж таки лучше круглым — потому что форма для изготовления значения не имеет, а вот экономия материала — ещё какое.

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

Люки для дорог на самом деле не железобетонные. Они тоже чугунные (похожи на вогнутую миску в разрезе) и заполнены бетоном.
И чугунные люки бывают с замком, чтобы не упёрли.
Изображения и тех и других можно посмотреть в ГОСТ 3634-99.

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

Велосипедистов в Украине не существует, такой принцип наших дорого-строителей и проектировщиков.

Задачка для бландінок, 50 на 50, шонеясно: або виявлять, або не виявлять.

Підписатись на коментарі