이 질문의 요지는 가장 짧게 을 만들며, 악의적으로 느림은 아닙니다. 스도쿠 (Sudoku) 해결사입니다. 이것은 다음과 같이 정의됩니다 : 한 자리 수만있을 수있는 스폿이있는 경우 재발행하지 않습니다. 여기스마트 스도쿠 골프
최단 내가 파이썬 원경 가지고있다 :
import sys; R(map(int, sys.argv[1]);
이 :
r=range(81)
s=range(1,10)
def R(A):
bzt={}
for i in r:
if A[i]!=0: continue;
h={}
for j in r:
h[A[j]if(j/9==i/9 or j%9==i%9 or(j/27==i/27)and((j%9/3)==(i%9/3)))else 0]=1
bzt[9-len(h)]=h,i
for l,(h,i)in sorted(bzt.items(),key=lambda x:x[0]):
for j in s:
if j not in h:
A[i]=j
if R(A):return 1
A[i]=0;return 0
print A;return 1
R(map(int, "080007095010020000309581000500000300400000006006000007000762409000050020820400060"))
I는 CMD 라인 입력의 일부로 수행 마지막 라인, 이는 변경 될 수있다 불필요한 재귀를 제거하고 싶다는 점을 제외하면 다른 스도쿠 골프 과제와 유사합니다. 모든 언어가 허용됩니다. 도전 과제는 위에 있습니다!
좋은 그것은 확실히 내 버전에서 아래로 트리밍 것 - 할 수 없습니다 이 마이크로 옵틱 트릭을 생각해 보았습니다. 지금은 실제로 더 효과적으로 작동하는 훨씬 더 큰 버전을 만들었고 모든 스도쿠 솔루션을 얻을 수 있지만 문제 사양을 변경하고 있습니다. – Claudiu