变量初始为a,把random(0,1)累加b-a次。
具体可以先计算b的二进制位数n
sum=0;
if (a==0 && b==1)
return (int)(Math.random()*2);
for i=0 to n-1
if (sum+((int)Math.random()*2)*2i>b)
break;
sum+=((int)Math.random()*2)*2i;
return a+sum;
变量初始为a,把random(0,1)累加b-a次。
具体可以先计算b的二进制位数n
sum=0;
if (a==0 && b==1)
return (int)(Math.random()*2);
for i=0 to n-1
if (sum+((int)Math.random()*2)*2i>b)
break;
sum+=((int)Math.random()*2)*2i;
return a+sum;