JAVA如何固定随机数数位

下面是一个获得随机数的核心代码:int i=(int)Math.round(Math.random()*a);其中的a是确实最多数位的.a=10 最多2位a=100 最多3位以此类推.我是想获得固定X位随机数.X根据输入数值确实.意思就是说要固定 获得1个几位的数. 不是最多多少位.这代码怎么改

第1个回答  2013-11-09
public class test {
public static void main(String[] args) {

int x = 1;
int b = x == 1 ? 0 : (int)Math.pow(10, x-1);
int f = (b == 0 ? 1 : b)*10 - b;
for(int i = 0; i < 100; ++i)
System.out.print(b + (int)(Math.random() * f) + " ");
}
}

算出来的b是基数,f是要乘的数,比如2位数,b = 10,f = 90,(int)Math.random()*n返回0~n-1之间的数,所以乘完之后返回的是0~89,加上10就是10~99了,由于算b和f对于1位的情况有点特殊,10^0 != 0而是1,所以被单独分开处理。
第2个回答  2013-11-09
int i=(int)Math.round(Math.random()*9)这样算出来的是1位0至9的随机数,你要固定几位就做几个循环
第3个回答  2013-11-09
int i=pow(10,x-1)+(int)Math.round(Math.random()*pow(10,x-1)*9);
相似回答
大家正在搜