게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
파이썬]모든 가능한 이진수를 찾는 코드 질문있습니다.
게시물ID : programmer_3367짧은주소 복사하기
작성자 : Jabberwocky
추천 : 0
조회수 : 1057회
댓글수 : 9개
등록시간 : 2014/05/19 14:59:22
옵션
  • 베스트금지
파이썬으로 3으로 채워진 리스트를 주면 그 비트 만큼의 이진수를 표현해주는 코드를 짜려고 하는데요(예를 들어 [3,3,3,3]을 넣으면 모든 가능한 4비트 2진수를 표현하는 방식)

현재 짠 코드가

def binaryComb(placeList, current, finalList):
    if current == len(placeList):
        finalList.append(placeList)
    else:
        if placeList[current] == 3:
            placeList[current] = 0
            binaryComb(placeList, current + 1, finalList)
        
            placeList[current] = 1
            binaryComb(placeList, current + 1, finalList)
            placeList[current] = 3
        return finalList

이렇습니다. 꼭 recursion을 써서 하고 싶은데 일단 현재 append가 있는 곳에서 append 대신 프린트 function을 쓰면 모든 이진수가 나오기는 하는데요, append를 해서 마지막에 리턴받은 값으로 프린트를 하면 16개의 [3,3,3,3]이 나옵니다. 갯수는 맞는데 정작 리스트에는 3밖에 없어요 ㅠㅠ

 마지막 placeList[current] = 3 때문인거 까지는 확인했는데 왜 그런건지, 어떻게 고쳐야 finalList가 모든 이진수 값을 저장한 값이 나오는 건지 알 수가 없습니다. 혹시 도와주실분 안계시나요?
전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호