close_btn
  • ※ 현재 페이지의 QR 코드


  • ※ 사이트 내부 통합검색


  • ※ Paypal 기부하기
    ※ 카카오페이로 기부하기
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

문제 :

비오는 어느 날에 5명이 한 집에 모였습니다. 모임이 끝나고 돌아가려는데 갑자기 정전이 되어 어떤게 자기 우산인지 알 수 없게 되었고, 하는 수 없이 모두 아무 우산을 하나씩 들고 집으로 돌아갔습니다. 

이 때 자기 우산을 가져간 사람이 0명일 경우의 수부터 5명인 경우의 수까지 차례대로 구하시오.

 

Define umb()=
Prgm
:
:Local this_combi
:Local my_umb,n_person
:
:newList(6)→n_person
:
:For d5,1,5
:
:  For d4,1,5
:    If d5=d4 Then
:      Goto pass4
:    EndIf
:
:    For d3,1,5
:      If d5=d3 or d4=d3 Then
:        Goto pass3
:      EndIf
:
:      For d2,1,5
:        If d5=d2 or d4=d2 or d3=d2 Then
:          Goto pass2
:        EndIf
:
:        For d1,1,5
:          If d5=d1 or d4=d1 or d3=d1 or d2=d1 Then
:            Goto pass1
:          EndIf
:
:© New Permutation list generated
:          1*{d5,d4,d3,d2,d1}→this_combi
:          0→my_umb
:
:© Count matching person
:          For each_d,1,5
:            If this_combi[each_d]=each_d Then
:              my_umb+1→my_umb
:            EndIf
:          EndFor
:
:          n_person[my_umb+1]+1→n_person[my_umb+1]
:
:©          Disp "Test Disp",this_combi,"My Umb=",my_umb
:
:          Lbl pass1
:        EndFor
:
:        Lbl pass2
:      EndFor
:
:      Lbl pass3
:    EndFor
:
:    Lbl pass4
:  EndFor
:
:EndFor
:
:Disp "zero, one, ...., five = ",n_person
:EndPrgm

 

umb()

zero, one, ...., five =  {44,45,20,10,0,1}

Done

댓글 '3'
  • profile
    세상의모든계산기 2015.09.28 20:41

    보기는 편하지만...

    순열을 만들기 위해서(+순열 아닌 것을 골라내기 위해서)
    루프를 모두 돌기 때문에 5^5 = 3125 번 루프를 돌게 되어 효율이 좋지 않음.
    (카운팅 루프 제외)

  • profile
    세상의모든계산기 2015.09.28 21:47

    https://ko.wikipedia.org/wiki/%EC%99%84%EC%A0%84%EC%88%9C%EC%97%B4

    http://j1w2k3.tistory.com/667

  • profile
    세상의모든계산기 2016.01.08 10:56
    [TI-nspire] [Program] 순열(Permutation) - Heap's Algorithm (Recursive)
    http://www.allcalc.tk/7635
?