数据:
1   1.5   2  2.5  3   3.5   4   4.5   5  5.5   6  6.5  7   7.5   8   8.5   9   9.5 
为随机产生,
写一函数,运算一次取比较大的数的概率升高一倍。

解决方案 »

  1.   

    function getRandom: single;
    var
      i: integer;
    begin
      Randomize;
      i := Random(27);//0--26
      if i < 9 then//0-8对应1-5
        Result := i / 2 + 1
      else//9-26对应5.5-9.5
        Result := (i - 7) div 2 / 2 + 5;
    end;
      

  2.   

    近似解法
    set1 1   1.5   2  2.5  3   3.5   4   4.5   5
    set2 5.5   6  6.5  7   7.5   8   8.5   9   9.5
    以前可能等价为set1,set2先随机先择,再随机选择相应集合内的数.现可以加set3 5.5   6  6.5  7   7.5   8   8.5   9   9.5
    选择方法先3选1,再选择数.不过这不是楼主说的提高一倍,不知解的对否?