AD
у меня работает
практически везде
Size: a a a
AD
PB
PB
¯
AD
¯
🅹
import random as rВроде все просто, но при таком заполнении чем больше будет число, тем дольше придется дожидаться результата, ведь количество тупиковых вариантов увеличивается в прогрессии. Как бы ентот момент оптимизировать?..
from pprint import pprint
def matrix_shuffle(size: int = 2):
if size <= 1: return
nums = list(range(1, size+1))
while True:
try:
matrix = []
col = [*map(list, [[]]*size)]
while size - len(matrix):
row = []
for i in range(size):
col[i].append(r.choice(list(set(nums) - set(row) - set(col[i]))))
row.append(col[i][-1])
matrix.append(row)
except: continue
else: return matrix
pprint(matrix_shuffle(5))
PB
ПЛ
ПЛ
ПЛ
ПЛ
🅹
ПЛ
🅹
ПЛ
ПЛ
🅹