2016년 9월 21일 수요일

python for 문 사용시 주의해야할 점

--- 잘못된 예  (i는 0부터 시작한다.  밑줄 부분은 1부터 시작해야 한다.)
def Michalewicz(self,dim,x,m):
        sum = 0
        for i in range(dim):
            new = np.sin(x[i]) * ((np.sin(i*(x[i]**2) / np.pi))**2*m)
            sum  = sum + new
        return -1 * sum


----- 잘된 예 ( i + 1 로 했다.)
def Michalewicz(self,dim,x,m):
        sum = 0
        for i in range(dim):
            new = np.sin(x[i]) * ((np.sin((i+1)*(x[i]**2) / np.pi))**2*m)
            sum  = sum + new
        return -1 * sum

이런거 잘 보자. 이것때메 엄청 삽질했다.

댓글 없음:

댓글 쓰기