java中Scanner和random的用法
Scanner是默认按照行来读取数字的。
创建一个用来输入的函数
Scanner scan=new Scanner(System.in);system.in是表示从控制台输入。
然后用一个变量类接收这个值
int n=scan.nextInt();
只要声明一个对象即可,后面直接利用scan的方法转换成各种类型即可。
Random方法是随机生成数的方法。
种子是表示在这个数的范围内生成的随机数字。
即上面这个表示在10的范围内生成的随机数字。
下面是利用蒙特卡罗算法来判断矩阵AB=E,即矩阵互逆。
package suanfa;
import java.util.Random;
import java.util.Scanner;
public class MtklSuanfa {
public static void main(String[] args) {
System.out.println("请输入矩阵的维数n:");
Scanner scan=new Scanner(System.in);;
int n=scan.nextInt();
double a[][]=new double[n][n];
double b[][]=new double[n][n];
System.out.println("请输入矩阵a");
for ( int i = 0; i <n; i++) {
for ( int j = 0; j <n; j++) {
//scan=new Scanner(System.in);
a[i][j]=scan.nextDouble();
}
}
System.out.println("输出的矩阵a是:");
for ( int i = 0; i <n; i++) {
for ( int j = 0; j <n; j++) {
System.out.print(a[i][j]+"\t");
if (j+1==n) {
System.out.println("");
}
}
}
System.out.println("请输入矩阵b");
for (int i = 0; i <n; i++) {
for (int j = 0; j <n; j++) {
//scan=new Scanner(System.in);
b[i][j]=scan.nextDouble();
}
}
System.out.println("输出的矩阵b是:");
for ( int i = 0; i <n; i++) {
for ( int j = 0; j <n; j++) {
System.out.print(b[i][j]+"\t");
if (j+1==n) {
System.out.println("");
}
}
}
int result=mtkl(a,b,n);
if (result==0) {
System.out.println("a和b不是互逆矩阵");
}
else{
System.out.println("a和b是互逆矩阵");
}
}
private static int mtkl(double[][] a, double[][] b, int n) {
int flag = 0;
Random random=new Random();
double [] x=new double[n];
double [] y=new double[n];
double []z=new double[n];
for (int i = 0; i < n; i++) {
x[i]=random.nextInt(10);
}
//计算y=bx
compute(b,x,y,n);
//计算z=ay=abx
compute(a,x,z,n);
for (int i = 0; i < n; i++) {
if(Math.abs( z[i]-x[i] )==0 ){
flag=1;
}
flag=0;
}
return flag;
}
private static void compute(double[][] a, double[] x, double[] y, int n) {
for(int i=0;i<n;i++)
for(int j=0;j<n;j++)
{
y[i] += a[i][j] * x[j];
}
}
}
相关文章
- JAVA-string类之compareTo用法
- Java实现 蓝桥杯 算法训练 找零钱
- Java实现 蓝桥杯 算法训练 Beaver's Calculator
- Java实现 LeetCode 478 在圆内随机生成点
- Java实现 LeetCode 363 矩形区域不超过 K 的最大数值和
- Java实现 洛谷 P1421 小玉买文具
- Java实现第十届蓝桥杯质数
- Java实现俄式乘法
- Java中TreeSet的详细用法
- Java中TreeSet的详细用法
- Java实现 蓝桥杯VIP 基础练习 完美的代价
- Java 蓝桥杯 算法训练 字符串的展开 (JAVA语言实现)
- Java跨平台(系统)的主要原理
- 【JAVA】 04-Java中的多线程
- JMS(Java消息服务)与消息队列ActiveMQ基本使用(一)
- Java学习之路 之 提问及解决篇
- Java学习路线-52:JavaBean
- Java多线程有哪几种实现方式? Java中的类如何保证线程安全? 请说明ThreadLocal的用法和适用场景
- JAVA数组的定义及用法
- JAVA平台在手机上广泛应用
- 【Java 基础】类和对象 & 方法重载详解
- 【java】Java 抽象类