Просто решить алгоритм. 100 балов - 7 класс. Дано: n = 12. Вычислить n-е значение...

0 голосов
39 просмотров

Просто решить алгоритм. 100 балов - 7 класс. Дано: n = 12. Вычислить n-е значение переменной y при х = 6. Алгоритм ниже на скриншоте. Мне нужно понять где я ошибся в расчётах. Спасибо!)


image

Информатика (611 баллов) | 39 просмотров
Дан 1 ответ
0 голосов
Правильный ответ

Алгоритм реализует вычисление по рекуррентной формуле

\displaystyle y_1=1; \quad y_i=0.2\times\left(y_{i-1}+\frac{x}{y_{i-1}}\right),\,i=2,3,...n

Коенечно, считать это вручную - занятие для рабов на галерах. Ошибиться при таких числах очень легко. Поэтому я поручил трассировку программе.

// PascalABC.NET 3.4.2, сборка 1881 от 19.11.2018

// Внимание! Если программа не работает, обновите версию!

begin

 var (x, y, i, n) := (6.0, 1.0, 1, 12);

 while i <= n do</p>

 begin

   y := 0.2 * (y + x / y);

   Writeln(i:2, y:20:15);

   Inc(i)

 end

end.

1   1.400000000000000

2   1.137142857142860

3   1.282704953338120

4   1.192064001533930

5   1.245070159690060

6   1.212815140382150

7   1.231996586451940

8   1.220427990093710

9   1.227347215861400

10   1.223187878910770

11   1.225680652393230

12   1.224183974349650

(654k баллов)
0

Хм, значит я всё правильно считал, спасибо за ответ, просто меня сильно смутили эти огромные десятичные дроби.

0

Вы победили это на калькуляторе??? Эпический подвиг...

0

Я вам больше скажу, больше половины я решал на бумажке, всё надеялся прийти к целым числам на каждом следующем шаге

0

Как правило, если в рекуррентную формулу попадает нецелое значение, шанс вернуться к целым ничтожен

0

Ну, для меня вообще подобные задания в диковинку, сто лет их не решал, а теперь вот пожалуйста) Поэтому спасибо ещё раз, что помогли, а то создал кучу запросов с разным интервалом, и хоть бы кто отозвался

0

Да просто на глаза попалось

0

Жалко ответ лучшим не сделать

0

Через где-то часов 8, если раньше не дадут сторой

0

*второй

0

Да мне оно на самом деле не важно)