Java代码验证圆周率无理数 - 蒙特卡罗方法
由于圆周率是一个无限不循环小数,因此无法直接验证其为无理数。但可以通过计算圆周率的近似值来判断其是否为无理数。
以下是一段Java代码,使用蒙特卡罗方法来计算圆周率的近似值,并判断其是否为无理数:
import java.util.Random;
public class PiValidation {
public static void main(String[] args) {
// 设置随机数生成器
Random rand = new Random();
int totalPoints = 100000; // 总点数
int insidePoints = 0; // 圆内点数
// 生成随机点并统计圆内点数
for (int i = 0; i < totalPoints; i++) {
double x = rand.nextDouble();
double y = rand.nextDouble();
if (x * x + y * y <= 1) {
insidePoints++;
}
}
// 计算圆周率的近似值
double pi = 4.0 * insidePoints / totalPoints;
System.out.println('π的近似值为:' + pi);
// 判断是否为无理数
boolean isIrrational = true;
String piString = Double.toString(pi);
for (int i = 0; i < piString.length(); i++) {
char c = piString.charAt(i);
if (c != '.' && c != '0' && c != '1' && c != '2' && c != '3' && c != '4' && c != '5' && c != '6' && c != '7' && c != '8' && c != '9') {
isIrrational = false;
break;
}
}
if (isIrrational) {
System.out.println('π是无理数。');
} else {
System.out.println('π不是无理数。');
}
}
}
该代码生成了100000个随机点,统计圆内点数,并计算圆周率的近似值。然后,判断圆周率的近似值是否为无理数。如果圆周率的近似值只包含数字0到9和小数点,则认为其为无理数。
原文地址: http://www.cveoy.top/t/topic/lYgG 著作权归作者所有。请勿转载和采集!