能利用Math.random()生成随机负数么?

wgf42421 2011-03-27 11:47:40
Math类里提供生成随机负数的办法了么?如题。
...全文
8576 25 打赏 收藏 转发到动态 举报
写回复
用AI写文章
25 条回复
切换为时间正序
请发表友善的回复…
发表回复
wblzu 2011-03-31
  • 打赏
  • 举报
回复
4楼和8楼的方法都可以吧!就看你要产生什么范围的数,视情况变化。
uooooppp 2011-03-28
  • 打赏
  • 举报
回复
Random r3 = new Random(new Date().getTime());
for(int i=0; i<7; i++){
System.out.print(i + "#" + r3.nextInt()+" ");
}
jerryfazhi 2011-03-28
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 qm4050 的回复:]
再加一个条件啊,Math.random()*(Math.random>0.5?1:-1)
[/Quote]

这个最简单 顶一下!
tanrenzong1986 2011-03-28
  • 打赏
  • 举报
回复

Random random=new Random();
int i=random.nextInt(100)-random.netInt(50);
xuyong1325 2011-03-28
  • 打赏
  • 举报
回复
定四
[Quote=引用 3 楼 zqfddqr 的回复:]
这得看是什么范围的啊 还指这个办法 如 10~-10
20-(Math.random()*10)
[/Quote]
binwenstars 2011-03-28
  • 打赏
  • 举报
回复
random(注:java.lang.Math)
public static double random()
返回带正号的 double 值,该值大于等于 0.0 且小于 1.0。返回值是一个伪随机选择的数,在该范围内(近似)均匀分布。


若想要得到自己想要的数据范围则应该进行基本的数学运算,根据产生的数据范围进行数学运算(加,减,乘,除等)得出自己想要的数据范围。。。
  • 打赏
  • 举报
回复
本身这个方法是不能的,可以自己想办法去构造
  • 打赏
  • 举报
回复
可以 要有范围。
孤鸿掠影 2011-03-28
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 qm4050 的回复:]
再加一个条件啊,Math.random()*(Math.random>0.5?1:-1)
[/Quote]

这个是一个想法。更一般的,如果要产生a和b的一些整数,公式是:
(int)((a - b)* (Math.random() * 2) + b)
yingzhuo2011 2011-03-28
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 qm4050 的回复:]

再加一个条件啊,Math.random()*(Math.random>0.5?1:-1)
[/Quote]

我也是这么想的。
zqfddqr 2011-03-27
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 zqfddqr 的回复:]
这得看是什么范围的啊 还指这个办法 如 10~-10
20-(Math.random()*10)
[/Quote]写错了10-(Math.random()*20)汗了啊
dong_very_good 2011-03-27
  • 打赏
  • 举报
回复
可以的,自己给个范围验证一下就行。
m1900 2011-03-27
  • 打赏
  • 举报
回复
可以的,但要视情况而定,要有范围
qm4050 2011-03-27
  • 打赏
  • 举报
回复
再加一个条件啊,Math.random()*(Math.random>0.5?1:-1)
zqfddqr 2011-03-27
  • 打赏
  • 举报
回复
这得看是什么范围的啊 还指这个办法 如 10~-10
20-(Math.random()*10)
wgf42421 2011-03-27
  • 打赏
  • 举报
回复
我的意思是正负数都要。。。- -回得好快。没编辑完。
zqfddqr 2011-03-27
  • 打赏
  • 举报
回复
Math.random()*-1
qybao 2011-03-27
  • 打赏
  • 举报
回复
int[] a = {1, -1}; //随即取1或-1出来乘
int n = (int)(Math.random()*10)a[(int)Math.random()*2];
brightch 2011-03-27
  • 打赏
  • 举报
回复
将产生的随机数乘以-1即可。
一夜相思愁 2011-03-27
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 qm4050 的回复:]
再加一个条件啊,Math.random()*(Math.random>0.5?1:-1)
[/Quote]

就是这样嘛。 看你的需求,总有方法达到的。
加载更多回复(1)

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