Как это?
Объяснение:
Закраски клеток (команда 5) здесь нет, значит надо просто обеспечить более короткое перемещение в ту же конечную точку.
Для этого посмотрим, что за движения там записаны.
Если во всём алгоритме три раза вверх и три раза вниз- то робот вернётся в ту же точку (по вертикали), и значит все эти команды можно просто удалить.
То же самое- для движений влево и вправо. Они тоже взаимно противоположные.
Другими словами- надо просто сократить все пары движений влево-вправо и вверх-вниз. Всё что останется- это и есть короткий вариант алгоритма, который даст перемещение ту же самую конечную точку.
Запишу подробнее, как сократить алгоритм движения (только для случая без закраски):
а) берём наш алгоритм: 131413324223
б) во всём алгоритме считаем количество команд перемещения для каждого из направлений движения:
1 (вверх)- 3 штуки
2 (вниз)- 3 штуки
3 (влево)- 4 штуки
4 (вправо)- 2 штуки
в) считаем разность количества команд влево и вправо (из большего числа вычитаем меньшее): 4 - 2 = 2
Осталось две команды - влево (т.к. их было больше). Остальные команды влево-вправо сократились (мы их удалили из алгоритма).
г) считаем разность количества команд вверх и вниз (из большего числа вычитаем меньшее, но тут числа равны): 3 - 3 = 0
Не осталось ни одной команды вверх или вниз. Все эти команды сократились (мы их удалили из алгоритма).
д) получаем, что в коротком варианте алгоритма останутся только две команды влево (3).
Запишем весь алгоритм: 33
проверки требуют 58 правок.
Три зако́на роботехники в научной фантастике — обязательные правила поведения для роботов, впервые сформулированные Айзеком Азимовым в рассказе «Хоровод» (1942).
Айзек Азимов, 1965
Законы гласят:
Робот не может причинить вред человеку или своим бездействием допустить, чтобы человеку был причинён вред.
Робот должен повиноваться всем приказам, которые даёт человек, кроме тех случаев, когда эти приказы противоречат Первому Закону.
Робот должен заботиться о своей безопасности в той мере, в которой это не противоречит Первому или Второму Законам.
Оригинальный текст (англ.)
A robot may not injure a human being or, through inaction, allow a human being to come to harm.
A robot must obey orders given it by human beings except where such orders would conflict with the First Law.
A robot must protect its own existence as long as such protection does not conflict with the First or Second Law.
Трём Законам, а также возможным причинам и следствиям их нарушения, посвящён цикл рассказов Азимова о роботах. В некоторых из них, наоборот, рассматриваются непредвиденные последствия соблюдения роботами Трёх Законов (например, «Зеркальное отражение»).
В одном из рассказов цикла персонаж Азимова приходит к заключению об этической основе Трёх Законов: «…если хорошенько подумать, Три Закона роботехники совпадают с основными принципами большинства этических систем, существующих на Земле… попросту говоря, если Байерли исполняет все Законы роботехники, он — или робот, или очень воспитанный человек»[1].
В 1986 году в романе «Роботы и Империя» (англ. Robots and Empire) Азимов предложил Нулевой Закон:
0. Робот не может причинить вред человечеству или своим бездействием допустить, чтобы человечеству был причинён вред.
Оригинальный текст (англ.)
0. A robot may not harm humanity, or, by inaction, allow humanity to come to harm.
Три закона роботехники — объединяющая тема для всей фантастики Азимова, включая не только цикл о роботах, но и некоторые другие произведения.
Число не влияет на сглаживание кривой