主要内容

순차적블랙잭

이예제에서는21(21)이라고도불리는블랙잭카드게임을합니다。한번에수천판을독립적으로플레이하는여러플레이어를시뮬레이션하고결과의통계량을표시합니다。블랙잭게임의시뮬레이션은금융상품에대한몬테카를로분석의대明文적明文예입니다。마지막에이루어지는데이터수집을제외하고시뮬레이션은완전히병렬로실행할수있습니다。

계산에대한자세한내용은Pctdemo_setup_blackjack코드를확cdm . Pctdemo_setup_blackjack하십시오。

관련예제:

예제설정및데이터불러오기

예제난이도를지정하는것부터시작하겠습니다。다른예제난이도를사용하려면paralleldemoconfig를사용한다음,이예제를다시실행하십시오。

困难= pctdemo_helper_getDefaults();

pctdemo_setup_blackjack에서플레이어수와각플레이어가플레이하는판의수를가져옵니다。困难파라미터는시뮬레이션하는플레이어의수를제어합니다。Pctdemo_setup_blackjack코드를통해자세한내용을확,할수있습니다。

[fig, numHands, numPlayers] = pctdemo_setup_blackjack(难度);

시뮬레이션실행하기

pctdemo_task_blackjack을사용하여numHands번의판을플레이하는단일플레이어를시뮬레이션하고이함수를numPlayers번호출하여모든플레이어를시뮬레이션합니다。함수의개별호출은서로독립적이기때문에并行计算工具箱를사용하여이러한시뮬레이션을쉽게수행할수있습니다。Pctdemo_task_blackjack코드를통해자세한내용을확,할수있습니다。

startTime =时钟;S = 0 (numHands, numPlayers);%预分配结果。i = 1:numPlayers S(:, i) = pctdemo_task_blackjack(numHands, 1);结束

경과시간측정하기

순차시뮬레이션에사용된시간을分布式21点예제에서并行计算工具箱를사용하여동일한계산세트를수행하는데걸리는시간과비교해야합니다。경과시간은기본하드웨어에따라다릅니다。

elapsedTime = etime(clock, startTime);流('运行时间为%2.1f秒\n', elapsedTime);
运行时间为34.7秒

결과플로팅하기

신뢰구간과함께각각의판에서이기거나지는베팅의예상비율을시합니다。또한시뮬레이션한각플레이어의승패의변화를시합니다。Pctdemo_plot_blackjack코드를통해자세한내용을확,할수있습니다。

pctdemo_plot_blackjack(无花果,S);