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 comentario

Sabarinathan Vadivelu
Sabarinathan Vadivelu el 27 de Ag. de 2012
I found that sometimes the sum was exceeding 1 or less than 1. Why?

Iniciar sesión para comentar.

 Respuesta aceptada

Walter Roberson
Walter Roberson el 27 de Ag. de 2012

0 votos

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

5 comentarios

Sabarinathan Vadivelu
Sabarinathan Vadivelu el 27 de Ag. de 2012
Editada: Sabarinathan Vadivelu el 27 de Ag. de 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.
Walter Roberson
Walter Roberson el 27 de Ag. de 2012
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.
Sabarinathan Vadivelu
Sabarinathan Vadivelu el 27 de Ag. de 2012
How can I overcome this problem? How to satisfy that condition? It should be a +b = 1. No other values should come.
Jan
Jan el 27 de Ag. de 2012
Editada: Jan el 27 de Ag. de 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.
Walter Roberson
Walter Roberson el 27 de Ag. de 2012
a=rand;
b=rand;
while(a+b ~= 1)
a=rand;
b=rand;
end

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Electrical Block Libraries en Centro de ayuda y File Exchange.

Productos

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by