Tabii koyabilirim, ancak göz zevkini bozuyor, bilmiyorum sitede kod destekli "indent" vs gibi konuları kapsayan görünüm sağlayan bir şey var mı?
import time
time1=time.time()
lis,count,tablesize=[],0,4
def ObeyRule():
L=len(lis)-1
color=[[0]*3 for i in range(tablesize)]
#print(color)
Row,Col=divmod(L,tablesize)
#print("Row,Col,L=",Row,Col,L)
if Col>1:
#print("Row,Col,L=",Row,Col,L)
for i in range(L+1):
c,row=lis[i],i//tablesize
#print("c,row=",c,row)
color[row][c]+=1
#print("lis,color=",lis,color,L,Row,Col)
for j in range(Row+1):
if color[j][1]==2:
return False
if color[j][0]<=color[j][1]:
#print("lis=",lis,"color=",color,"L=",L,"Row=",Row,"Col=",Col)
return False
color=[[0]*3 for i in range(tablesize)]
if Row>1:
#print("Row,Col,L=",Row,Col,L)
for i in range(L+1):
c,col=lis[i],i%tablesize
#print("c,row=",c,row)
color[col][c]+=1
#print("lis,color=",lis,color)
for j in range(Col+1):
if color[j][0]<=color[j][1]:
return False
return True
def Solve():
global count
for i in range(3):
lis.append(i)
if ObeyRule():
if len(lis)<9:
Solve()
else:
#print(lis)
count+=1
lis.pop()
Solve()
print(count)
print(time.time()-time1)
Yukarıdaki jpeg dosyasındaki "tablesize" 3 idi, burada görüldüğü üzere 4'tür. Soruda da sorulan oydu, kod çalıştırılırken tablesize=3 yapılarak, verilen örnek için olması gereken yanıtın 451 sayısı olduğu görülür. Yâni değerlerle oynamak için, kodun çalıştırılabilir olması mantıklı.