# generate random numbers between limits and satisfy condition

4 views (last 30 days)
mounika on 12 Feb 2021
Edited: mounika on 12 Feb 2021
Hello All,
I am trying to generate two sets of 16 length random number sequences.
x1, x2, x3 ...x16
y1, y2, y3 ...y16
Conditions:
(x,y) lies between 5000 and 6000
The separation between x(n) and x(n+1) should be between +/-(20 - 100). It need not be equally spaced.
The separation between x(n) and y(n) should be +/- 300. The y(n) also should belong to 5000 - 6000 range
I need to check how many such sets can satisfy these conditions.
Kindly help me with a logic or the best way to implement in MATLAB

KSSV on 12 Feb 2021
Edited: KSSV on 12 Feb 2021
a = 5000 ; b = 6000 ;
x = zeros(1,16) ;
x(1) = randi([a b],1,1) ;
for i = 2:16
x(i) = randi([x(i-1)+20 x(i-1)+100],1,1) ;
end
diff(x)
mounika on 12 Feb 2021
Edited: mounika on 12 Feb 2021
Thank you again for your respone. I generated Y sequence. but the diff is not maintained for Y. (Please see the attached screenshot)
Also, I was wondering by doing [x(i-1)+20 x(i-1)+100] aren't we missing out the other numbers as in,
if x(i-1) = 5510,
x(i-1)+20 = 5530, aren't we missing x(i-1)-20 = 5490. Similarly for x(i-1)+100.
Also, it is important that x(i-1)+20 / x(i-1) -20/ x(i-1)+100 / x(i-1)-100 should belong to the range of 5000 and 6000
By ignoring those numbers, Am i going to miss number of sequences that can be formed with these conditions. Kindly advise