Solving Rand Function MATLAB Homework

  • Thread starter Thread starter SteliosVas
  • Start date Start date
  • Tags Tags
    Function Matlab
AI Thread Summary
The discussion revolves around a MATLAB homework problem that involves calculating the number of iterations required for the product of two random numbers to be less than 1e-5. The user encounters an error related to the `rand` function, specifically that size inputs must be scalar, indicating a potential issue with the variable 'b'. There is confusion about generating random integers versus random floats, with suggestions that the goal should be to produce random numbers between 0 and 1. The code snippets provided show attempts to generate random numbers, but they contain logical errors and misunderstandings about the requirements. Clarification is needed on the definitions of variables and the intended output to resolve the issues effectively.
SteliosVas
Messages
70
Reaction score
0

Homework Statement



The number of iterations it takes for the product of two random numbers to produce a number less than 1e-5.

Homework Equations

The Attempt at a Solution

while z < 1e-05
count1 = count + 1;
x = rand(1,1); %rand 1x1 matrix
z = floor(a + (b-a+1) * rand(b,1));
if z < 1e-05
break
end

endNow I keep getting an error saying:
Error using rand
Size inputs must be scalar.

Why is this?EDIT:

while 2
% randomIntegers < 1e-05
count1 = count1 +1;
randomIntegers = randi([-10,10],[20,1]);

if randomIntergars > 1e-05
break
end

end

I tried this and it's still not working
 
Last edited:
Physics news on Phys.org
Why do you want to produce random integers? I guess the random numbers are supposed to be floats between 0 and 1.
SteliosVas said:
while z < 1e-05
That looks like the opposite of what you want to do.
SteliosVas said:
z = floor(a + (b-a+1) * rand(b,1));
What does that line do? What are a and b? Why floor()?

rand(1,1) returns a 1x1-matrix of random numbers, which is just a random number. Anyway, the inputs have to be scalar, apparently your b is not a scalar - what is b?
 
Essentially what I want to do is generate two random numbers and their product being less than 1e-05.

That is all in trying to do.
 
"Two random numbers" is too unspecific. Dice rolls give random integers between 1 and 6 - they are random numbers, but clearly not those you want here because their product is never smaller than 1.
 
Back
Top