我需要生成一个介于-40到-10和10到40之间的随机数。因此结果可能是25,但从不-5或5。
我在网上看过,但解决方案似乎过于复杂。有没有办法只用一两行呢?
答案 0 :(得分:3)
Math.random()将返回0到1之间的随机数。
创建自己的函数,在最小和最大数字之间创建一个随机数。缩放最小值和最大值之间的随机数,然后用最小值偏移。
function randomBetween(min, max) {
return Math.random() * (max - min) + min;
}
答案 1 :(得分:1)
生成介于10和40之间的数字,然后生成1或0,如果0将其转换为负1并乘以任一结果
Math.random() * 30 + (Math.random() < 0.5 ? -40 : 10);
答案 2 :(得分:0)
这是62个不同的值,每个子范围有31个,所以:
r = Math.floor(Math.random()*62);
if (r < 31) { r -= 40; } else { r -= 21; }
答案 3 :(得分:0)
var n = Math.random()*62;
return n - (n < 31 ? 40 : 21);
答案 4 :(得分:0)
In [176]:
df.columns[df.isin([0,1]).all()]
Out[176]:
Index(['a'], dtype='object')
以上代码生成15-50之间的随机数
for(int i=15;i<=46;i++)
{
double random=Math.rand()*5+i;
int rand=(int)random;
System.out.println(rand);
}
这给出了较低的值,即在这种情况下为15
注意:你需要从值的上限中减去4,即如果你使用i <= 50,这将打印最多54,如果你想生成no。 b / w 50-80使用(int i = 50; i <= 76; i ++)
希望这有帮助:)
答案 5 :(得分:-1)
算法是(rand *(max-min))+ min
Math.floor(Math.random()*30)+10
和
Math.floor(Math.random()*-30)-10