java - 在Java中生成任意长度的任意随机数
问题描述
如何在 Java 中生成任意长度的任意随机数?比如,要生成一个宽度为 3 的数字,它应该在 100 到 999 之间。那么如何编码呢?
在下图中:
我想解决第二个问题。
这是我为第一个问题写的:
public int getRandomNumberReturntypediff(int min,int max) {
Random rand = new Random();
int n = rand.nextInt(1000) + 1;
Integer.toString(n);
System.out.println("get Random Number with return type STRING" + n);
return n;
}
假设我接受参数length
并返回String
。我怎样才能做到这一点?
解决方案
由于您的问题中已经有了实际的有界随机数生成逻辑,因此我假设您正在努力计算边界。
您可以使用 10 的幂来计算最小值和最大值:
- 最小值 = 10 ^(长度 - 1)
- 最大值 = (10 ^ 长度) - 1
因此,例如,对于长度为 3 的数字,这将为您提供最小值 100 和最大值 999。
这是一个完整的例子:
import java.util.Random;
public class Randoms {
public static void main(String args[]) {
System.out.println(generateRandom(3));
}
private static String generateRandom(int length) {
int min = (int) Math.pow(10, length - 1);
int max = (int) Math.pow(10, length); // bound is exclusive
Random random = new Random();
return Integer.toString(random.nextInt(max - min) + min);
}
}
推荐阅读
- apache-kafka - kafka 控制台生产者连续发送消息
- sql-server - 比较sql server中的两个不同列以获得结果
- python - 平方迭代器中的无限循环
- reactjs - 如何在 Storybook 中制作 stories.mdx 文件?
- gnuplot - 如何在我的 gnuplot 图中放大行标题
- c# - 有没有办法获取文件夹中不包括特定文件夹的路径列表
- javascript - 如何使用 jquery 选择输入?
- c++ - C++ 无法将 uint8_t* 复制到 std::array
- apache-kafka - 将消息发布到集群中的一个 Kafka 代理的影响
- firebase - Firestore 会在将文档数据发送到客户端之前对其进行压缩吗?