您当前的位置: 首页 > 

郭梧悠

暂无认证

  • 5浏览

    0关注

    402博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

求方阵的鞍点(即在行最小列最大的那个点)

郭梧悠 发布时间:2011-11-26 23:19:08 ,浏览量:5

package suanfa;

import java.util.Scanner;

/**  * 求矩阵的鞍点,所谓鞍点就是行上最小而列上最大的点  *  * @author dell  *  */ public class AnDian {  /**   * 循环输入方阵的值   * @param n方阵的每一行的长度   * @return一个方阵   */  public static double[][] input(int n) {   double arc[][] = new double[n][n];   System.out.println("请输入n*n矩阵的各个值");   for (int i = 0; i < n; i++) {    for (int j = 0; j < n; j++) {     Scanner s = new Scanner(System.in);     System.out.print("d");     double arcValue = s.nextDouble();     arc[i][j] = arcValue;    }   }

  return arc;  }

 /**   * 输出方阵的值   * @param arc   */  public static void print(double arc[][]) {   for (int i = 0; i < arc.length; i++) {    for (int j = 0; j < arc.length; j++) {     System.out.print(arc[i][j] + " ");    }    System.out.println();   }  }

 public static void main(String args[]) {   double arc[][] = input(3);

  print(arc);

  getAn(arc);  }

 /**   * 寻找并打印出鞍点   * @param arc   */  public static void getAn(double arc[][]) {

  double min;   for (int i = 0; i < arc.length; i++) {    min = arc[i][0];// 令第i行的最小值是该行的第一个元素    int minIndex = 0;// 记录第i行的最小元素的位置    // 找到第i行的最小元素,并记录其所在的列    for (int j = 1; j < arc.length; j++) {

    if (min > arc[i][j]) {      min = arc[i][j];      minIndex = j;

    }    }

   // 遍历第i行最小值的那一列    for (int k = 0; k < arc.length; k++) {     if (min < arc[k][minIndex]) {      // 如果不是该列的最大值,说明没有鞍点      System.out.println("第" + i+"行" + "第" + minIndex+ "列" + "没有鞍点");      break;     } else if (k ==arc.length- 1) {//说明min是鞍点打印即可      System.out.println("鞍点为 " +min + "位置是" +"第" + i+"行" + "第" + minIndex+ "列");     }

   }

  }

 } }

关注
打赏
1663674776
查看更多评论
立即登录/注册

微信扫码登录

0.0375s