Дан одномерный массив А[М], (0<М<100). В этом массиве поменяйте местами n-ый элемент с t-ым элементом и выведите на печать полученный массив. A[n], A[t]= A[t], A[n] - если n=1, t=3 (если для программы нужна новая переменная, тогда используете её)
Выписываем только те степени двойки, которые соответствуют позициям единиц в двоичной записи. Как это делать на практике? 1. Целая часть Записываем, ведя счет СПРАВА НАЛЕВО, номера позиций единиц, причем отсчет начинаем С НУЛЯ: 2,3,4,6,8. Мы получили степени двойки, которые надо вычислить и сложить. 4+8+16+64+256=348 2. Дробная часть Записываем, ведя счет в обычном направлении номера позиций единиц, начиная отсчет С ЕДИНИЦЫ: 3. Мы получили степени двойки, которые должны стоять в знаменателе дробей (а в числители будут стоять единицы). Это дает 1/8 или 0.125.
var b: array[1..nm] of real; x, y, min: real; i, n, imin: integer;
begin n := trunc((a2 - a1) / h + 1); x := a1; min := 1e20; for i := 1 to n do begin b[i] := x; y := x * sqr(x - 1) * (x - 2) * sqr(x - 2); if min > y then begin imin := i; min := y end; x := a1 + i * h end; Writeln('Минимальное значение ', min, ' достигнуто при аргументе ', b[imin]) end.
Результат выполнения программы: Минимальное значение -0.746496 достигнуто при аргументе 0.2
Аналитическое решение показывает, что у функции имеется локальный минимум в точке x=(5-√13)/6≈0.2324081207; при этом функция принимает значение, приблизительно равное -0.7562371972, поэтому решение можно считать верным.
Выписываем только те степени двойки, которые соответствуют позициям единиц в двоичной записи.
Как это делать на практике?
1. Целая часть
Записываем, ведя счет СПРАВА НАЛЕВО, номера позиций единиц, причем отсчет начинаем С НУЛЯ: 2,3,4,6,8. Мы получили степени двойки, которые надо вычислить и сложить. 4+8+16+64+256=348
2. Дробная часть
Записываем, ведя счет в обычном направлении номера позиций единиц, начиная отсчет С ЕДИНИЦЫ: 3. Мы получили степени двойки, которые должны стоять в знаменателе дробей (а в числители будут стоять единицы). Это дает 1/8 или 0.125.