Problem with odds and even simulation code

1 回表示 (過去 30 日間)
Not_sharpest_tool.mat
Not_sharpest_tool.mat 2018 年 10 月 22 日
回答済み: Akira Agata 2018 年 10 月 24 日
Hello. I'm trying to simulate an even and odds game that scores 100 games. The problem is that when I get the results Player B seems to always win. Can anybody see whats wrong?
ScoreA=0;
ScoreB=0;
for z= 2:100
PlayerA= randi(2,[100,1]);
PlayerB= randi(2,[100,1]);
n= PlayerA+PlayerB;
if n==3
ScoreA(z)=ScoreA(z-1)+1;
ScoreB(z)=ScoreB(z-1);
else
ScoreB(z)=ScoreB(z-1)+1;
ScoreA(z)=ScoreA(z-1);
end
end
  1 件のコメント
Erivelton Gualter
Erivelton Gualter 2018 年 10 月 22 日
I did not understand very well what you are looking forward. However, I just note your if statement is weird.
For example, for PlayerA = [2 2 1 1 1] and PlayerB = [2 1 1 2 1]; We have ScoreA = [0 0 0 0 0] and ScoreB = [0 1 2 3 4];

サインインしてコメントする。

採用された回答

Akira Agata
Akira Agata 2018 年 10 月 24 日
In your code, the variable n becomes always 100x1 array. This is the reason why the ScoreB always much higher than ScoreA.
To do your task, how about the following?
PlayerA = randi(2,[100,1]);
PlayerB = randi(2,[100,1]);
PlayerA_Win = mod(PlayerA+PlayerB,2) == 1; % Odd
PlayerB_Win = mod(PlayerA+PlayerB,2) == 0; % Even
ScoreA = sum(PlayerA_Win);
ScoreB = sum(PlayerB_Win);

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeNumber games についてさらに検索

Translated by