Случай в бильярдной Пятница. После работы три разработчика решили выпить и сыграть в бильярд. Чтобы было интересно, мидл придумал такое условие: проигравший оплачивает счёт. Все знали, что сеньор лучше всех пьёт и играет, поэтому мидл предложил считать так: «Если сеньор забьёт меньше шаров, чем другие участники, вместе взятые, — он проиграл и платит за всех» Через пару минут после начала игры, когда несколько шаров уже было забито, к ним подошёл тимлид из соседнего отдела. Ему объяснили, что проигравший платит, он согласился, и игра пошла уже вчетвером. Когда партия закончилась, получились такие результаты: Джуниор забил 2 шара Мидл — 4 шара Сеньор — 6 шаров Тимлид — 4 шара Кто должен оплатить счёт? Решение Эта задача — пример плохого алгоритма, который привёл к коллизии. Коллизия — это когда набор одних и тех же данных, обработанных в разном порядке, приводит к разным решениям. Коллизии встречаются в разных областях ИТ, поэтому их нужно уметь заметить. У нас коллизия выглядит так: Вто
Ультрасложная задача про пьяных программистов и коллизию
21 марта 202321 мар 2023
410
1 мин