randomize
x=int(rnd*10)
y=int(rnd*10)
如何做到当abs(x+y-10)<=2的时候重新生成随机数y啊

解决方案 »

  1.   

    直到abs(x+y-10)>2的时候才不重新生成随机数y
      

  2.   

    do while ture
        ......
        if abs(x+y-10) <=2 then exit do
    do
      

  3.   

    randomize 
    x=int(rnd*10) do while true
        y=int(rnd*10)
        if abs(x+y-10) > 2 then exit do 
    loop
      

  4.   

    randomize 
    x=int(rnd*10)
    if x<=8 then
        y = int(rnd*4) + (8-x)
        'x+y = int(rnd*4) + 8 在区间 [8,12) 之间
    else
        y = int(rnd*(12-x))
        'x+y 在区间 [x,12) 之间
    end if
      

  5.   

    两种方法:(1)
    randomize
    x=int(rnd*10)
    do 
        y=int(rnd*10)
    loop until abs(x+y-10) > 2(2)
    randomize
    do 
        x=int(rnd*10)
        y=int(rnd*10)
    loop until abs(x+y-10) > 2(3)
    randomize
    x=int(rnd*10)
    ' x+y <> [8,9,10,11,12]
    if x<8 then
        y=int(rnd*(8-x))
    else
        y=int(rnd*(x-3)+(13-x)
    endif