Salut, je m'entraine en python et j'essaye de faire un carré magique qui fait en gros ça pour un entier x
111111
122221
123321
123321
122221
111111
Genre un carré de 1 puis un de 2 à linterieur etc, là c'est pour x=6
J'ai testé toutes mes idées mais ça fait 2h que je trouve pas mieux que ça
def target(x):
if x%2==0:
mid=x//2
else:
mid=1+x//2
l=[]
for i in range(x):
l.append([0]*x)
for i in l:
for j in range(len(i)):
i[j]=[1]+[j+1]*(len(i)-2*j+1)+[1]
print(l)
target(6)
Ce qui me donne
[[[1, 1, 1, 1, 1, 1, 1, 1, 1], [1, 2, 2, 2, 2, 2, 1], [1, 3, 3, 3, 1], [1, 4, 1], [1, 1], [1, 1]], [[1, 1, 1, 1, 1, 1, 1, 1, 1], [1, 2, 2, 2, 2, 2, 1], [1, 3, 3, 3, 1], [1, 4, 1], [1, 1], [1, 1]], [[1, 1, 1, 1, 1, 1, 1, 1, 1], [1, 2, 2, 2, 2, 2, 1], [1, 3, 3, 3, 1], [1, 4, 1], [1, 1], [1, 1]], [[1, 1, 1, 1, 1, 1, 1, 1, 1], [1, 2, 2, 2, 2, 2, 1], [1, 3, 3, 3, 1], [1, 4, 1], [1, 1], [1, 1]], [[1, 1, 1, 1, 1, 1, 1, 1, 1], [1, 2, 2, 2, 2, 2, 1], [1, 3, 3, 3, 1], [1, 4, 1], [1, 1], [1, 1]], [[1, 1, 1, 1, 1, 1, 1, 1, 1], [1, 2, 2, 2, 2, 2, 1], [1, 3, 3, 3, 1], [1, 4, 1], [1, 1], [1, 1]]]
Des idées svp ?