Choose random between two option.

22 次查看(过去 30 天)
Giselle
Giselle 2017-3-23

Hi, i want to choose randomly between the "boy" or "girl", how can i do that? Each has the same probability of 50%.

i want to calculate this question:

In a country in which people only want boys … … every family continues to have children until they have a boy. If they have a girl, they have another child. If they have a boy, they stop. What is the proportion of boys to girls in the country? Tnx

回答(2 个)

Image Analyst
Image Analyst 2017-3-23
Hint:
sexes = {'Boy', 'Girl'};
r = randi([1, 2], 1) % Get a 1 or 2 randomly.
thisSex = sexes(r) % Extract the sex for this random number.
  3 个评论
Walter Roberson
Walter Roberson 2020-12-22
编辑:Walter Roberson 2020-12-22
r = rand() > 0.60
thisSex = sexes{r+1}
By the way: my modeling says 2/3 girls on average.
Valerie Reinisch
Valerie Reinisch 2020-12-22
Tried it in the meanwhile with this:
r = binornd(1,0.6)
But thanks a lot for this quick answer! (:

请先登录,再进行评论。


Roger Stafford
Roger Stafford 2017-3-23
编辑:Roger Stafford 2017-3-23
There should be no need to go through such a simulation. For each birth the probability that a boy is born is one-half regardless of all the tricks the family may play.
However if you are addicted to more complicated computations, the average number of boys per family is:
1/2*1 + 1/4*1 + 1/8*1 + ... = 1
and the average number of girls per family is:
1/2*0 + 1/4*1 + 1/8*2 + 1/16*3 + 1/32*4 + ... = 1
You can use symsum to verify these.
  1 个评论
Walter Roberson
Walter Roberson 2020-12-22
trials = 1E6;
isboy = rand(trials,53) <= 0.5;
child_number_for_boy = sum(cumprod(~isboy,2),2) + 1;
avg_number_of_girls = mean(child_number_for_boy - 1)
avg_number_of_girls = 0.9988
max_number_of_girls = max(child_number_for_boy) - 1
max_number_of_girls = 20

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Creating and Concatenating Matrices 的更多信息

标签

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by