Уведомления

Группа в Telegram: @pythonsu

#1 Сен. 24, 2020 18:04:23

0ppa
Зарегистрирован: 2020-08-12
Сообщения: 18
Репутация: +  1  -
Профиль   Отправить e-mail  

Графический исполнитель "Робот"

py.user.next
awk уже что-то похожее на шифрование. Как понять как работает Машина Тьюринга (Бомба)? Наверное чтобы понять алгоритмы нужно быть немного гением как Алан Тьюринг Что скажете (не обо мне, пожалуйста)?
upd почистил от оффтопа

Отредактировано 0ppa (Сен. 25, 2020 10:25:57)

Офлайн

#2 Сен. 24, 2020 18:14:39

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Графический исполнитель "Робот"

0ppa
Что скажете?
вы правы, вы тупой



Офлайн

#3 Сен. 25, 2020 09:12:29

0ppa
Зарегистрирован: 2020-08-12
Сообщения: 18
Репутация: +  1  -
Профиль   Отправить e-mail  

Графический исполнитель "Робот"

FishHook
Добрый день, спасибо большое за констатацию факта, пришлось поправить первоначальный вопрос. Но все же попробую перефразировать вопрос. Если верить интернету на сборку аналогичной Бомберу машины, заняло у ученых 10 лет. На сколько реально нынешнее программирование связано с теми, что использовал Тьюринг? Разве нужно быть вторым Марковым чтобы стать программистом?

Офлайн

#4 Сен. 25, 2020 10:58:15

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9716
Репутация: +  842  -
Профиль   Отправить e-mail  

Графический исполнитель "Робот"

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.



Офлайн

#5 Окт. 7, 2020 15:00:54

0ppa
Зарегистрирован: 2020-08-12
Сообщения: 18
Репутация: +  1  -
Профиль   Отправить e-mail  

Графический исполнитель "Робот"

 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-ю, сделал без вычитаний, насколько я понял Питону все равно, он сожрет неиспользуемые данные, поэтому я могу складывать до бесконечности.

Офлайн

#6 Окт. 7, 2020 23:51:04

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9716
Репутация: +  842  -
Профиль   Отправить e-mail  

Графический исполнитель "Робот"

0ppa
сделал 27-ю, сделал без вычитаний
Здесь делал эту задачу.

Там у меня две переменных только.



Офлайн

#7 Окт. 18, 2020 10:57:37

0ppa
Зарегистрирован: 2020-08-12
Сообщения: 18
Репутация: +  1  -
Профиль   Отправить e-mail  

Графический исполнитель "Робот"

Сделал 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()
Тут уже какие-то матричные свойства используют или комбинаторика? Пытался нагуглить ничего полезного не нашел.

Офлайн

#8 Окт. 18, 2020 13:32:36

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9716
Репутация: +  842  -
Профиль   Отправить e-mail  

Графический исполнитель "Робот"

0ppa
Сделал 30 задачу
Здесь делал эту задачу.

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

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

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

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



Офлайн

#9 Окт. 23, 2020 11:14:12

y_c
Зарегистрирован: 2020-10-23
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

Графический исполнитель "Робот"

Добрый день, возникла проблема с выполнением кода:

 @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(): та же самая проблема

Отредактировано y_c (Окт. 23, 2020 13:36:30)

Прикреплённый файлы:
attachment t9sb7.jpg (36,7 KБ)

Офлайн

#10 Окт. 23, 2020 12:47:04

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9716
Репутация: +  842  -
Профиль   Отправить e-mail  

Графический исполнитель "Робот"

y_c
Добрый день, возникла проблема с выполнением кода:
  
def task_1_2():
Что-то не нашёл там такого задания по номеру 1_2. В чём состоит задание?
Закрасить клетки можо и без проверки. А проверяющая функция работает.

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

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

Add
Поправил цвета у клеток: закрашенные - это жёлтые; незакрашенные и требующие закрашивания - бирюзовые; незакрашенные и нетронутые - это белые.



Отредактировано py.user.next (Окт. 23, 2020 15:56:46)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version