Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/14: Рейтинг темы: голосов - 14, средняя оценка - 4.71
Эксперт С++
 Аватар для odip
7176 / 3234 / 82
Регистрация: 17.06.2009
Сообщений: 14,164

Голодная коза на веревке.

08.01.2010, 12:30. Показов 2914. Ответов 15
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть квадратное поле с травой, сторона квадрата - N.
В центре поля привязана веревка длины r. К другому концу веревки привязана коза.
Коза поедает всю траву, до которой может дотянуться, при этом ей мешает длина веревки.
Ввод: В первой строке файла input содержатся два целых числа N и r через пробел.
1<=N,r<=100
Ограничения: время счета - 1 сек, объем памяти: 16 Mb
Вывод: С точностью до 3-ех знаков указать площадь травы, которую cъест коза.

Пример:
INPUT:
10 6
OUTPUT:
95.091

http://acm.timus.ru/problem.aspx?space=1&num=1084
1
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
08.01.2010, 12:30
Ответы с готовыми решениями:

Написать программу Голодная зима
Написать программу с оператором while Голодная зима. Суточный рацион коровы составляет u кг сена, ν кг силоса и ω кг...

Голодная зима. циклы.
хэлп, плиз! срочно =) выкладываю условие и пример проги на javascript. на паскале грамотно кто-нибудь может написать? Голодная зима....

Мальчик вращает камень, привязанный к веревке длиной 1м, в вертикальной плоскости с частотой 12 гц
На какую высоту взлетел камень, если веревка оторвалась на тот момент, когда скорость была направлена вертикально вверх?

15
Быдлокодер
 Аватар для Darky
512 / 298 / 85
Регистрация: 22.11.2009
Сообщений: 892
08.01.2010, 12:43
Если я правильно понимаю, то нужно посчитать площадь круга с заданным радиусом? При некоторых условиях
1
Эксперт С++
 Аватар для odip
7176 / 3234 / 82
Регистрация: 17.06.2009
Сообщений: 14,164
08.01.2010, 12:48  [ТС]
Веревка, вытянутая на полную длину образует круг.
Поле образует квадрат.
Пусть S - это искомая площадь.
Имеем три случая:

1) Край круга не достает до стороны квадрата.
r<=N/2
S= площадь круга = PI*r^2

2) Край круга протирается дальше чем углы квадрата
Пусть N2 - расстояние от центра квадрата до угла квадрата.
N2= sqrt( 0.5*N^2 )= N/sqrt( 2.0 )
Условие: r>=N2
S= площадь квадрата = N^2

3) Край круга находится дальше чем сторона квадрата, но меньше чем угол квадрата.
Условие:
N/2<r<N2
Осталось посчитать площадь в этом самом сложном случае
1
║XLR8║
 Аватар для outoftime
1212 / 909 / 270
Регистрация: 25.07.2009
Сообщений: 4,360
Записей в блоге: 5
08.01.2010, 13:02
http://amway.ucoz.ua/pusti_kozla_v_ogorod.rar

Вот, если это вам поможет))
0
Эксперт С++
 Аватар для odip
7176 / 3234 / 82
Регистрация: 17.06.2009
Сообщений: 14,164
08.01.2010, 13:05  [ТС]
Не - будем без подсказок решать
1
║XLR8║
 Аватар для outoftime
1212 / 909 / 270
Регистрация: 25.07.2009
Сообщений: 4,360
Записей в блоге: 5
08.01.2010, 13:08
стоп, так эт я написал, или вы мне не доверяете?

Добавлено через 1 минуту
там просто выкладки на А4 по поиску площади 4-ех секторов и 4-ех треугольников, с рисунком
0
Эксперт С++
 Аватар для odip
7176 / 3234 / 82
Регистрация: 17.06.2009
Сообщений: 14,164
08.01.2010, 13:08  [ТС]
Вывод long double с используя printf()
Этот код тоже ты написал ?
1
║XLR8║
 Аватар для outoftime
1212 / 909 / 270
Регистрация: 25.07.2009
Сообщений: 4,360
Записей в блоге: 5
08.01.2010, 13:10
хотя, нет, в суме 2*А4 + финальная формула на 3-ем листе

Добавлено через 52 секунды
я старался расписать так, что-бы можно было найти ошибку
0
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21281 / 8305 / 637
Регистрация: 30.03.2009
Сообщений: 22,660
Записей в блоге: 30
08.01.2010, 13:10
Цитата Сообщение от odip Посмотреть сообщение
3) Край круга находится дальше чем сторона квадрата, но меньше чем угол квадрата.
Условие:
N/2<r<N2
Осталось посчитать площадь в этом самом сложном случае
Это есть площадь круга минус учетверённая площадь сегмента (который торчит из-за сторон квадрата). Радиус известен, угол вычисляется, соотвеnственно вычисляется площадь сегмента
1
║XLR8║
 Аватар для outoftime
1212 / 909 / 270
Регистрация: 25.07.2009
Сообщений: 4,360
Записей в блоге: 5
08.01.2010, 13:16
Evg, а если решить еще и через площади сегментов, тогда если формулы сойдутся - я вывел верно, иначе, ищем ошибку..

Добавлено через 3 минуты
odip, я же говорил, ошибка в последнем знаке - это ронг ансер..
0
UNIX-way
 Аватар для Delphin_KKC
