задать вопрос заказать перевод 
Нажав на кнопку "Предварительно выбрать", Вы добавите этого переводчика в форму оформления заказа.
Отправить запрос
Анкета добавлена в форму
26641

Переводчик Заика Юлия Игоревна

632
Свободен
Дата регистрации: 12 августа, 2020 г.
Женский
 
Специализации: 
Письменные переводы (Перевод сайтов, Художественный, Технический, Игры, Азартные игры, видеоигры, Искусство / литература, Кино и ТВ, Компьютеры: «железо», Компьютеры: общая тематика, Компьютеры: программы, Компьютеры: сети, Кулинария, Патенты, Политика, Туризм, Экология)
Редактура
 
Родной язык: 
Русский
Иностранные языки:
Английский
Немецкий
 
Фрилансер
 
Программы: 
Microsoft Word, Microsoft Excel, Microsoft PowerPoint, Trados, Smartcat
Образование: 
Донской государственный технический университет, специальность: лингвист-переводчик, 2015-2020.
Возраст: 
27 лет
Контакты: 
 
Документы, подтверждающие квалификацию: 
Образцы переводов
В данной статье мы на конкретном примере разберем сценарий, когда использование рекурсии может привести к неожиданным и плачевным результатам, а также предложим вариант решения данной проблемы, если вы все-таки нашли рекурсию внутри кода.
Итак, нам дана следующая матрица:
Наша задача — вычислить максимальное количество стоящих рядом элементов с одинаковыми значениями.
То есть, программа должна в данном случае выдать число 4.
Для решения нам вполне хватит консольного приложения на C#.
Рекурсивный вариант решения с комментариями:
Результат работы программы:
Проблема
И вроде бы всё хорошо, ломаться тут нечему.
Давайте увеличим размер матрицы до 100 на 100 и уберем первоначальную инициализацию.
То есть у нас будет матрица 100×100, заполненная нулями.
По логике программа должна выдать число 10000.
Переполнение стека.
Так как у нас вся матрица заполнена нулями, то для получения необходимого результата нам нужно 10000 вложенных вызовов нашей рекурсивной функции.
Необходимая память для разворота такой рекурсии превышает ограничение в 1 Мб для стека вызовов.
Решением будет создать свой импровизированный стек и имитировать вызовы функций вручную, подражая тому, что делает компилятор.
Ко всему прочему, необходимо создать вспомогательный класс, экземпляры которого будут хранить в себе аргументы, необходимые для работы, а также итоговый для каждого вызова результат.
Ещё стоит отметить, что мы имеем дело не с обычной хвостовой рекурсией.

In this article, we are using a specific example to analyze a scenario when the use of recursion can lead to unexpected and disastrous results. And if you find troublesome recursion inside your code, this article helps you avoid the consequences.
We got the matrix
Our task is to calculate the maximum number of adjacent elements with the same values. i.e., the program should return the number 4. C# console application is enough to address the challenge.

Recursive solution with comments:
The result of the program:
The issue
Everything looks fine. For now. Let's increase the matrix size to 100х100 and remove the initialization with custom values. Now we have a 100x100 matrix filled with zeros and the program should return the number 10000.
Since the entire matrix is filled with zeros, we need 10,000 nested calls to our recursive function for the desired result. The maximum call stack size is limited to 1 MB, so we don't have enough memory to handle such a recursion.
What should we do in this case?
The solution is to create your own stack and simulate function calls manually, mimicking what the compiler does. In addition, you need to create a helper class and its instances will store the arguments required for operation, as well as the final result for each call.

Тарифы

Письменный перевод: 

Английский 
400-550
 РУБ
/ 1800 знаков
Немецкий 
500-750
 РУБ
/ 1800 знаков
Редактура 
300-500
РУБ
/ 1800 знаков
Рекомендовать переводчика:   

Заявка на расчет переводчикам

Для расчета стоимости перевода выбранными переводчиками заполните свою контактную информацию, данные о заказе, а также, если возможно, прикрепите файлы для оценки заказа.

Приложить файл
Максимальный размер файла: 2 МБ.
Разрешённые типы файлов: gif jpg jpeg png bmp eps tif pict psd txt rtf odf pdf doc docx ppt pptx xls xlsx xml avi mov mp3 ogg wav bz2 dmg gz jar rar sit tar zip.

Вы выбрали переводчиков:

Всего выбрано: 0

Ничего не выбрано

Наверх