Java:如何生成大于x的随机数,没有最大值?
我只想生成一个大于x的随机数,没有最大值,然后用它进行运算。我一直在寻找我问题的答案,但没有一个与我的问题相匹配:它们指的是具有最小值和最大值的限制。我想要一个简单的代码,就像:Java:如何生成大于x的随机数,没有最大值?,java,math,random,Java,Math,Random,我只想生成一个大于x的随机数,没有最大值,然后用它进行运算。我一直在寻找我问题的答案,但没有一个与我的问题相匹配:它们指的是具有最小值和最大值的限制。我想要一个简单的代码,就像: Random number = new Random(); int x = 0; //the minimum value int finalNumber;//any positive random number, in this case; if, for example, x were 2, some number
Random number = new Random();
int x = 0; //the minimum value
int finalNumber;//any positive random number, in this case; if, for example, x were 2, some number bigger than 2.
我怎样才能得到最终号码
感谢您花时间回复,我将非常感谢 由于信息存储在有限字节中,因此在任何情况下都无法生成“无最大值”的数字 因此,假设您将其限制为
Integer.MAX\u VALUE
,那么您可以在[0,Integer.MAX\u VALUE-minimum]
中生成一个数字,然后将最小值添加到结果中
例如:
请注意,这是排他性的,因为
nextInt(int)
contract指定排除上限。这要求最小值为正。因为信息存储在有限字节中,所以在任何情况下都不能生成“无最大值”的数字
因此,假设您将其限制为Integer.MAX\u VALUE
,那么您可以在[0,Integer.MAX\u VALUE-minimum]
中生成一个数字,然后将最小值添加到结果中
例如:
请注意,这是排他性的,因为
nextInt(int)
contract指定排除上限。这需要最小值为正。为什么不使用自己的类/实用程序方法(比如MyMath.Random())来包装它呢
public class MyMath{
public static int Random()
{
final int MIN = 0;
final int MAX = Integer.MAX_VALUE;
return (int)(Math.random() * MAX);
}
/// overload so you can specify min value
public static int Random(in MIN)
{
final int MAX = Integer.MAX_VALUE;
return (int)(Math.random() * (MAX-MIN));
}
}
您可以参考Java文档中的Integer.MAX_值
这样你就可以做到:
intsomeint=MyMath.Random()代码>
或
int x=123;
int-someInt=MyMath.Random(x)代码>为什么不使用您自己的类/实用程序方法(比如MyMath.Random())来包装它呢
public class MyMath{
public static int Random()
{
final int MIN = 0;
final int MAX = Integer.MAX_VALUE;
return (int)(Math.random() * MAX);
}
/// overload so you can specify min value
public static int Random(in MIN)
{
final int MAX = Integer.MAX_VALUE;
return (int)(Math.random() * (MAX-MIN));
}
}
您可以参考Java文档中的Integer.MAX_值
这样你就可以做到:
intsomeint=MyMath.Random()代码>
或
int x=123;
int-someInt=MyMath.Random(x)代码>尝试以下操作:
if(x>0){
返回值(int)(Math.random()*(Integer.MAX_VALUE-x))+x;
}
试试这个:
if(x>0){
返回值(int)(Math.random()*(Integer.MAX_VALUE-x))+x;
}
因为finalNumber
是一个int
所以有一个固有的最大数,它是整数。MAX_值
(2147483647)。x和无穷大之间的随机数必须是无穷大的一半。事实上,你有0的概率得到一个不是无穷大的数字。考虑到2以上有多少个数字,你可以用99.9999999…%的确定度得到一个大于宇宙中原子数的数字;)由于finalNumber
是一个int
数,因此存在一个固有的最大数,即整数。MAX_值
(2147483647)。x和无穷大之间的随机数必须平均为无穷大的一半。事实上,你有0的概率得到一个不是无穷大的数字。考虑到2以上有多少个数字,你可以用99.9999999…%的确定度得到一个大于宇宙中原子数的数字;)也许值得一提的是,这是因为最小值是正的,否则你就有溢出的风险。也许值得一提的是,这是因为最小值是正的,否则你就有溢出的风险。如果最小值是整数,最大值是整数,那么最小值就没有物理方法了,谢谢@Deltharis,我只是想让代码能够指定除整数常量之外的最大值。但是为了与这个问题保持一致,我更新了我的答案,使用了整数常量。如果MIN是int,MAX是Integer.MAX_值,那么就没有物理方法MIN感谢@Deltharis,只是我正朝着能够指定除整数常量之外的MAX值的代码的方向发展。但是为了与这个问题保持一致,我更新了我的答案,使用整数常量。