이전 글: https://www.gpters.org/dev/post/coding-touching-your-hands-LQ9aXAYyKiUGPhr
이제 확률 계산 부분만 남은 상황! 하지만 아무리 시도해도 고쳐지지 않는 오류가 있었으니…
코드에 문제가 없는데에도 해당 함수를 찾을 수 없다고 오류가 발생했습니다 ㅠㅠ
몇번씩 반복해서 물어보다가 결국 포기하고 “니가 시키는 대로 다 했는데도 오류가 발생한다”고 털어놓자, “순환참조는 예상치 못한 문제를 일으킬 수 있습니다” 라고 가능성을 제시하는 챗GPT!
바로 해당 문제를 해결해보라고 제시해보았습니다.
그러자 (그렇게 부탁했는데도 코드 일부를 생략하고) 제시된 코드!
실행해보니 문제없이 창이 뜨는 걸 확인할 수 있었습니다.
물론 창이 뜨고 “확률 계산 창입니다”가 뜨는게 전부였기 때문에 가볍게 레이아웃을 추가하고 확률 로직을 추가하는 단계로 넘어갔습니다.
(그후 계산 기능 추가 과정에서 몇번의 “코드 좀 생략하지 마세요”가 지나간 뒤…)
확률 계산 기능은 완성되었는데, 확률을 계산할때마다 다른 결과가 나오는 문제를 발견…
어이가 없어 확률 계산의 로직을 설명해달라고 했습니다.
- “입력된 덱 리스트에서 5장 뽑기를 1천번 반복한 뒤, 조건에 맞는 패를 뽑은 비율을 계산해서 출력하는 식으로 확률을 계산했습니다. 따라서, 매 실행마다 확률이 다르게 나올 수 있습니다.”
수학적 확률을 계산해야 하는데 통계적 확률로 계산해버린 상황…
그렇게 수학적 확률을 계산하기 위해 조합을 이용해달라고 했더니, 점점 이상한 계산을 해서, 덱에서 원하는 카드를 뽑을 확률 이 35%가 넘게 나오기도 하는 상황…
아무리 봐도 이상해서, 아예 새 채팅을 열어 코드를 사용하지 않고 같은 문제를 내보니 전혀 다른 대답이 나왔습니다.
결국, 로직을 만든 뒤 테스트를 돌리게 시키고, 테스트에 사용한 데이터와 계산 결과를 가지고 GPT한테 검산해달라고 넣어봤습니다.
코드로 계산했던 확률이 완전히 틀렸음을 알 수 있는 결과이면서, 동시에 계산 과정이 잘 드러나있어 이를 이용할 수 있겠다 생각한 저는 이걸 이용하면 확률 계산의 로직을 개선할 수 있겠다고 생각하여, 다른 데이터로 한번 더 테스트를 돌리라고 시킨 뒤, 다시 검산기에 넣었습니다.
이 검산 결과를 그대로 넣고 실행해보니 드디어 정상작동…
그렇게 하여 멀쩡히 작동하는 확률 계산기를 만들 수 있었습니다.