Найти - Пользователи
Полная версия: Графический исполнитель "Робот"
Начало » Python для новичков » Графический исполнитель "Робот"
1 2 3 4 None 19 20 21 22 23 24 25 26 27 28 29 30 31
0ppa
py.user.next
awk уже что-то похожее на шифрование. Как понять как работает Машина Тьюринга (Бомба)? Наверное чтобы понять алгоритмы нужно быть немного гением как Алан Тьюринг Что скажете (не обо мне, пожалуйста)?
upd почистил от оффтопа
FishHook
0ppa
Что скажете?
вы правы, вы тупой
0ppa
FishHook
Добрый день, спасибо большое за констатацию факта, пришлось поправить первоначальный вопрос. Но все же попробую перефразировать вопрос. Если верить интернету на сборку аналогичной Бомберу машины, заняло у ученых 10 лет. На сколько реально нынешнее программирование связано с теми, что использовал Тьюринг? Разве нужно быть вторым Марковым чтобы стать программистом?
py.user.next
0ppa
awk уже что-то похожее на шифрование.
Никакого отношения awk к шифрованию не имеет. awk - это транслятор: входит один текст, проходит через правила, выходит другой текст.

Например, умножить все числа текста на два
[guest@localhost ~]$ echo "abc 1 def 2 ghi 3 jkl" | awk '{for (i = 1; i <= NF; i++) if ($i ~ /[0-9]+/) $i *= 2; print}'
abc 2 def 4 ghi 6 jkl
[guest@localhost ~]$
0ppa
Как понять как работает Машина Тьюринга (Бомба)? Наверное чтобы понять алгоритмы нужно быть немного гением как Алан Тьюринг
Машину Тьюринга нужно изучать, но она не имеет отношения к взлому немецкой Энигмы и к Bombe вообще. Машина Тьюринга - это абстрактный исполнитель в виде бесконечной ленты ячеек и перемещающейся по ленте головке влево и вправо, которая может читать и переписывать значения на ленте.
wiki. Машина Тьюринга
Пригодиться она может при дальнейшем построении конечных автоматов, на которых как раз и строятся трансляторы.

0ppa
Если верить интернету на сборку аналогичной Бомберу машины, заняло у ученых 10 лет.
Забудь про Bombe.
0ppa
 def task_7_5():
    move_right()
    fill_cell()
    n=0
    b=0
    c=0
    while not wall_is_on_the_right():
        if n==b:
            if not wall_is_on_the_right(): 
                move_right()
                if not wall_is_on_the_right():
                    fill_cell()
                    c+=1
                    b=n+c
        else:
            move_right()
            n+=1
сделал 27-ю, сделал без вычитаний, насколько я понял Питону все равно, он сожрет неиспользуемые данные, поэтому я могу складывать до бесконечности.
py.user.next
0ppa
сделал 27-ю, сделал без вычитаний
Здесь делал эту задачу.

Там у меня две переменных только.
0ppa
Сделал 30 задачу, как научился в задаче с крестами и этого раздела со счетчиком. Но если до этого использовал три переменные тут получилась куча. Даже решение моё сюда не войдет. вот - https://pastebin.com/qMLsEdp3
Я сделал так как научили меня задания выше. Оказывается это не правильно, и все делают иначе.
Не могу понять решения, тут уже не подпрограммы используют как в крестах, а по порядку закрашиванием.
Вот например решение (из гитхаба):
     m = 1
    while not wall_is_on_the_right():
        m += 1
        move_right()
    while not wall_is_on_the_left():
        move_left()
    for i in range(m):
        for j in range(m):
            if i != j and i != m - 1 - j:
                fill_cell()
            if j != m-1:
                move_right()
        while not wall_is_on_the_left():
            move_left()
        if i != m-1:
            move_down()
Тут уже какие-то матричные свойства используют или комбинаторика? Пытался нагуглить ничего полезного не нашел.
py.user.next
0ppa
Сделал 30 задачу
Здесь делал эту задачу.

0ppa
Оказывается это не правильно, и все делают иначе.
Да там нет единственного правильного решения. Можно и построчно закрашивать, и закрашивать всё поле как матрицу, кроме диагоналей этой матрицы. Я же сделал через переиспользование одной и той же параметризованной процедуры.

0ppa
Тут уже какие-то матричные свойства используют или комбинаторика?
Он рассматривает поле как матрицу и исключает диагонали матрицы из процесса закрашивания.

Смотри, как я сделал. Это полезнее. Далеко не всегда ты сможешь поле рассмотреть как матрицу. Это только в этой задаче всё удобно и выглядит симметрично и поэтому подходит такой способ с диагоналями. Зато практически всегда ты будешь искать повторяющиеся структуры. Пути будешь нарезать на повторяющиеся и примыкающие друг к другу отрезки, большие и сложные фигуры будешь раскладывать на примыкающие друг к другу четырёхугольники или треугольники, тексты будешь раскладывать на идущие друг за другом предложения, предложения будешь раскладывать на идущие друг за другом слова, трафик будешь раскладывать на идущие друг за другом пакеты и так далее. И со всем этим всегда будет работать какая-то базовая процедура, которую ты будешь последовательно применять к одинаковым фрагментам единого целого.

Здесь, в этой задаче, тоже есть всё поле, которое состоит из одинаковых колец, которые просто сужаются к центру. Поэтому делается процедура, обрабатывающая одно любое кольцо. А потом эта процедура применяется последовательно к самому большому кольцу, затем к кольцу поменьше, затем к кольцу ещё меньше и так далее, пока не дойдёт до кольца нулевого диаметра. А диаметр кольца задаётся параметром процедуры, поэтому эта процедура применима к кольцам разного диаметра.
y_c
Добрый день, возникла проблема с выполнением кода:

 @task
def task_1_2():
    def check_fill():
        if cell_is_filled() == False:           # проверяем закрашена ли клетка
            fill_cell()
    for i in range(3):
        check_fill()
        move_right()
        check_fill()
        move_down()
    move_right()

fill_cell закрашивает каждую ячейку, неважно какое значение она возвращает true/false (скриншот выполнения программы во вложении)
Из-за этого не могу успешно завершить выполнение
При задании условия через if not cell_is_filled(): та же самая проблема
py.user.next
y_c
Добрый день, возникла проблема с выполнением кода:
  
def task_1_2():
Что-то не нашёл там такого задания по номеру 1_2. В чём состоит задание?
Закрасить клетки можо и без проверки. А проверяющая функция работает.

y_c
cell_is_filled закрашивает каждую ячейку
cell_is_filled() ничего не закрашивает. Что белые, что бирюзовые клетки - это всё незакрашенные клетки. А закрашенные клетки - это жёлтые.

Так что 1) определись, что ты делаешь 2) закрась клетки без проверки.

Add
Поправил цвета у клеток: закрашенные - это жёлтые; незакрашенные и требующие закрашивания - бирюзовые; незакрашенные и нетронутые - это белые.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB