java scanner和for_java中Scanner和random的用法

Scanner是默认按照行来读取数字的。

创建一个用来输入的函数

Scanner scan=new Scanner(System.in);system.in是表示从控制台输入。

然后用一个变量类接收这个值

int n=scan.nextInt();

e5b491c29175d533aa599e72920a5213.png

只要声明一个对象即可,后面直接利用scan的方法转换成各种类型即可。

Random方法是随机生成数的方法。

afc6e17cbbafc01e9e3cd3201b598c65.png

种子是表示在这个数的范围内生成的随机数字。

61fa8c70837b3083b05800a603b05dad.png

即上面这个表示在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

for ( int j = 0; j

//scan=new Scanner(System.in);

a[i][j]=scan.nextDouble();

}

}

System.out.println("输出的矩阵a是:");

for ( int i = 0; i

for ( int j = 0; j

System.out.print(a[i][j]+"\t");

if (j+1==n) {

System.out.println("");

}

}

}

System.out.println("请输入矩阵b");

for (int i = 0; i

for (int j = 0; j

//scan=new Scanner(System.in);

b[i][j]=scan.nextDouble();

}

}

System.out.println("输出的矩阵b是:");

for ( int i = 0; i

for ( int j = 0; 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

for(int j=0;j

{

y[i] += a[i][j] * x[j];

}

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值