回:老猫
Math.random()方法里有没有能排除一个数的呀?
例如我想在33到66中不取38,怎么办?
如果取完了,在比较,然后我在利用随机数去取的话,也有可能取到38呀?
谢谢老猫!

解决方案 »

  1.   

    我的想法:double x=Math.random()*33;if(x)<5  x+=33;
     else x+=34;
      

  2.   

    33+(66-33)*Math.random()
    Math.random()产生[0,1)之间的随机数
      

  3.   

    用映射
    int a = 33+(int)32*Math.Random()
    if(a >= 38) a++;
      

  4.   

    Math.random()方法里有没有能排除一个数的呀?
    --没有,只能自己编码实现。例如我想在33到66中不取38,怎么办?
    --加一条判断语句,if(x==38)......如果取完了,在比较,然后我在利用随机数去取的话,也有可能取到38呀?不知道我是否解释清楚了。
      

  5.   

    没别的算法,就下面的最好:
        um=33+(int)(66-33)*Math.random();
        if(um==38)um=33+(int)(66-33)*Math.random();