Два натуральных числа запишутся двумя массивами единиц через пустую ячейку. {1; n} , {ø}, {1; m-1, 1} ==> {1, n; m} 3+2=5 [1, 1, 1, 1, ø, 1, 1, 1] На место ø пишем "1" В крайне правой ячейке удаляем "1" [1, 1, 1, 1, 1, 1] ~ "5"
@@dushkin_will_explain так я как будто знаю как, я зашел сюда объяснение посмотреть, а тут как то не логично Вы говорите, что x+y = 1^(x+y+1), при сложении 2 и 1: 2+1=1^(2+1+1)=1^(4), а у вас получается только 3 единицы в конце
Если Вы внимательно послушаете, то услышете, что 0 после первого числа заменяется на 1. В тексте это не сделали, а только проговорили. В конечном ответе на пустое место поставьте 1 и все будет соответствовать тому, что рассказано. Если Вам не понятно, то нужно просто с листиком и ручкой проделать все действия самостоятельно и тогда у Вас все получится. Это не сложно!
Поправлюсь - программа складывает два числа, НО ТОЛЬКО ЕСЛИ второе число - единица. Это не совсем прибавление единицы (оно было бы проще, естественно), но практический результат такой
вот эта - складывает два числа q0, 1 -> q0, 1, R q0, 0 -> q1, 0, R q1, 1 -> q2, 1, R q1, 0 -> q1, 0, R q2, 1 -> q5, 1, L q2, 0 -> q3, 0, L q3, 1 -> q4, 0, L q3, 0 -> q3, 0, L q4, 1 -> СТОП q4, 0 -> q6, 0, L q5, 1 -> q5, 0, L q5, 0 -> q0, 1, R q6, 1 - > СТОП q6, 0 - > СТОП эмулятор - programforyou.ru/calculators/turing-machine-emulator можно загрузить текст правил, сохранив его предварительно в файл: pastebin.com/k9xVpDg2 требования к вводу: вводить нужно два числа из единиц, разделенных строго одним нулем, в конце второго числа - поставить минимум один ноль (эмулятор плохо преагирует на просто пробел в ленте) читающая головка на любой единице первого числа Например: 1110110 как в ролике
Все видео канала по искусственному интеллекту: ua-cam.com/video/n3wEM7P11kI/v-deo.html
Вы всегда можете обратиться к нам за консультациями.
И, кроме того, вы всегда можете написать мне в ТГ: @rdushkin
Изображение из видео: disk.yandex.ru/i/o3ZYrGtHch-_Aw
Спасибо! Очень простое и понятное объяснение, посмотрел много видео роликов - ничего не мог понять. Теперь понял, спасибо еще раз
Прекрасно, пользуйтесь на здоровье!
Два натуральных числа запишутся двумя массивами единиц через пустую ячейку.
{1; n} , {ø}, {1; m-1, 1} ==> {1, n; m}
3+2=5
[1, 1, 1, 1, ø, 1, 1, 1]
На место ø пишем "1"
В крайне правой ячейке удаляем "1"
[1, 1, 1, 1, 1, 1] ~ "5"
+
Так получается, что необходимая память для записи на ленте этого сложения = (x+y)+3 ?
Почему? Мне кажется, что (x+y)+1.
ну и где же результат = 1111? вижу на ленте только 111.
Штош...
@@dushkin_will_explain что штош..., человек выше прав, где результат то?
@@whiteninja2249, ну напишите новую программу.
@@dushkin_will_explain так я как будто знаю как, я зашел сюда объяснение посмотреть, а тут как то не логично
Вы говорите, что x+y = 1^(x+y+1), при сложении 2 и 1: 2+1=1^(2+1+1)=1^(4), а у вас получается только 3 единицы в конце
Если Вы внимательно послушаете, то услышете, что 0 после первого числа заменяется на 1. В тексте это не сделали, а только проговорили. В конечном ответе на пустое место поставьте 1 и все будет соответствовать тому, что рассказано. Если Вам не понятно, то нужно просто с листиком и ручкой проделать все действия самостоятельно и тогда у Вас все получится. Это не сложно!
Эта программа не складывает два числа. Она прибавляет к первому числу единицу.
Какой таймкод?
Поправлюсь - программа складывает два числа, НО ТОЛЬКО ЕСЛИ второе число - единица. Это не совсем прибавление единицы (оно было бы проще, естественно), но практический результат такой
вот эта - складывает два числа
q0, 1 -> q0, 1, R
q0, 0 -> q1, 0, R
q1, 1 -> q2, 1, R
q1, 0 -> q1, 0, R
q2, 1 -> q5, 1, L
q2, 0 -> q3, 0, L
q3, 1 -> q4, 0, L
q3, 0 -> q3, 0, L
q4, 1 -> СТОП
q4, 0 -> q6, 0, L
q5, 1 -> q5, 0, L
q5, 0 -> q0, 1, R
q6, 1 - > СТОП
q6, 0 - > СТОП
эмулятор - programforyou.ru/calculators/turing-machine-emulator
можно загрузить текст правил, сохранив его предварительно в файл:
pastebin.com/k9xVpDg2
требования к вводу:
вводить нужно два числа из единиц, разделенных строго одним нулем, в конце второго числа - поставить минимум один ноль
(эмулятор плохо преагирует на просто пробел в ленте)
читающая головка на любой единице первого числа
Например:
1110110 как в ролике
@@epsoteps980, да, возможно.