<em>// PascalABC.NET 3.3, сборка 1590 от 03.12.2017</em>
<em>// Внимание! Если программа не работает, обновите версию!</em>
uses NumLibABC;
begin
var oL:=new Zeroin(x->Ln(x)-(0.5/Sqr(x)),1e-8);
Writeln('x=',oL.Value(0.1,1.5):0:8)
end.
<u>Пример с точностью 10⁻⁸</u>
x=1.32786401
<u>Замечание:</u> Исходный текст класса Zeroin в составе библиотеки численных методов NumLibABC находится в стандартной поставке PascalABC.NET
--------------------------------------Вроде так--------------------------------------
256 Кб = 2097152 бита
2097152/128000~16,384 секунд => 17 секунд
XXIII X MMIII вот так будет))
2675,713₈
- 204,551₈
----------------
2471,142₈
Подробности. Вычитание производим "в столбик", начиная с самого правого разряда. Если в разряде уменьшаемое не меньше вычитаемого, выполняем вычитание в привычной десятичной системе. 3₈ - 1₈ = 2₈
Теперь переходим в соседний разряд. Тут уменьшаемое меньше вычитаемого, поэтому нужно "занять" единичку в старшем разряде. В десятичной системе эта единичка превращается в 10, а в восьмеричной - в восемь. 1₈ - 5₈ превратится в (1+8) - 5 = 4₈. Т.е. мы прибавляем к уменьшаемому эти 8, а дальше все считаем снова, как в привычной десятичной системе. 7₈ - 5₈ после "занятия" единицы превратится в
6₈ - 5₈ = 1₈ - тут все, как в делали в самом младшем разряде.
Остальная часть решения трудностей не представляет.
Ответ: 2471,142₈