Модифицированная задача о Ханойских башнях:
Условие:
ID студента = 70160611
Существует 8 шпинделей, пронумерованых от 8 до 1 слева направо. На каждом шпинделе надеты диски, в количестве, равном соответствующей цифре из ID студента. Все диски имеют разные диаметры. Диаметр диска равен M * 10 + N, где М – номер шпинделя, на котором надет диск, а N – это номер диска на шпинделе, считая сверху вниз.
а) За одну итерацию можно переместить не более одного диска
б) Диски можно класть только с большего на меньший
в) Со шпинделя номер 8 можно перекладывать диски только на шпиндели 7 и 6
г) Со шпинделя номер 1 можно перекладывать диски только на шпиндели номер 2 и 3
д) Со шпинделей от 2 по 7 можно перекладывать диски только на два соседних шпинделя.
Необходимо написать функцию(ии) (или класс, с соответствующими методами).
На вход в функцию будет подаваться процент, который соответствует проценту выполнения итерации. Таким образом 0% это нулевая итерация, 100% это последняя итерация.
На выходе функция должна отдать следующую информацию:Пример 2:
На вход подали 100%Выход: итерация <такая-то, последняя>, расположение:
8 шпиндель:На вход может быть подан любой процент, не только 0% или 100%.
Уточнения:Если на вход подается процент, а в результате получается дробная итерация, функция должна выдать номер итерации как дробный, с округлением до 3 цифр после нуля.
В дробном случае функция должна выдать информацию какое кольцо снято на предыдущей итерации и на какое кольцо будет выполнен перенос на следующей (в дальнейшем в программе будет графический интерфейс, где нужно будет отобразить данный номер диска в воздухе, над тем шпинделем, на который он переносится)
Формат вывода функции:
Формат вывода не является строго регламентированным (список, словарь, текст, матрица или вывод в консоль). Возможно не горизонтальное (как в примере), а вертикальное отображение.
Результат работы функции в дальнейшем будет использоваться в других классах\функция и визуализации графического интерфейса программы, поэтому должен быть удобен для последующей работы и парсинга.