我想问关于java随机数的问题,这两个随机获取哪个好?

第一个:
public static void SuiJiZiFuChuan(int x, int y)
{
for (int j = 0; j < y; j++)
{
for (int i = 0; i < x; i++)
{
int a = (int) (100 * Math.random() + 100 * Math.random());
//区别在这里,那个好
while (true)
{
if (a > 96 & a < 123)
break;
else
a = (int) (100 * Math.random() + 100 * Math.random());
}
System.out.print((char) a);
}
System.out.println();
}

第二个:
public static void SuiJiZiFuChuan(int x, int y)
{
for (int j = 0; j < y; j++)
{
for (int i = 0; i < x; i++)
{
int a = (int) (123 * Math.random() );//区别在这里
while (true)
{
if (a > 96 & a < 123)
break;
else
a = (int) (123 * Math.random());
}
System.out.print((char) a);
}
System.out.println();
}
}

这两个都是获取随机小字母,哪一个效益好

这个你可以自己测试一下,让他们重复生成一万次,看那个效率更高

96+26*Math.random不要浪费时间来做判断,while去掉

个人感觉第二个好一些。可以测试下哪个产生符合条件的随机数时所执行的循环次数少。

一般用的话都差不多吧

不懂你为什么要那样生成随机数,直接将随机数生成到[0,26)不是更高吗?