java long 随机 正数_java中如何产生随机正负数

本问题已经有最佳答案,请猛点这里访问。

我正在尝试在基本数据类型short的范围内生成随机整数(-3276832767)。Java随机对象只生成正数。我该如何在那个时间间隔内随机创建数字呢?谢谢。

这让我想起了vb的rnd(),它只返回[0,1]中的值。

在Java中特定范围内如何生成随机整数的可能副本?

你随机抽取(0, 32767+32768),然后减去32768。

Random random=new Random();

int randomNumber=(random.nextInt(65536)-32768);

scala>def mynextpositivenumber:int=r.nextint(65536)-32768 mynextpositivenumber:int scala>println(mynextpositivenumber)-17761 scala>println(mynextpositivenumber)-26558 scala>scala>println(mynextpositivenumber)-17758 scala>println(mynextpositivenumber)-823 scala>println(mynextpositivenumber)17370

public static int generatRandomPositiveNegitiveValue(int max , int min) {

//Random rand = new Random();

int ii = -min + (int) (Math.random() * ((max - (-min)) + 1));

return ii;

}

你在哪里使用兰德?

例如,让我们以min=2和max=4为例。所以在最低随机数的情况下,假设0.001,*((4-(-2))+1)=7*0.001=(int)0.007=0,然后-2+0=-2。当最小值为2时,我们得到-2。这个公式出了点问题。

生成介于0和65535之间的数字,然后减去32768

这是一个我知道的老问题,但是…

n=n-(n*2)

这行不通。3=3-(3*2),3=-6.

错了。操作顺序。

不,还是不行。你的手术怎么样?

3-(3*2)=3-(6)=3

([my double compatible primitive type here])(math.random()*[my max value here]*(math.random()>0.5?)1:- 1)

例子:

// need a random number between -500 and +500

long myRandomLong = (long)(Math.random() * 500 * (Math.random() > 0.5 ? 1 : -1));

如果人们对双版本感兴趣(请注意,如果传递了max_值或min_值,则会出现这种情况):

private static final Random generator = new Random();

public static double random(double min, double max) {

return min + (generator.nextDouble() * (max - min));

}

(math.floor((math.random()*2))>0?1:-1)*math.floor((math.random()*32767))

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值