2
여기 내 함수가 있는데 중요한 줄은 f()를 다시 호출하는 곳입니다.잘못된 값을 호출하는 함수
def f(num,xyz,possible,temp):
y = num%9
x = num-y
print num
for xyz[num] in possible[num]:
if ispossibility(temp,xyz[num],x,y) == True:
temp[num] = xyz[num]
if num != 80:
f(num+1,xyz,possible,temp) # i call f() with num incremented
else:
print 'yes'
exit()
프로그램의 출력
0
1
2
3
4
5
6
7
8
3
2
3
3
문제는 함수 F()가 호출 될 때마다, 가변 NUM은 항상 1이 아니라 (출력, F로 증가되어야한다는이다)는 이전에 8이었을 때 num을 3으로 호출합니다. 그리고 나는 f()가 항상 1로 증가 된 w/num으로 불리우면 그것이 가능한지 (출력은 9 btw가 아니라 3이되어야 함) 궁금합니다. 나는이 함수를 지금 당분간보고 있었고, 무슨 일이 일어나고 있는지 이해하지 못한다.
인수의 초기 값은 무엇입니까? 다른 말로하면, 귀하의 초기 통화는 어떻게 생겼습니까? 'f '(0, ..., ..., ...)'이'...'대신에 무엇입니까? 또한 우리에게'ispossibility' 함수를 주십시요. – Tadeck
가능한 [num] :'에서 xyz [num]의 줄은 무엇입니까? 나는 그걸 전에 본 적이 있는지 모르겠다. – DSM
DSM 나는 스도쿠 솔버를 만들기 위해 노력하고 있으므로 가능한 모든 숫자가 각각의 상자에 포함됩니다. 따라서 가능한 마지막 상자의 가능성을 가진 가능한 [80]까지 [[1,2], [2,4,2] ...] 등이 가능한 것처럼 보입니다. 내 코드를 살펴본 후, xyz [num]를 사용하는 것이 필요하지 않다는 것을 알았습니다. 저는 함수를 호출하므로 변수가 로컬이 될 것입니다. 그러나 당신이 xyz를 이해하지 못한다면 [num]은 상자의 가능한 모든 순열을 시도하는 데 사용됩니다. 나는 내가 지금하고있는 더 나은/이해할 수있는 방법을 안다고 생각한다. DSM에 감사드립니다. – bab