712 / 495 / 49
Регистрация: 15.01.2009
Сообщений: 1,720
08.01.2010, 13:21
Цитата Сообщение от odip Посмотреть сообщение
Веревка, вытянутая на полную длину образует круг.
Поле образует квадрат.
Пусть S - это искомая площадь.
Имеем три случая:

...

2) Край круга протирается дальше чем углы квадрата
Пусть N2 - расстояние от центра квадрата до угла квадрата.
N2= sqrt( 0.5*N^2 )= N/sqrt( 2.0 )
Условие: r>=N2
S= площадь квадрата = N^2
...
Для этого случая формула такая:
2) Край круга протирается дальше чем углы квадрата
Пусть N2 - расстояние от центра квадрата до угла квадрата.
N2= sqrt((0.5*N)^2+(0.5*N)^2)=0.5*N*sqrt(2.0 ) //по т.Пифагора
Условие: r>=N2
S= площадь квадрата = N^2
1
Эксперт С++
 Аватар для odip
7176 / 3234 / 82
Регистрация: 17.06.2009
Сообщений: 14,164
08.01.2010, 13:26  [ТС]
Delphin_KKC, можешь сам убедиться что 0.5*sqrt(2.0) == 1/sqrt( 2.0 )
)))
0
║XLR8║
 Аватар для outoftime
1212 / 909 / 270
Регистрация: 25.07.2009
Сообщений: 4,360
Записей в блоге: 5
08.01.2010, 13:27
odip, согласен, с 1/sqrt(2.0)
0
UNIX-way
 Аватар для Delphin_KKC
712 / 495 / 49
Регистрация: 15.01.2009
Сообщений: 1,720
08.01.2010, 13:37
Цитата Сообщение от odip Посмотреть сообщение
Delphin_KKC, можешь сам убедиться что 0.5*sqrt(2.0) == 1/sqrt( 2.0 )
)))
Может быть. Я формулу писал прямо в окне ответа.
Но умножение, насколько я помню из уроков ассемблера, выполняется чуть быстрее деления.
А в задаче есть ограничение по времени счёта.

Для ещё большего ускорения можно вместо 0.5*sqrt(2.0) написать 0.707 (на всякий случай проверьте константу; ибо по памяти пишу)
0
Эксперт С++
 Аватар для odip
7176 / 3234 / 82
Регистрация: 17.06.2009
Сообщений: 14,164
08.01.2010, 15:21  [ТС]
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
/* Thread 83603 */
 
#include <stdio.h>
#include <assert.h>
#include <math.h>
 
 
/********************************************************************/
#define PI 3.141592653589793238462
 
 
/********************************************************************/
double calc_koza_square( double N, double r );
 
 
/********************************************************************/
int main( void ) {
 
int N_int, r_int;
double S;
 
 
freopen( "input.txt", "r", stdin );
freopen( "output.txt", "w", stdout );
 
scanf( "%d %d", &N_int, &r_int );
assert( 1<=N_int && N_int<=100 );
assert( 1<=r_int && r_int<=100 );
 
S= calc_koza_square( (double)N_int, (double)r_int );
printf( "%.3f\n", S );
 
return 0;
 
} /* main() */
 
 
/********************************************************************/
double calc_koza_square( double N, double r ) {
 
double N_2, N2, teta, S;
 
 
N_2= 0.5*N;
N2= N/sqrt( 2.0 );
 
if ( r<=N_2 ) {
    return PI*r*r;
} else if ( r>=N2 ) {
    return N*N;
}
 
teta= 2*acos( N_2/r );
S= PI*r*r-4*(0.5*r*r*(teta-sin(teta)));
 
return S;
 
} /* calc_koza_square() */
Во - правильно считает.

Добавлено через 10 минут
teta - угол сегмента, который торчит за пределы квадрата.

Найдем половину этого угла.
cos( teta/2 ) = катет / гипотенузу = N/2 / r

teta= 2*acos( N_2/r )

Площадь_сегмента = 0.5*r*r*(teta-sin(teta))

S= площадь_круга - 4*площади_сегмента = PI*r*r-4*(0.5*r*r*(teta-sin(teta)))

Добавлено через 1 минуту
outoftime, чего-то сильно перемудрил у себя в файле rtf

Добавлено через 1 час 18 минут
Задача Пуговицы - Игра Пуговицы.
0
║XLR8║
 Аватар для outoftime
1212 / 909 / 270
Регистрация: 25.07.2009
Сообщений: 4,360
Записей в блоге: 5
08.01.2010, 15:22
сейчас проферю hosts, может вируса..
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
08.01.2010, 15:22
Помогаю со студенческими работами здесь

Волк, коза и капуста
на одном берегу вовк, коза и капуста, как их переправить на 2 берег лодкой я знаю, а вот как ето запрограмировать незнаю((( подскажите!!!...

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

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

Волк, коза и капуста через БД?
Здравствуйте. Скажу сразу, облазил всё что мог, но найти мой вариант решения этой головоломки я не смог. У меня есть только вывод...

Волк Коза и Капуста: Просмотреть все возможные варианты перевозок и выбрать наикратчайший вариант
Доброе время суток, форумчане. Сразу к делу. предмет называется &quot;Искусственный Интеллект&quot;. Нужно решить эту задачу про волка, козу и...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Новые блоги и статьи
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Киев стоит - украинская песня
zorxor 28.01.2026
wfWdiRqdTxc О Господи, Вечный, Ты . . . Я помоги, Бесконечный. . . Я прошу Ты. . . Я погибаю, спаси. . . Я прошу Тебя Вечный. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru