因为java中生成随机数返回的都是正数,所以肯定是要对生成的随机数进行一些算数操作才可以。我的需求是在对称区间内生成随机数,例如[-30, 30],其实这个大同小异,思路就是先利用nextFloat生成一个flag来表示接下来要生成的数的正负(根据flag是否大于0.5),然后再将生成的数进行自定义操作。拿我的需求来说,生成[-30, 30]上的随机数,可以这样写:
x = flag > 0.5 ? random.nextFloat() * 30 : random.nextFloat() * (-30);
这样不管是在哪些区间上,只要包括负数都可以利用这个思路来解决,只需要改变其中的30和(-30)就行了