Java编程之转置矩阵

一、题目
利用随机函数产生36个10~30之间的整数给一个6*6的矩阵赋值。
(1)求最大元素,并指出其在矩阵中的所有出现位置;
(2)求该矩阵的转置矩阵。

二、实验代码

package fighting;
import java.util.Random;
public class fighting 
{
	
	public static void main(String[] args) 
	{
		//int m=10,n=30;
		Random r=new Random();
		int[][] a=new int[6][6];
		int max=a[0][0];
		System.out.println("原矩阵为:");
		for(int i=0;i<a.length;i++)
		{
			for(int j=0;j<a[i].length;j++)
			{
				a[i][j]=r.nextInt(21)+10;//生成随机数10~30法一
				// a[i][j]=(int)(Math.random()*10%(n-m+1)+m); //生成随机数10~30法二
				if(max<a[i][j])
				{
					max=a[i][j];
				}
				System.out.print(a[i][j]+" ");
			}
			System.out.println();
		}
		
		System.out.println("该6*6矩阵的最大值为:"+max);
		System.out.println("其出现的位置为:");
		for(int i=0;i<a.length;i++)
		{
			for(int j=0;j<a[i].length;j++)
			{
				if(a[i][j]==max)
				{
					System.out.println(i+" "+j);
				}
			}
		}
		//求解转置矩阵直接a[j][i]=a[i][j]即可
		System.out.println("转置矩阵为:");
		for(int i=0;i<a.length;i++)
		{
			for(int j=0;j<a[i].length;j++)
			{
				System.out.print(a[j][i]+" ");
			}
			System.out.println();
		}
		
	}
}

三、运行结果
在这里插入图片描述
四、实验总结
1、将矩阵的行列互换之后得到的矩阵,称为原矩阵的转置矩阵,在程序中求解转置矩阵时直接将a[j][i]=a[i][j]即可,即二维数组直接交换行标和列标。
2、产生指定范围的随机数有以下两种常见的方法:
(1)类java.util.Random提供了产生各种类型随机数的方法,使用随机时需要提前导入.
Random r=new Random();先生成一个Random的对象r,r调用nextInt()方法产生随机整数,调用nextDouble()方法产生随机单精度小数,调用nextFloat()方法产生随机双精度小数等等。产生指定范围[min,max]的随机数公式为以随机整数为例:int r=r.nextInt(max-min+1)+min;比如本题中产生10~30的随机整数可以写为a[i][j]=r.nextInt(21)+10.
(2)Math.random()是生成[0,0.1)(区间为前闭后开)的double类型的数据。当需要生成整数,需要进行类型强制转换。产生指定范围[min,max]的随机数公式为以随机整数为例:(int)(Math.random()*10%(max-min+1)+min);比如本题中产生10~30的随机整数可以写为a[i][j]=(int)(Math.random()*10%(21)+10).

  • 6
    点赞
  • 45
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值