В МИР ИНФОРМАТИКИ № 16858сентябрь 2011 / ИНФОРМАТИКАОчевидное решение — перебрать все возможныеквадратики и проверить, располагается ли каждыйиз них внутри окружности. Соответствующая схемапрограммы:цикл для каждого квадратикаесли квадратик внутри окружноститоУвеличить счетчик числа квадратов на 1всеконец циклаВ дальнейших рассуждениях и в программе будемиспользовать следующие основные величины:— R — радиус окружности;— Хлн, Хпн, Хлв, Хпв — координаты по оси х,соответственно, левой нижней, правой нижней,левой верхней и правой верхней вершинквадрата;— Улн, Упн, Улв, Упв — то же по оси у;— n — искомое количество квадратов.Перебор, о котором шла речь чуть выше, можнопровести, рассмотрев, например, все возможныезначения величины Хлн, а для каждого из них —все возможные значения величины Улн:нц для всех возможных значений Хлннц для всех возможных значений УлнОпределить координаты трех остальныхвершин квадратикаесли квадратик внутри окружноститоУвеличить счетчик числа квадратов на 1всекцкцКоординаты х и у трех остальных вершин некоторогоквадратика в зависимости от Хлн и Улн найтипросто:Хпн = Хлн + 1Хлв = ХлнХпв = Хлн + 1Упн = УлнУлв = Улн + 1Упв = Улн + 1А как проверить тот факт, что квадратик полностьюнаходится внутри окружности? Ответ такой— это имеет место, если при заданных значенияхабсцисс вершин одновременно справедливыдва условия (см. рис. 2):1) координаты по оси у верхней левой и верхнейправой вершин квадрата не больше, чем соответствующеезначение ординаты соответствующейточки верхней половины окружности;2) координаты по оси у нижней левой и нижнейправой вершин квадрата не меньше, чем соответствующеезначение ординаты соответствующейточки нижней половины окружности:если Улв = Унпотоn := n + 1всегде Увпо — ордината соответствующей точки верхнейполовины окружности, Унпо — нижней половины.Рис. 2Зависимость ординаты у некоторой точки окружностиот ее абсциссы х можно получить, зная уравнениеокружности (x 2 + y 2 = R 2 ):y R xпричем для верхней половины окружности следуетвзять положительное значение корня, а длянижней — отрицательное. Учитывая это, можемзаписать условие размещения квадратика внутриокружности:Улв ≤ sqrt(R * R – Хлв * Хлв) и Упв ≤ sqrt(R * R –– Хпв * Хпв) и Улн ≥ sqrt(R * R – Хлн * Хлн) и Упн ≥≥ sqrt(R * R – Хпн * Хпн), где sqrt — функция, возвращающаяквадратный корень из своего аргумента.Видно, что для каждой половины окружностипроверка проводится дважды (для левой и правойточек). Поэтому целесообразно разработать функцию,определяющую значение ординаты для тойили иной половины окружности в зависимости отзаданного значения абсциссы х. Для верхней половинытакая функция имеет вид:алг вещ Увпо(арг цел х)начзнач := sqrt(R * R – х * х)кон— для нижней:алг вещ Унпо(арг цел х)начзнач := -sqrt(R * R – х * х)конС использованием этих функций основнаяпрограмма может быть оформлена следующимобразом:цел RR := …алг Вариант 1нач цел Хлн, Хпн, Хлв, Хпв, Улн, Упн, Улв,Упв, nn := 0нц для Хлн от -R до R – 1 |См. рис. 1нц для Улн от -R до R - 1Хпн := Хлн + 1Хлв := ХлнХпв := Хлн + 1Упн := Улн2 2 ,
Улв := Улн + 1Упв := Улн + 1если Улв = Унпо(Хпн)тоn := n + 1всекцкцвывод nконПримечание. Так как величина R используется вовспомогательных функциях, то она описана как общая(глобальная).Но, как говорят программисты, “чем быстрееначнешь писать программу, тем хуже она получится”.Имеется в виду, что нужно постараться продуматьвсе детали, особенности и найти и применитьсамые рациональные варианты решения. В нашемслучае можно значительно сократить объем вычислений.Во-первых, можно подсчитать искомое количествотолько для одной четверти координатнойплоскости, а затем умножить результатна 4.Кроме того, можно учесть, что квадраты, находящиесяв крайних рядах (столбцах и строках), точноне размещаются внутри окружности, и их можно нерассматривать.Предлагаем читателям разработать вариантпрограммы (на изучаемом языке программирования),учитывающий два указанных обстоятельства,и прислать его в редакцию. Фамилии всехприславших правильную программу будут опубликованы.Может также возникнуть идея решения, основаннаяна рассмотрении “столбиков” из квадратови сравнении целых частей Увпо(Х) и Увпо(Х + 1).Соответствующая программа такая:алг Вариант 3нач цел Х, nn := 0нц для Х от 0 до R - 2если int(Увпо(Х)) = int(Увпо(Х + 1))тоn := n + int(Увпо(Х))иначеn := n + int(Увпо(Х)) - 1всекцвывод нс, n * 4конВ ее особенностях разберитесь самостоятельно.Проверьте, можно ли использовать этот вариантпри любых значениях R. Как надо изменить программу,чтобы она работала при любых R?И еще. Если провести расчеты, то можно получить,что при R = 2 количество квадратов n = 4, а приR = 3 – n = 16, т.е. для этих случаев n = (2R – 2) 2 .Предлагаем читателям проверить, справедлива липолученная формула для других значений R, илиможно получить другую общую формулу, с помощьюкоторой можно рассчитывать значение n, неиспользуя разработанную программу.Ответы в части использования последнего вариантапрограммы (с обоснованием) и результатыисследований в части формулы, пожалуйста, такжеприсылайте в редакцию.ЛИЧНОСТИ190-летие со дня рожденияП.Л. ЧебышёваВ мае 2011 года исполнилось 190 лет со дня рожденияПафнутия Львовича Чебышёва, выдающегосяроссийского математика, механика, одного изпервых создателей отечественной вычислительнойтехники.П.Л. Чебышёв родился 4 (16) мая 1821 г. в деревнеОкатьево Боровского уезда Калужской губерниив семье богатого землевладельца. Первоначальноевоспитание и образование получил дома.В 1832 году семья переезжает в Москву, чтобыпродолжить образование взрослеющих детей. Летом1837 года Чебышёв начинает изучение математикив Московском университете на втором философскомотделении.В 1838 году, участвуя в студенческом конкурсе,получил серебряную медаль за работу по нахождениюкорней уравнения n-й степени. Оригинальнаяработа была закончена уже в 1838 годуи сделана на основеалгоритма Ньютона. Заработу Чебышёв былотмечен как самый перспективныйстудент.В 1841 году ПафнутийЛьвович успешно заканчиваетуниверситет и защищаетдиссертацию.В 1847 году Чебышёвутвержден в звании доцентаи начинает читать лекции по алгебре и теориичисел в Петербургском университете.В 1850 году он защищает докторскую диссертациюи становится профессором Петербургскогоуниверситета. Эту должность Чебышёв занимал достарости.Заслуги П.Л. Чебышёва оценены были ученыммиром достойным образом. Его избрали своим действительнымчленом:— Петербургская академия наук (1853 г.);— Берлинская академия наук;59сентябрь 2011 / ИНФОРМАТИКА