TelmanStudЭто можно, но надо сначала переписать алгоритм. И для удобства выписывания я тогда обозначу
другой буквой,
.
Имеем:
(1) , если ;
(2) , если ;
(3) , если все имеют целую часть , включая тот случай с бесконечностью ( положительные, нули).
Тут надо дополнить (мне пришлось ещё немного почитать перед тем как уяснить), что если в условиях попадается ноль в знаменателях, но притом не во всех (когда мы закончим вычисления), шаги (1) или (2) стоит делать так, чтобы после них оказывалось меньше таких нулей. То есть если
, то (если
, лучше предпочесть (2)) и (если
, лучше предпочесть (1)), иначе любое сгодится. Если
, то (если
, лучше предпочесть (1)) и (если
, лучше предпочесть (2)), иначе снова подойдёт любое. И оставшиеся варианты аналогично, кроме варианта, когда они все равны нулю.
Найдём
. Сначала проверяем условие из (3) чтобы не делать лишних движений, но сразу видим, что ничего не будет, потому что
вообще будет неопределённым, если считать. Проверим, пользоваться (1) или (2):
, мы можем делать и то, и то. Сделаем (2).
.
Третий шаг опять не получится, и опять
, но так как
, предпочтём (1). [UPD: на самом деле если бы мы сделали (2), осталось бы только два нуля. Я неправильно там выше написал, но оставим как есть. Считать это всё руками очень утомительно, а код писать ради одного примера было бы довольно долго, плюс я бы не увидел пару случаев таким образом.]
.
С третьим шагом так и не повезёт и нам опять надо делать любой из (1), (2). Сделаем (1) и получим сюрприз: дробь
кончится (превратится в
)! Но это на самом деле не страшно, так что сделаем пока этот шаг.
Так мы перейдём к
. Теперь мы не можем делать (1), но мы могли бы продолжать дальше без особых проблем. Вместо этого мы можем избавиться от икса. Так как при
имеем
(предыдущая рассматривавшаяся функция), мы можем дальше продолжить более просто.
Значит теперь
. Мы всё ещё не можем ничего выдать, так что тащим очередной элемент дроби-аргумента.
. Мы можем наконец-то выдать
, хотя
. Ну я в таком явном виде это и не видел сформулированным, так что наверно мы ничего страшного не сделали. Выдавая 3, вычтем всё соответствующим образом; имеем теперь
.
Опять шаг (3) не выполним, берём очередной элемент.
. Теперь мы можем выдать 1, придём к
. Тут повторится то, что мы делали только что, и выдастся ещё один раз 1:
. Тут мы опять можем заметить, что
при
. В итоге выйдет
. Результат по крайней мере правильный, а то я успел испугаться и ошибок в выкладках, и того, что какой-то важный опущеный случай не удастся восстановить.
-- Пт фев 19, 2021 01:21:47 --novichok2018Ну референс же есть на алгоритмы, который сам ТС и нашёл. Там описание правда не из понятнейших, но я вот смог что-то посчитать, не знаю.