taa19707470
?>

Написать код к ! написать функцию вычисления суммы ряда: · стандартный диапазон значений x =0..9, шаг 0.1. убедиться, что на этом диапазоне элемент суммы ряда стремится к 0, при необходимости скорректировать диапазон; · вычислить значения суммы ряда и контрольной функции, к которой он сходится, с точностью до 4 знаков после запятой; · исходя из полученного значения n и формулы ряда объяснить различную скорость сходимости для разных x; ряд: (x-1)/x+(x-1)^2/2x^2+(x-1)^3/3x^3+…+(x-1)^n/nx^n функция: ln(x) мои наброски, которые не сработали: double sum(double x, double eps, int& n) { double s, sn; // сумма и текущее слагаемое ряда int a; int b; n = 1; for (s = 0., sn = (x-1)/x ; abs(sn) > eps; n++) { b = x * (1+n); a = pow(x - 1, n); s += sn; sn = sn*a/b ; } return s; } // вычисление степенного ряда для x в диапазоне от 0.1 до 1 с шагом 0.1 int main() { double x, y; int nn; for (x = 0.1; x < = 1.; x += 0.05) { y = sum(x, 0.0001, nn); printf("n=%d x=%0.1lf\t sum=%0.4lf\t log=%0.4lf\n", nn, x, y, log(x)); } }

Информатика

Ответы

klykovav672
1) Допустим, бумагу мы сложим в бак 3. Это будет 83 + 58 = 141.
Тогда в бак 2 надо сложить стекло или жесть.

1) а) Допустим, мы в бак 2 сложили стекло. Это будет 52 + 85 = 137.
Тогда в бак 1 кладем жесть. Это будет 95 + 75 = 170.
Всего 141 + 137 + 170 = 448 перемещений.

1) б) Допустим, мы в бак 2 сложили жесть. Это будет 64 + 75 = 139.
Тогда в бак 1 кладем стекло. Это будет 98 + 85 = 183.
Всего 141 + 139 + 183 = 463 > 448.

2) Допустим, бумагу мы сложили в бак 2. Это опять 83 + 58 = 141.
2) а) Кладем в бак 3 стекло. Это будет 98 + 52 = 150.
Тогда в бак 1 кладем жесть. Это будет 95 + 75 = 170.
Всего 141 + 150 + 170 = 461 > 448.

2) б) Кладем стекло в бак 1. Это будет 98 + 85 = 183.
Тогда в бак 3 кладем жесть. 64 + 95 = 159
Всего 141 + 183 + 159 = 483 > 448.

3) Положим бумагу в бак 1. Это будет 83 + 83 = 166.
3) а) Положим стекло в бак 2. Это будет 52 + 85 = 137.
Тогда жесть пойдет в бак 3. 64 + 95 = 159.
Всего 166 + 137 + 159 = 465 > 448.

3) б) Положим стекло в бак 3. Это будет 52 + 98 = 150.
Тогда жесть пойдет в бак 2. Это будет 64 + 75 = 139.
Всего 166 + 150 + 139 = 455 > 448.

Я рассмотрел все 6 вариантов разложить 3 мусора по 3 бакам.
ответ: минимальное количество перемещений равно 448.
angelina-uj1350
Program Number;
var  x: integer; { введенное число }  n: byte := 0; { количество цифр в числе }  i, j: byte; { счетчики }  xi: array[1..5] of integer;{массив цифр, из которых состоит число}
begin  { Ввод исходного числа }  readln(x);  writeln;   x := abs(x); // рассматриваем модуль числа  { Разбиение числа на цифры }  while (x > 0) do  begin    n := n + 1; // увеличиваем количество цифр    xi[n] := x mod 10; // вычисляем цифру (остаток от деления на 10)    if xi[n] = 8 then // если встретилась 8,    begin      writeln('да'); // то число "бесконечное"      readln;      exit;          // выход из программы    end;    x := x div 10; // изменяем число (целое от деления на 10)  end;  { Поиск цифр, встречающихся больше одного раза}  for i := 1 to n - 1 do    for j := i + 1 to n do      if xi[i] = xi[j] then // если числа      begin        writeln('да'); // то число "бесконечное"        readln;        exit;  // выход из программы       end;  { Число не явлется "бесконечным" }  writeln('нет');end.

Ответить на вопрос

Поделитесь своими знаниями, ответьте на вопрос:

Написать код к ! написать функцию вычисления суммы ряда: · стандартный диапазон значений x =0..9, шаг 0.1. убедиться, что на этом диапазоне элемент суммы ряда стремится к 0, при необходимости скорректировать диапазон; · вычислить значения суммы ряда и контрольной функции, к которой он сходится, с точностью до 4 знаков после запятой; · исходя из полученного значения n и формулы ряда объяснить различную скорость сходимости для разных x; ряд: (x-1)/x+(x-1)^2/2x^2+(x-1)^3/3x^3+…+(x-1)^n/nx^n функция: ln(x) мои наброски, которые не сработали: double sum(double x, double eps, int& n) { double s, sn; // сумма и текущее слагаемое ряда int a; int b; n = 1; for (s = 0., sn = (x-1)/x ; abs(sn) > eps; n++) { b = x * (1+n); a = pow(x - 1, n); s += sn; sn = sn*a/b ; } return s; } // вычисление степенного ряда для x в диапазоне от 0.1 до 1 с шагом 0.1 int main() { double x, y; int nn; for (x = 0.1; x < = 1.; x += 0.05) { y = sum(x, 0.0001, nn); printf("n=%d x=%0.1lf\t sum=%0.4lf\t log=%0.4lf\n", nn, x, y, log(x)); } }
Ваше имя (никнейм)*
Email*
Комментарий*