Following True or False?

Consider the following example. a and b are two random variables. The loop will exit if and only if a+b=1. Is it true or false?
a=rand;
b=rand;
while(a+b == 1)
a=rand;
b=rand;
end

1 Comment

I found that sometimes the sum was exceeding 1 or less than 1. Why?

Sign in to comment.

 Accepted Answer

Walter Roberson
Walter Roberson on 27 Aug 2012

0 votes

While executes as long as the given condition is true, so the loop would only execute as long as the sum was 1.

5 Comments

Sabarinathan Vadivelu
Sabarinathan Vadivelu on 27 Aug 2012
Edited: Sabarinathan Vadivelu on 27 Aug 2012
But sir, I found that when adding both values I'm getting a value greater than 1.
a=0.7849 and b=0.9728. this value I got one time.
If the sum was greater than 1, then a+b == 1 would be false, so your loop as written would not execute, so the values would be left unchanged.
How can I overcome this problem? How to satisfy that condition? It should be a +b = 1. No other values should come.
Jan
Jan on 27 Aug 2012
Edited: Jan on 27 Aug 2012
If a+b must be 1, simply use:
a = rand; b = 1 - a;
It is extremely unlikely that two random numbers will have a sum of 1. I think the probability is in the magnitude of 10^-53. Therefore rejecting the values until the sum equals 1 will take a looong time.
a=rand;
b=rand;
while(a+b ~= 1)
a=rand;
b=rand;
end

Sign in to comment.

More Answers (0)

Categories

Products

Tags

Community Treasure Hunt

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

Start Hunting!