Advertisement
Guest User

Untitled

a guest
Jan 19th, 2018
59
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.53 KB | None | 0 0
  1. #include <cstdlib>
  2. #include <ctime>
  3. #include <string>
  4. #include <iostream>
  5. #include <stdio.h>
  6. #include <cmath>
  7.  
  8. using namespace std;
  9.  
  10. class Osobnik
  11. {
  12. private:
  13.     int rozmiar;
  14.     string wylosowany_napis;
  15.     int przystosowanie;
  16. public:
  17.     Osobnik(int rozmiar);
  18.     void wyswietl_napis();
  19.     int przydatnosc(string napis);
  20. };
  21.  
  22. class Populacja
  23. {
  24. private:
  25.     int rozmiar_populacji;
  26.     int *tablica_przydatnosci;
  27.     Osobnik **tablica_osobnikow;
  28. public:
  29.     Populacja(int rozmiar_populacji , string cel, float mutacja);
  30.     int nowa_populacja(int *tablica);
  31. };
  32.  
  33.  
  34. int main()
  35. {
  36.     Osobnik losowy_osobnik(5);
  37.     losowy_osobnik.wyswietl_napis();
  38.  
  39.     cout << endl;
  40.     cout << losowy_osobnik.przydatnosc("Kot") << endl;
  41.  
  42.     return 0;
  43. }
  44.  
  45. Populacja::Populacja(int rozmiar_populacji, string cel, float mutacja)
  46. {
  47.     this->rozmiar_populacji = rozmiar_populacji;
  48.     this->tablica_osobnikow = new Osobnik*[rozmiar_populacji];
  49.     this->tablica_przydatnosci = new int[rozmiar_populacji];
  50.  
  51.     for(int i = 0 ; i < rozmiar_populacji ; i++)
  52.     {
  53.         this->tablica_osobnikow[i] = new Osobnik(cel.length());
  54.         this->tablica_przydatnosci[i] = this->tablica_osobnikow[i].przydatnosc(cel);
  55.     }
  56. }
  57.  
  58. /*int Populacja::nowa_populacja()
  59. {
  60.     int suma=0;
  61.  
  62.     for(int i = 0 ; i < rozmiar_populacji ; i++)
  63.     {
  64.         suma += (tablica_przydatnosci[i]-1)*100;
  65.     }
  66.     srand(time(NULL));
  67.  
  68.     a = (rand() % suma);
  69.     tablica_osobnikow[a]
  70.  
  71.     return suma;
  72. }*/
  73.  
  74.  
  75. ///////////////////////////////////////////////
  76.  
  77. void Osobnik::wyswietl_napis()
  78. {
  79.     cout << this->wylosowany_napis;
  80. }
  81.  
  82. Osobnik::Osobnik(int rozmiar)
  83. {
  84.     int a;
  85.     char c;
  86.     this->rozmiar = rozmiar;
  87.  
  88.     srand(time(NULL));
  89.  
  90.     if(a >= 91 && a <= 93)
  91.     {
  92.         c = '.';
  93.     }
  94.     else if(a > 93 && a <= 96)
  95.     {
  96.         c = ' ';
  97.     }
  98.     else
  99.     {
  100.         c = a;
  101.     }
  102.  
  103.     for(int i = 0 ; i < rozmiar ; i++)
  104.     {
  105.         a = (rand() % 57) + 65;
  106.  
  107.         if(a >= 91 && a <= 93)
  108.         {
  109.             c = '.';
  110.         }
  111.         else if(a > 93 && a <= 96)
  112.         {
  113.             c = ' ';
  114.         }
  115.         else
  116.         {
  117.             c = a;
  118.         }
  119.         wylosowany_napis += c;
  120.     }
  121.  
  122. }
  123.  
  124. int Osobnik::przydatnosc(string napis)
  125. {
  126.     int stopien_przydatnosci=0,ret;
  127.     for(int i = 0 ; i < napis.length() ; i++)
  128.     {
  129.         if(napis[i] == wylosowany_napis[i])
  130.         {
  131.             stopien_przydatnosci++;
  132.         }
  133.     }
  134.     ret = pow(2,stopien_przydatnosci);
  135.  
  136.     return ret;
  137. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement