Java猜随机数
时间: 2025-05-28 17:43:46 浏览: 13
### Java 实现猜随机数功能
以下是基于 `java.util.Random` 和 `Math.random()` 方法实现的两个版本的猜随机数功能示例代码。
#### 版本一:使用 `java.util.Random`
此版本通过 `java.util.Random` 类生成一个随机数,并让用户输入猜测值,直到用户猜中为止。
```java
import java.util.Random;
import java.util.Scanner;
public class GuessRandomNumber {
public static void main(String[] args) {
Random random = new Random();
int randomNumber = random.nextInt(100) + 1; // 生成1到100之间的随机数
Scanner scanner = new Scanner(System.in);
while (true) {
System.out.print("请输入您猜测的数字(1-100):");
int guess = scanner.nextInt();
if (guess < randomNumber) {
System.out.println("太小了!");
} else if (guess > randomNumber) {
System.out.println("太大了!");
} else {
System.out.println("恭喜!您猜对了!");
break;
}
}
scanner.close();
}
}
```
这段代码实现了基本的猜随机数逻辑[^1]。程序会提示用户输入一个数字并判断其大小关系,直至用户成功猜中。
---
#### 版本二:使用 `Math.random()`
另一种方式是利用 `Math.random()` 方法生成随机数,同样允许用户不断尝试直到猜中。
```java
import java.util.Scanner;
public class GuessRandomNumberWithMath {
public static void main(String[] args) {
double randomDouble = Math.random(); // 生成0到1之间的随机浮点数
int randomNumber = (int)(randomDouble * 100) + 1; // 转化为1到100之间的整数
Scanner scanner = new Scanner(System.in);
while (true) {
System.out.print("请输入您猜测的数字(1-100):");
int guess = scanner.nextInt();
if (guess < randomNumber) {
System.out.println("太小了!");
} else if (guess > randomNumber) {
System.out.println("太大了!");
} else {
System.out.println("恭喜!您猜对了!");
break;
}
}
scanner.close();
}
}
```
该代码片段展示了如何借助 `Math.random()` 来完成相同的任务[^2]。它将生成的浮点数映射至指定范围内,并提供反馈给用户。
---
#### 安全性更高的解决方案:使用 `SecureRandom`
对于安全性要求较高的场景,推荐使用 `java.security.SecureRandom` 替代普通的 `Random` 或者 `Math.random()`:
```java
import java.security.SecureRandom;
import java.util.Scanner;
public class SecureGuessRandomNumber {
public static void main(String[] args) {
SecureRandom secureRandom = new SecureRandom();
int randomNumber = secureRandom.nextInt(100) + 1; // 生成1到100之间的安全随机数
Scanner scanner = new Scanner(System.in);
while (true) {
System.out.print("请输入您猜测的数字(1-100):");
int guess = scanner.nextInt();
if (guess < randomNumber) {
System.out.println("太小了!");
} else if (guess > randomNumber) {
System.out.println("太大了!");
} else {
System.out.println("恭喜!您猜对了!");
break;
}
}
scanner.close();
}
}
```
这种方案适用于需要防止预测攻击的情况,比如密码学应用中的随机数生成[^3]。
---
### 总结
以上三种方法分别对应不同的需求层次。简单应用场景下可以选择前两者;而在高敏感度环境中,则应优先考虑采用更可靠的算法如 `SecureRandom` 提供的支持。
阅读全文
相关推荐


















