Два друга — Петя и Вася — совместно используют канал доступа в Интернет с пропускной Кбайт в секунду. Система балансировки нагрузки настроена таким образом, что если в данный момент времени канал использует только один человек, то скачивание файла происходит со скоростью равной пропускной канала, а если канал используют оба друга — пропускная канала поровну делится между пользователями. Петя начал скачивать музыкальную композицию. Через 8 секунд Вася начал скачивать графический файл. Петя закончил скачивать музыкальную композицию через 34 секунды от начала скачивания своего файла.
Музыкальная композиция была оцифрована в режиме «моно» с частотой дискретизации 1024 Гц и 65536 уровнями квантования. Графический файл содержал 8192 пикселей, кодированных с использованием палитры из 256 цветов. И в файле с музыкальной композицией и в графическом файле не использовалось сжатие данных. Кроме упомянутых скачиваемых файлов другой нагрузки на канал доступа в Интернет не было.
Сколько секунд длится музыкальная композиция, которую скачал Петя?
Распишите решение
Формулы площадей квадрата S₁ и круга S₂ известны, что легко позволяет нам найти нужное условие.
Если нужно, чтобы случай, когда квадрат вписан в круг тоже учитывался, строгое неравенство следует заменить нестрогим.
// PascalABC.NET 3.0, сборка 1160 от 05.02.2016
begin
var s1:=ReadReal('Площадь квадрата');
var s2:=ReadReal('Площадь круга');
if pi*s1<2*s2 then Writeln('Квадрат умещается в круге')
else Writeln('Квадрат не умещается в круге')
end.
Тестовое решение:
Площадь квадрата 24.6
Площадь круга 28.4
Квадрат не умещается в круге
using System;
class Program
{
static void Main()
{
int x1 = 2, y1 = 1;
int x2 = 6, y2 = 5;
int x3 = 10, y3 = 1;
var a = Distance(x2, y2, x3, y3);
var b = Distance(x1, y1, x3, y3);
var c = Distance(x2, y2, x1, y1);
Console.WriteLine("S = {0}", Square(a, b, c));
Console.ReadKey();
}
//растояние между точками
static double Distance(int x1, int y1, int x2, int y2)
{
return Math.Sqrt((x2 - x1) * (x2 - x1) + (y2 - y1) * (y2 - y1));
}
//формула герона
static double Square(double a, double b, double c)
{
var p = (a + b + c) / 2;
return Math.Sqrt(p * (p - a) * (p - b) * (p - c));
}
// теорема косинусов
static double Angle(double a, double b, double c)
{
return Math.Acos((b * b + c * c - a * a) / (2 * b * c));
}
static bool IsAcuteAngel(double alpha)
{
return alpha < Math.PI / 2;
}
}