random multiple choice

중복없이 n개의 값을 뽑는 방법

  • 바구니에 n개의 서로 다른 공이 들어 있습니다. 이 공에서 3개의 공을 뽑고싶은데 어떻게 코딩해야 하나요?
  • 처음에는 약간 어렵게 다음처럼 해야 한다고 생각했는데요.
import numpy as np 

cands = [i for i in range(0, 10)]

def selection(basket, n):
    new_basket = basket.copy()
    r_lst = []
    for i in range(0, n):
        temp = new_basket.pop(np.random.choice([i for i in range(0, len(new_basket))]))
        r_lst.append(temp)
    return r_lst

print( selection(cands, 10) )
[8, 6, 1, 4, 0, 7, 3, 5, 9, 2]

간단하게

  • 그냥 있는 함수를 쓰면 됩니다 하하핫.
import numpy as np 

cands = [i for i in range(0, 10)]
np.random.choice(cands, 10, replace=False)
array([4, 2, 0, 8, 9, 6, 5, 3, 7, 1])

댓글남기기