ZIK1337
@ZIK1337

Машина Тьюринга для нахождения остатка от деления?

Под «единичной» системой счисления понимается запись неотрицательного
целого числа с помощью палочек – должно быть выписано столько палочек,
какова величина числа; например: 2 →∣ ∣, 5 →∣ ∣ ∣ ∣ ∣ ∣ , 0 → < пустое слово >.

R07JhdC.jpg
pBGJicu.jpg

Div сделать вышло, но там у меня при вычитании процесс не останавливается, когда остаток становится меньше делителя. Тут же как раз нужно остановиться, остаток в ответ и нужен, каким образом это можно сделать?
Проверять каждый раз, какое число больше, думаю слишком запутано будет

div примерно так реализован:
копируется делитель слева от делимого (слева от "-"), и потом в цикле стираются по одной первой палочке у копии делителя и у делимого, как копия делителя кончилась - добавляется одна палочка в конец слова (после "=")
после вновь копируется делитель (слева от "-") и вновь вычитание, пока не кончится делимое
  • Вопрос задан
  • 1601 просмотр
Пригласить эксперта
Ответы на вопрос 2
ZIK1337
@ZIK1337 Автор вопроса
Никто не знает, как остановиться, если остаток стал меньше делителя?
Пример:
Дано: |||/||

||-|||/||=
|-||/||=
-|/||=|
||-|/||=| - так у меня работает div, после "=" - целая часть при делении
и вот на этом шаге нужно остановиться и зафиксировать в ответ 1 (число между - и /)
но по алгоритму для div у меня сначала удалит еще по палочке, а потом уже закончит, когда увидит, что слева от / ничего нет:
|-/||=|
-/||=|
|
Ответ написан
Комментировать
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
Div сделать вышло, но там у меня при вычитании процесс не останавливается, когда остаток становится меньше делителя.
Сначала проверяем результат, затем - применяем его. У Вас - всё наоборот!
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы