Advertisement
Felanpro

DenKortasteVagen

Dec 7th, 2021
893
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.33 KB | None | 0 0
  1. public class DenKortasteVagen
  2. {
  3.     //mellanstationer returnerar en vektor med de mellanstationer som finns p� den kortaste
  4.     //v�gen. Ordningsnummer av den f�rsta mellanstationen finns p� index 1, och ordningsnummer
  5.     //av den andra mellanstationen p� index 2 i vektorn.
  6.     public static int[] mellanstationer (double[] a, double[][] b, double[] c)
  7.     {
  8.         //Skapa en 2D array innehållande alla längder
  9.         double[][] langder = new double[a.length][b[0].length];
  10.         for(int u = 0; u < a.length; u++)
  11.         {
  12.             for(int v = 0; v < b[0].length; v++)
  13.             {
  14.                 langder[u][v] = a[u] + b[u][v] + c[v];
  15.             }
  16.         }
  17.  
  18.         //Hitta den kortaste längden i arrayen
  19.         double kortaste_vagen = 0;
  20.         for(int i = 0; i < langder.length; i++)
  21.         {
  22.             for(int x = 0; x < langder[0].length - 1; x++)
  23.             {
  24.                 if(langder[i][x] > langder[i][x + 1])
  25.                 {
  26.                     kortaste_vagen = langder[i][x + 1];
  27.                 }
  28.             }
  29.         }
  30.  
  31.         //Hitta mellanstationerna
  32.         int[] mellanstationer = new int[3];
  33.         mellanstationer[0] = 0;
  34.         for(int i = 0; i < langder.length; i++)
  35.         {
  36.             for(int x = 0; x < langder[0].length; x++)
  37.             {
  38.                 if(langder[i][x] == kortaste_vagen)
  39.                 {
  40.                     mellanstationer[1] = i + 1;
  41.                     mellanstationer[2] = x + 1;
  42.                 }
  43.             }
  44.         }
  45.  
  46.         return mellanstationer;
  47.     }
  48.  
  49.     //langd returnerar langden av den kortaste vagen.
  50.     public static double langd(double[] a, double[][] b, double[] c)
  51.     {
  52.         //Skapa en 2D array innehållande alla längder
  53.         double[][] langder = new double[a.length][b[0].length];
  54.         for(int u = 0; u < a.length; u++)
  55.         {
  56.             for(int v = 0; v < b[0].length; v++)
  57.             {
  58.                 langder[u][v] = a[u] + b[u][v] + c[v];
  59.             }
  60.         }
  61.  
  62.         //Hitta den kortaste längden i arrayen
  63.         double kortaste_vagen = 0;
  64.         for(int i = 0; i < langder.length; i++)
  65.         {
  66.             for(int x = 0; x < langder[0].length - 1; x++)
  67.             {
  68.                 if(langder[i][x] > langder[i][x + 1])
  69.                     kortaste_vagen = langder[i][x + 1];
  70.             }
  71.         }
  72.  
  73.         return kortaste_vagen;
  74.     }
  75.  
  76.     public static void main(String[] args)
  77.         {
  78.             double[] a = {2.2, 4, 3};
  79.  
  80.             double[][] b = {
  81.                                 {3, 4.1, 3.2, 6},
  82.                                 {7, 4.2, 2.4, 6},
  83.                                 {5, 3.2, 1.8, 2}
  84.                            };
  85.  
  86.             double[] c = {3.6, 2.4, 2, 4};
  87.  
  88.             System.out.println(langd(a, b, c));
  89.             int[] e = mellanstationer(a, b, c);
  90.  
  91.             System.out.println("Mellanstation 1: " + e[1]);
  92.             System.out.println("Mellanstation 2: " + e[2]);
  93.         }
  94.  
  95. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement