Serienz의 모두가 행복하길 바라는 마음

336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

앞선 포스팅에서 로또번호의 룰을 다음 두 가지로 이야기했습니다.



(1) 1~45 중 여섯 개의 번호가 나오며, 중복은 없다

(2) 추출된 번호의 순서는 상관없다



번호생성기 1호 는, 단순하게 randbetween(1,45) 을 여섯 개 놓아둠으로써 위 조건들 중 (2) 번은 충족했지만,

당연하게도(물론 확률적인 문제이긴 하지만) 중복번호가 추출될 가능성이 항상 열려 있는 문제가 있습니다.


이에, 중복번호가 추출되었을 경우 자동으로 중복이 아닌 다른 값이 추출되도록 할 필요가 있습니다.

일단 머릿속에 떠오르는 대로 함수를 써 봅니다.




(1) 번호생성기 1호를 그대로 살려두고, 동일 로직을 복사합니다.

(2) 그 하단에 다음처럼 함수를 넣습니다.

     =IF(COUNTIF($B$4:$G$4,B8)>0,46-B8,RANDBETWEEN(1,45))

   (예 : 번호생성기 1 에서 추출된 번호들 중 위에 복사된 것들이 중복된다면, 46-위에 복사된 것 을 추출하고, 아니면 랜덤추출.)



한번 더 걸러내본 것이며, 동시에 1~45 의 특성상 홀수로 시작해서 홀수로 끝나는 관계로

중복숫자의 출현을 한번 걸러내보는 기능입니다.

단, if문의 후반에 다시 randbetween 이 들어가 있기 때문에, 확률상 동일숫자가 출현할 확률을 크게 줄이지는 못한 듯 합니다.

(randbetween 의 특성때문에, 완벽한 중복제어는 어려움이 있을듯합니다. Excel의 특성상 순환계산을 허용치 않으니까요.)



조금 더 고민을 해봐야 하겠습니다.