Цифровой мир дискретен. Между двумя любыми, сколь угодно близкими числовыми значениями математик находит бесконечное количество чисел, но все равно нельзя сказать, что числами можно абсолютно точно представить непрерывное явление или процесс. Зато можно представить такой процесс сколь угодно приближенным к реальному - надо только выбрать точки, в которых он описывается, довольно близко друг к другу. Выбрать их так, чтобы адекватно описать непрерывный процесс - это и есть задача дискретизации - процесса перевода непрерывной величины в некий набор числовых отсчетов.
dima-pashkovec
25.03.2022
1. Определим наибольшее натуральное число, куб которого не превышает 2019. ∛2019 ≈ 12.6; отбрасывая дробную часть, получаем 12. 2. Выпишем набор натуральных чисел от 1 до 12 и их кубов: 1-1, 2-8, 3-27, 4-64, 5-125, 6-216, 7-343, 8-512, 9-729, 10-1000, 11-1331, 12-1728 3. Определим при "жадного" алгоритма набор кубов, дающий в сумме 2019 (из 2019 поочередно вычитаем.максимально возможные кубы): 2019-1728=291, 291-216=75, 75-64=11, 11-8=3, а 3 - это три раза по 1. Получаются кубы чисел 12, 6, 4, 2, 1, 1, 1 - всего СЕМЬ чисел. 4. Попытаемся улучшить найденное решение, отбрасывая те, которые найдут семь и более чисел.
Если взять число 11³=1331, то 2019-1331=688 и нужно составить его из кубов не более, чем 5 чисел. 688-512=176, 176-125=51, 51-27=24 ... и слишком длинно. 688-2×343=2, 2-1=1, 1-1=0 - 4 числа. Улучшенное решение: 2019 = 11³+7³+7³+1³+1³
Лучшего решения нет.
mulyugina365
25.03.2022
1. PascalABC.NET 3.3 const n=5; begin writeln('До:'); var a:=MatrRandom(n,n,-10,10); a.Println(5); var b:=a.ElementsWithIndexes.Select(k->k[2]>k[1]?0:k[0]).ToArray; writeln('После:'); a:=MatrGen(n,n,(i,j)->b[i*n+j]); a.Println(5); end.
2. const n=5; var a:array[1..n,1..n] of integer; i,j:integer; begin Randomize; writeln('Исходный массив:'); for i:=1 to n do begin for j:=1 to n do begin a[i,j]:=random(100); write(a[i,j]:4); end; writeln; end; for i:=1 to n do for j:=i+1 to n do a[i,j]:=0; writeln('Полученный массив:'); for i:=1 to n do begin for j:=1 to n do write(a[i,j]:4); writeln; end; end.
Зато можно представить такой процесс сколь угодно приближенным к реальному - надо только выбрать точки, в которых он описывается, довольно близко друг к другу. Выбрать их так, чтобы адекватно описать непрерывный процесс - это и есть задача дискретизации - процесса перевода непрерывной величины в некий набор числовых отсчетов.