generate random numbers between limits and satisfy condition

1 次查看(过去 30 天)
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

回答(1 个)

KSSV
KSSV 2021-2-12
编辑:KSSV 2021-2-12
How about something like this?
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)
  3 个评论
mounika
mounika 2021-2-12
编辑:mounika 2021-2-12
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

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Random Number Generation 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by