К основному контенту

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

Не знаю уж в силу чего, но у меня иногда возникает навязчивая идея решить ту или иную задачу из школьного/институтского курсов по математике или программированию. Обычно (пока что) это что-то достаточно простое. Интересен сам процесс получения результата на основе тех знаний, которые есть в голове на данный момент. 

Как-то раз зашел разговор о сотах, пчелиных сотах. Раньше я не особо задумывался о том, что сота представляет собой правильный шестиугольник. Не то что не знал, а просто не думал о том, как эти маленькие создания сами(!) создают такую структуру, состоящую из абсолютно правильных шестиугольников... Задачка пришла сама собой - нарисовать правильный шестиугольник, как водится, только с использованием циркуля и линейки.

Шаг 1. Рисуем окружность, в которую будет вписан наш шестиугольник
Шаг 1











Шаг 2. Докажем, что сторона правильного шестиугольника равна радиусу окружности, в которую он вписан.
Шаг 2
Док-во: Исходя из условий (и признаков рав-ва треугольников), понимаем, что все три треугольники в верхней части рисунка - равны между собой. Соотв. угол Альфа = 60° (180 / 3), а это значит, что треугольник равносторонний (на остальные углы в треугольнике приходится по 120° и они так же равны между собой, как прилежащие к равным сторонам треугольника) и, соотв. сторона шестиугольника равна радиусу.

Шаг 3


Шаг 3. Строим шестиугольник: ставим циркуль в произвольное место на окружности, откладываем радиус на окружности, переносим циркуль в только что поставленную метку, делаем засечку дальше и так еще 4 раза, пока не придем в исходную точку. При помощи линейки соединяем полученные точки. Вуаля.

P.S. Иллюстрации сделаны на планшете, поэтому не придирайтесь  картинка с сотами взята из инета (google.com, поиск: пчелиные соты)

Контакты:

Комментарии

Популярные сообщения из этого блога

Занимательные алгоритмы. Поиск цикла в односвязном списке

И снова про тараканов, которые иногда возникают в голове. Как-то раз, засыпая, я задумался на курьезными задачками из своей сферы деятельности (Lotus Notes), которые можно было бы задать на собеседовании, плавно перешел к воспоминаниям о своих первых собеседования, когда опыта работы еще не было. Опыт самих собеседований у меня не велик а места, где задавались действительно интересные задачи (а не задачки типа: написать сортировку массива любым известным способом) вообще равны одному - это ABBYY. Как минимум одна задачка в списке на знание и понимание классических алгоритмов, описанных в книге Дональда Кнута -  Искусство программирования .

Unit-testing object validation when validator has DI

Summary Unit test object validation when validator(s) has a dependency. For instance, we have some custom field and cross-field validators. Want to test their combination. Additionally some of validators have dependencies, injected through constructor or setters. You're not using property injection, right? Shortcut If you are just searching for an answer, here's the fast way: Declare CustomConstraintValidatorFactory that implements javax.validation.ConstraintValidatorFactory Override getInstance method and on facing your constraint validator class instantiate it Otherwise delegate validator construction to org.hibernate.validator.internal.engine.constraintvalidation.ConstraintValidatorFactoryImpl Build validator factory and provide it your CustomConstraintValidatorFactory Build validator, using that factory... Go to demo project on GitHub for details:  https://github.com/MrArtemAA/blog-demos/blob/master/test-validator-with-injection/src/test/java/ru/artemaa/...

Use @SpringBootTest for validator's unit test and be fast enough

This a continuation of the post: https://live-scripts.blogspot.com/2020/02/unit-testing-object-validation-with-di-in-validator.html#more . Last time we talked about testing a validator, which has a dependency. Using pure @SpringBootTest turned out to be too slow. So I showed a "trick" to override the validator's factory in order to inject the dependant object. This reduced test run time. I promised to show a way to use @SpringBootTest , autowiring, and still be quick enough.