이 번역 페이지는 최신 내용을 담고 있지 않습니다. 최신 내용을 영문으로 보려면 여기를 클릭하십시오.
순차적 블랙잭
이 예제에서는 21(Twenty One)이라고도 불리는 블랙잭 카드 게임을 합니다. 한 번에 수천 판을 독립적으로 플레이하는 여러 플레이어를 시뮬레이션하고 결과의 통계량을 표시합니다. 블랙잭 게임의 시뮬레이션은 금융 상품에 대한 몬테카를로 분석의 대표적인 예입니다. 마지막에 이루어지는 데이터 수집을 제외하고 시뮬레이션은 완전히 병렬로 실행할 수 있습니다.
계산에 대한 자세한 내용은 pctdemo_setup_blackjack 코드를 확인하십시오.
관련 예제:
예제 설정 및 데이터 불러오기
예제 난이도를 지정하는 것부터 시작하겠습니다. 다른 예제 난이도를 사용하려면 paralleldemoconfig
를 사용한 다음, 이 예제를 다시 실행하십시오.
difficulty = pctdemo_helper_getDefaults();
pctdemo_setup_blackjack
에서 플레이어 수와 각 플레이어가 플레이하는 판의 수를 가져옵니다. difficulty
파라미터는 시뮬레이션하는 플레이어의 수를 제어합니다. pctdemo_setup_blackjack 코드를 통해 자세한 내용을 확인할 수 있습니다.
[fig, numHands, numPlayers] = pctdemo_setup_blackjack(difficulty);
시뮬레이션 실행하기
pctdemo_task_blackjack
을 사용하여 numHands
번의 판을 플레이하는 단일 플레이어를 시뮬레이션하고 이 함수를 numPlayers
번 호출하여 모든 플레이어를 시뮬레이션합니다. 함수의 개별 호출은 서로 독립적이기 때문에 Parallel Computing Toolbox를 사용하여 이러한 시뮬레이션을 쉽게 수행할 수 있습니다. pctdemo_task_blackjack 코드를 통해 자세한 내용을 확인할 수 있습니다.
startTime = clock; S = zeros(numHands, numPlayers); % Preallocate for the results. for i = 1:numPlayers S(:, i) = pctdemo_task_blackjack(numHands, 1); end
경과 시간 측정하기
순차 시뮬레이션에 사용된 시간을 Distributed Blackjack 예제에서 Parallel Computing Toolbox를 사용하여 동일한 계산 세트를 수행하는 데 걸리는 시간과 비교해야 합니다. 경과 시간은 기본 하드웨어에 따라 다릅니다.
elapsedTime = etime(clock, startTime);
fprintf('Elapsed time is %2.1f seconds\n', elapsedTime);
Elapsed time is 34.7 seconds
결과 플로팅하기
신뢰구간과 함께 각각의 판에서 이기거나 지는 베팅의 예상 비율을 표시합니다. 또한 시뮬레이션한 각 플레이어의 승패의 변화를 표시합니다. pctdemo_plot_blackjack 코드를 통해 자세한 내용을 확인할 수 있습니다.
pctdemo_plot_blackjack(fig, S);