Пусть чисел в отрезке N штук. тогда сумма подряд идущих чисел, начиная с х будет равна Sum = Nx + N*(N-1)/2 здесь второе слагаемое - это частичная сумма арифметической прогрессии 0,1,2,3...N Максимальное значение N будет при нулевом x 1/2 (N - 1) N = 1014 N^2/2 - N/2 - 1014 = 0 N = 1/2 - sqrt(8113)/2 - нехороший корень N = 1/2 + sqrt(8113)/2 - а это правильный, равный 45,53 Максимальное значение x будет при N=1 x = 1014, это тривиальное решение Перебирать будем по N, просто меньше перебора Nx + N*(N-1)/2 = 1014 Nx = 1014 - N*(N-1)/2 x = 1014/N - (N-1)/2 = (2028 - N(N-1))/(2N) и проверять x на целостность
var x,n,counter:longint; begin counter:=0; for n:=1 to 45 do if (2028 - N*(N-1))mod(2*N) = 0 then begin inc(counter); x := (2028 - N*(N-1))div(2*N); writeln ('x=',x,' N=',n); end; writeln('Всего решений ',counter); end.
При кодировании первым для хранения номера одного инструмента требуется log(2)180 ≈ 8 бит. Второй X=2, количество инструментов в группе = 180/2 = 90 Объем памяти для кодирования = log(2)2+log(2)90 ≈ 1+7 = 8 бит. X=3, количество инструментов в группе = 180/3 = 60 Объем памяти для кодирования = log(2)3+log(2)60 ≈ 2+6 = 8 бит. X=4, количество инструментов в группе = 180/4 = 45 Объем памяти для кодирования = log(2)4+log(2)45 ≈ 2+6 = 8 бит. X=5, количество инструментов в группе = 180/5 = 36 Объем памяти для кодирования = log(2)5+log(2)36 ≈ 3+6 = 9 бит. ответ: X=5
0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota
Оформи подписку