How to generate random number within a sum limit?

Generate 5 random numbers, where their sum should be less/equal to 50.

 Accepted Answer

while true
A=randi([1 15],5,1);
if(sum(A)<=50)
break;
end
end
disp(A)
disp(sum(A))

2 Comments

ok, it is working. But I need decimal number also. It is giving the only integer. Thank u
while true
t=15;
A=t*rand(5,1);
if(sum(A)<=50)
break;
end
end
disp(A)
disp(sum(A))
You can change t.

Sign in to comment.

More Answers (1)

If the numbers are supposed to be any five positive integers, do this:
b = true;
while b
x = 50*randi(5,1);
b = sum(x)>50;
end
If the numbers can be any non-negative real numbers, change the third line above to:
x = 50*rand(5,1);

Categories

Find more on Random Number Generation in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!