5x5 Проблема пересечения матрицы путем пересечения максимума 4-салона [закрыто]Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 5x5 Проблема пересечения матрицы путем пересечения максимума 4-салона [закрыто]

Сообщение Anonymous »

Напишите код Python для определенной задачи, определенной на реже:
сначала создайте матрицу 5x5 . Условия или свойства для матрицы: < /p>

Измерение матрицы составляет 5x5 < /li>
Матрица состоит из любых случайных значений от 1 до 99 < /li>
Значение матрицы должна быть уникальной, что означает, что это означает, что значения не позволяют < /> < />>

>

> Должен присутствовать в матрице, а также < /li>
Значение 1 должно присутствовать в середине матрицы, то есть в Cell (2,2) и < /li>
Значение 99 должно присутствовать в матрице где -то < /li>
< /ol>
Существует выборка: < /p>
< /ol>
Существует выборка: < /p> < />

Существует выборка: < /p>
< /ol>
.[ [35, 67, 93, 25, 48],
[50, 32, 69, 70, 95],
[ 2, 3, 1, 41, 73],
[10, 15, 20, 81, 35],
[99, 27, 5, 6, 7] ]
< /code>
Сейчас начинается с 1, мы должны достичь 99. Мы можем пройти только максимум 4 с соседями текущей ячейки. Например, изначально мы находимся в 1. В приведенной выше матрице выборки 4-самих районов 1 составляют 3, 41, 69, 20. Тогда в этом случае нам разрешено только пройти только 69, поскольку это максимум 4-й. Итак, от 1 мы переходим к 69. Теперь мы должны снова найти самые большие 4-салоны 69 и перейти к этому значению. После этого процесса мы должны достичь 99. Но начиная с 1, мы должны достичь 99 в 24 ходах. Мы не можем достичь 99 из 1 за менее или более 24 движений. И самое главное, обратно не допускается, то есть мы не можем пересечь клетку, которая уже была пройдена, клетку может пройти только один раз. < /P>
Я попытался решить проблему. Но, следуя выше, я обнаружил, что достигаю 99 за 24 шага. Итак, я решил игнорировать 99 (если оно будет признано самым большим 4-салотным в любых ходах), пока я не достигнут 24 шага, как показано на изображении. Но я не могу достичь 99, путь был заблокирован после определенных движений, как показано на изображении. Не существует достоверного пути после 18 перемещений. Если это возможно, предоставьте код Python для решения проблемы < /p>
Я пишу алгоритм вышеуказанных шагов, так как < /p>
Step 1: Declare a dictionary called "neighbours" to store the 4-neighbours of a cell
Step 2: Declarea a list called "visited" to store the visited cell coordinate so that the visited cell be avoid in next moves
Step 3: Initialize a tupple (r,c) to (2,2) to start from center
Step 4: Initialize step_count = 0
Step 5: Calculate the 4 neighbours of (r,c) using formula (r-1, c), (r+1, c), (r, c-1), and (r, c+1)
Step 6: Check that these 4 neighbours remain within the matrix boundaries to avoid out-of-bounds errors
Step 7: Store the value of the 4 neighbours in dictionary "neighbours" where key is the cell coordinate and value is corresponding coordinate value
Step 8: Arrange value of the dictionary "neighbours" in descending order
Step 9: While loop: repeat until step_count = 24:
a) Calculate the 4 neighbours of (r,c) using formula (r-1, c), (r+1, c), (r, c-1), and (r, c+1)
b) Exclude neighbors already in visited.
c) Ignore the cell containing 99 until the 24 step.
d) Clear "neighbours" dictionary
e) Store the values of remaining neighbours in the "neighbours" dictionary (key = coordinate, value = cell value)
f) Sort "neighbours" in descending order by value.
g) Pick the first coordinate from the sorted dictionary.
h) Update (r,c) to this coordinate.
i) Append (r,c) to visited.
j) Increment step_count by 1.


Подробнее здесь: https://stackoverflow.com/questions/797 ... neighbours
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»