понеділок, 5 жовтня 2020 р.

Задача "Марсіани"

Публікую авторський розв'язок задачі "Марсіани" Кроля Дані та Кулєшова Кості.  

Розшифруйте повідомлення, отримане з Марсу:

 +8-4+1-1+8-8+8-8-6+6

Відомо, що повідомлення закодоване поданою таблицею символів:








На початку передавання повідомлень вказівник знаходиться у положенні 0. Кожен наступний символ передається обертанням камери на вказану кількість поділок ліворуч (віднімання) чи праворуч (додавання). 

А ось опис їхнього розв'язку:

Є камера всередині кола з розподілами. Ділення названі символами від 0 до F і додатковий символ ?.

Слово задається шифром + 8-4 + 1-1 + 8-8 + 8-8-6 + 6, де кожне число - кількість поділів на яке повинна повернуться камера.

На початку програми камера знаходиться на 0-му розподілі і після повороту залишається на своїй позиції.

Створюється масив значень кола і лічильник, що дорівнює 0.

Створюється порожня текстова змінна, яка буде рішенням.

Після введення шифру, він ділився з 2 вирази, так як саме така частина відповідає 1 символу ASCII.

Після цього значення лічильника підсумовується з виразом і записується в тимчасову змінну.

Тимчасова змінна перетворюється в текст по таблиці з завдання і дописується до змінної з рішенням.

По закінченню циклу з перетворенням пар шифру в текст, виводиться рішення.

Таким чином, шифр + 8-4 + 1-1 + 8-8 + 8-8-6 + 6 позначає "HELLO". 

Створений хлопцями бот для розвязку цієї задачі, можно переглягути за посиланням:

https://discord.com/channels/754628468875984951/754628469350072367