Advertisement
Guest User

Untitled

a guest
Jan 25th, 2020
94
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 5.77 KB | None | 0 0
  1. package ProjektNaZaliczenie;
  2. import java.awt.List;
  3. import java.util.Arrays;
  4. import java.util.Comparator;
  5. import java.util.Random;
  6. import java.util.Scanner;
  7.  
  8. import javax.swing.SortOrder;
  9.  
  10.  
  11. public class ProjektNaZaliczenieD {
  12.     public static Scanner scaner = new Scanner(System.in);
  13.     public static Random g = new Random();
  14.     public static double rangeMin = 0.0;  
  15.     public static double rangeMax = 0.0;
  16.     public static double [] rozwiazanie ={};
  17.     public static void wyswietlRozwiazanie() {
  18.         for(int i=0;i<=rozwiazanie.length-1;i++) {
  19.             System.out.print(rozwiazanie[i]+"  ");
  20.         }
  21.     }
  22.     public static double [][] wynikowa ={{ }};
  23.     public static Double[][] random = new Double[0][0];
  24.     public static void setRandom() {
  25.         for(int i=0;i<=19;i++){
  26.             for(int j=0;j<=8;j++){
  27.                 random[i][j]=0.0;}}
  28.         for(int i=0;i<=19;i++) {
  29.             for (int j=0;j<=7;j++) {
  30.                 random[i][j]= rangeMin+(rangeMax-rangeMin)*g.nextDouble();}}}
  31.     public static void Rdisplay() {
  32.         for(int i=0;i<=19;i++) {
  33.             for(int j=0;j<=8;j++) {
  34.                 System.out.print(random[i][j]+" ");
  35.             }
  36.             System.out.println();
  37.         }
  38.     }
  39.     public static double [][] abs = new double[9][3];
  40.     public static void wypelnienieABS(Double[][] tab, double[][] tab1) {
  41.         int z=0;
  42.         while(z<=19) {
  43.         for(int i=0;i<=8;i++) {
  44.             for(int j=0;j<=2;j++) {
  45.                 tab1[i][j]=0.0;}}
  46.         for(int i=0;i<=7;i++) {
  47.             for(int j=0; j<=7;j++) {
  48.                 tab1[i][1] +=rozwiazanie[j]*wynikowa[i][j];
  49.                 tab1[i][0] +=rozwiazanie[i]*tab[z][j];
  50.                 tab1[i][2]= Math.abs(tab1[i][1]-tab1[i][0]);}}
  51.         for(int i=0;i<=7;i++) {            
  52.             tab1[8][2]+=tab1[i][2];}
  53.             tab[z][8]=(Math.round(abs[8][2]*100.0)/100.0);
  54.             z++;
  55.             tab1[8][2]=0.0;}}
  56.     public static void wyswietlenieABS(double[][] tab1) {
  57.         for(int i=0; i<=8;i++) {
  58.             for(int j=0;j<=2;j++) {
  59.                 System.out.print(abs[i][j]+" ");}
  60.             System.out.println();}}
  61.     public static void sortArray(Double[][] tab) {
  62.         Arrays.sort(tab, new Comparator<Double[]>() {
  63.             public int compare(Double[] o1, Double[] o2) {
  64.                 Double itemOne = o1[8];
  65.                 Double itemTwo = o2[8];
  66.                 return itemOne.compareTo(itemTwo);
  67.             }
  68.         });
  69.        
  70.     }
  71.     public static void krzyżowanie(Double[][] tab) {
  72.         for(int j=0;j<=19;j++) {
  73.             tab[j][8]=0.00;
  74.         }
  75.         for(int i=0;i<10;i++) {
  76.             int index1 = i*2;
  77.             int index2 = i*2+1;
  78.             for(int j=8/2; j<=8;j++) {
  79.                 double temp = tab[index1][j];
  80.                 tab[index1][j]= tab[index2][j];
  81.                 tab[index2][j]=temp;
  82.             }
  83.         }
  84.     }
  85.     public static void mutacja(Double[][] tab) {
  86.         for(int j=0;j<=19;j++) {
  87.             tab[j][8]=0.00;
  88.         }
  89.         Random r = new Random();
  90.         int o=0;
  91.         while(o<2) {
  92.         int i =r.nextInt(20)-0;
  93.         int j =r.nextInt(7)-0;
  94.         double w = rangeMin+(rangeMax-rangeMin)*g.nextDouble();
  95.         tab[i][j]= (double)w;
  96.         o++;
  97.         }
  98.     }
  99.     public static void zastapienie(Double [][] tab) {
  100.         for(int z =0;z<=19;z++) {
  101.             tab[z][8]=0.00;
  102.         }
  103.         for(int i=18;i<=19;i++) {
  104.             for(int j=0;j<=7;j++) {
  105.                 tab[i][j]=rangeMin+(rangeMax-rangeMin)*g.nextDouble();
  106.             }
  107.         }
  108.     }
  109.     public static void Czesc1() {
  110.         setRandom();
  111.         wypelnienieABS(random, abs);
  112.         sortArray(random);
  113.         //System.out.println("****************Znaleziono w zestawie "+x+"*********************************");
  114.         //System.out.println("****************************************************************************");
  115.         //Rdisplay();
  116.     }  
  117.     public static void main(String[] args) {
  118.         int x=1;
  119.         Czesc1();
  120.         boolean needToCheck = true;
  121.         int row = 0;
  122.         while(needToCheck)
  123.         {
  124.             for(int i=0; i<=19; i++) {
  125.                 //while(random[i][8]>=50.00) {
  126.                 //System.out.println(random[i][8]);
  127.                 needToCheck = (random[i][8]<=2) ? false : true;
  128.                 if(needToCheck == false)
  129.                 {
  130.                     row = i;
  131.                     break;
  132.                 }
  133.             }
  134.             if(needToCheck)
  135.             {
  136.                 krzyżowanie(random);
  137.                 mutacja(random);
  138.                 //zastapienie(random);
  139.                 wypelnienieABS(random, abs);
  140.                 sortArray(random);
  141.                 System.out.println("**********************Rozwiązanie*******************************************");
  142.                 System.out.println("0.200000000000000  0.100000000000000  0.150000000000000  1.000000000000000  0.130000000000000 -5.170000000000000  0.400000000000000  -1.000000000000000");
  143.                 System.out.println("****************************************************************************");
  144.                 System.out.println("****************************************************************************");
  145.                 System.out.println("********************Zestaw"+x+"**********************************************");
  146.                 System.out.println("****************************************************************************");
  147.                 for(int i=0;i<=8;i++) {
  148.                     System.out.print(random[0][i]+" ");
  149.                 }
  150.                 System.out.println("\n"+"\n");
  151.                 x++;
  152.             }
  153.         }
  154.         System.out.println("**********************Rozwiązanie*******************************************");
  155.         System.out.println("0.500000000000000 ,0.100000000000000 , 0.200000000000000 , 0.100000000000000 , 0.300000000000000  ,-0.200000000000000 , 0.400000000000000 ,-0.100000000000000");
  156.         System.out.println("\n****************************************************************************");
  157.         System.out.println("****************************************************************************");
  158.         System.out.println("****************Znaleziono w zestawie "+x+"*************************************");
  159.         System.out.println("****************************************************************************");
  160.  
  161.         for(int j = 0; j <= 8; j++)
  162.         {
  163.             System.out.print(random[row][j] + " ");
  164.         }      
  165.     }
  166.                    
  167.                
  168.  
  169.             //System.out.println("\n******************************"+x+"*********************************************");
  170.             //System.out.println("\n***************************************************************************");
  171.             //Rdisplay();
  172.             //x++;
  173.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement