MATLAB Answers

Count in a loop

3 views (last 30 days)
BMNX
BMNX on 22 Sep 2019
Commented: KALYAN ACHARJYA on 22 Sep 2019
Imagine a square with sides of 2 meter. In the centre is point M, at (0,0). We randomly throw darts at this square, which all hit at some location p on the square (uniform distribution). Next, we count the number of ‘hits’. Each dart is a hit when the distance from p to M is less than or equal to 1.
I have this code I dont know how to count the number of p that is less than or equal to 1
for i=1:100;
p_x= -1+(1+1)*rand;
p_y= -1+(1+1)*rand;
p = sqrt((p_x)^2 + (p_y)^2)
end;

  0 Comments

Sign in to comment.

Accepted Answer

KALYAN ACHARJYA
KALYAN ACHARJYA on 22 Sep 2019
Edited: KALYAN ACHARJYA on 22 Sep 2019
"I have this code I dont know how to count the number of p that is less than or equal to 1"
count=0;
for i=1:100
p_x= -1+(1+1)*rand;
p_y= -1+(1+1)*rand;
p = sqrt((p_x)^2 + (p_y)^2)
if p<=1
count=count+1;
end
end
fprintf('The p count is (when p<=1): %d',count);

  1 Comment

BMNX
BMNX on 22 Sep 2019
Thank you so much

Sign in to comment.

More Answers (1)

madhan ravi
madhan ravi on 22 Sep 2019
N = 100; % no loops needed
p_x= -1+(1+1)*rand(N,1);
p_y= -1+(1+1)*rand(N,1);
p = sqrt(p_x.^2 + p_y.^2);
fprintf('No of times P less than or equal to one:%d',nnz(p<=1))

  1 Comment

KALYAN ACHARJYA
KALYAN ACHARJYA on 22 Sep 2019
Yes @Madhan, I haven't noticed that

Sign in to comment.

Sign in to answer this question.

Tags


Translated by