2017-12-21 10 views
-1

가 나는 codewars를 해결하기 위해 노력하고 있어요 (http://www.codewars.com) 도전 :Python : Tribonacci 시퀀스 -이 코드의 차이점은 무엇입니까?

6 규 : 피보나치, Tribonacci 친구


는 도전하십시오 Quadribonacci의

생각해은 서명 시작 4 개의 요소와 각각의 다음 요소의 합은 이전의 4 가지의 합계입니다. Pentabonacci (잘 Cinquebonacci는 아마도 이탈리아어가 조금 더 들리 겠지만 실제로는 끔찍할 것입니다)에 5 개의 요소와 각 요소의 서명이 있습니다 이전 5 개의 합계입니다.

X 요소의 서명을 취하고 각 다음 요소가 마지막 X 요소의 합계임을 기억하는 Xbonacci 함수를 작성하고 시드 된 시퀀스의 첫 번째 n 요소를 반환해야합니다.


하지만이 두 기능의 차이점을 이해할 수는 없습니다. 첫 번째 것은 거부되었지만 두 번째는 승인되었습니다.

코드를 거부 :

def Xbonacci(signature, num):  
    a_list = signature[:] 
    final_list = signature[:] 

    for i in range(0, num-len(signature)):  

     a = sum(a_list[ :len(a_list)])     
     final_list.append(a)     
     a_list.append(a)  
     a_list.remove(a_list[0]) 

    return final_list 

코드 가능 :

def Xbonacci(signature,n): 
    result = signature[:] 

    for x in range(n-len(signature)): 
     current_fib = 0 
     start = len(result) - len(signature) 
     for y in result[start:]: 
      current_fib += y 
     result.append(current_fib) 

    return result[:n] 

내가 실종 무엇인가?

+0

답변

1

n < len(signature) 일 때 두 함수의 동작이 다릅니다.

기능 1 :

>>> Xbonacci([1, 2, 3], 1) 
[1, 2, 3] 

함수 2 : 도전 말한다

>>> Xbonacci([1, 2, 3], 1) 
[1] 

때문에 "소위 시드 시퀀스의 첫 번째 N 개의 요소를 반환"첫 번째 함수는 부정확하다.

+0

결과 [: n] 그 차이가있었습니다! 감사합니다. – Felix

관련 문제