Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <random>
- int Delta(int i, int j);
- int FunkcjaWyjscia(int net, int yt);
- void Print(int tab[35]);
- int main()
- {
- //int p2[] = { 1,1,1,1,1 , 1,-1,-1,-1,-1 , 1,-1,-1,-1,-1 , 1,-1,-1,-1,-1 , 1,-1,-1,-1,-1 , 1,-1,-1,-1,-1 , 1,1,1,1,1 };
- //int p3[] = { 1,-1,-1,-1,1 , -1,1,-1,1,-1 , -1,-1,1,-1,-1 , -1,-1,1,-1,-1 , -1,-1,1,-1,-1 , -1,1,-1,1,-1 , 1,-1,-1,-1,1 }; //X
- //int p4[] = { -1,-1,1,-1,-1 , -1,-1,1,-1,-1 , -1,-1,1,-1,-1 , -1,-1,1,-1,-1 , -1,-1,1,-1,-1 , -1,-1,1,-1,-1 , -1,-1,1,-1,-1 }; //I
- //int P[4][35] =
- //{
- //{ // A
- // 1, 1, 1, 1, 1,
- // 1, -1, -1, -1, 1,
- // 1, -1, -1, -1, 1,
- // 1, 1, 1, 1, 1,
- // 1, -1, -1, -1, 1,
- // 1, -1, -1, -1, 1,
- // 1, -1, -1, -1, 1
- //},
- //{ // C
- // 1,1,1,1,1,
- // 1,-1,-1,-1,-1,
- // 1,-1,-1,-1,-1,
- // 1,-1,-1,-1,-1,
- // 1,-1,-1,-1,-1,
- // 1,-1,-1,-1,-1,
- // 1,1,1,1,1
- //},
- //{ // I
- // -1,-1,1,-1,-1,
- // -1,-1,1,-1,-1,
- // -1,-1,1,-1,-1,
- // -1,-1,1,-1,-1,
- // -1,-1,1,-1,-1,
- // -1,-1,1,-1,-1,
- // -1,-1,1,-1,-1
- //},
- //{ // X
- // -1,-1,-1,-1,-1,
- // 1,-1,-1,-1,1,
- // -1,1,-1,1,-1,
- // -1,-1,1,-1,-1,
- // -1,1,-1,1,-1,
- // 1,-1,-1,-1,1,
- // -1,-1,-1,-1,-1
- //}
- //}
- int P[4][35] = {
- { // A
- 1, 1, 1, 1, 1,
- 1, -1, -1, -1, 1,
- 1, -1, -1, -1, 1,
- 1, 1, 1, 1, 1,
- 1, -1, -1, -1, 1,
- 1, -1, -1, -1, 1,
- 1, -1, -1, -1, 1
- },
- { // C
- 1,1,1,1,1,
- 1,-1,-1,-1,-1,
- 1,-1,-1,-1,-1,
- 1,-1,-1,-1,-1,
- 1,-1,-1,-1,-1,
- 1,-1,-1,-1,-1,
- 1,1,1,1,1
- },
- { // I
- -1,-1,1,-1,-1,
- -1,-1,1,-1,-1,
- -1,-1,1,-1,-1,
- -1,-1,1,-1,-1,
- -1,-1,1,-1,-1,
- -1,-1,1,-1,-1,
- -1,-1,1,-1,-1
- },
- { // X
- -1,-1,-1,-1,-1,
- 1,-1,-1,-1,1,
- -1,1,-1,1,-1,
- -1,-1,1,-1,-1,
- -1,1,-1,1,-1,
- 1,-1,-1,-1,1,
- -1,-1,-1,-1,-1
- }
- };
- bool petla = true;
- //int s[35] = { // A
- // -1, -1, 1, -1, -1,
- // 1, -1, -1, -1, 1,
- // 1, -1, -1, -1, 1,
- // 1, -1, -1, 1, 1,
- // 1, -1, -1, -1, 1,
- // 1, -1, -1, -1, 1,
- // 1, -1, -1, -1, 1
- //};
- int s[4][35] = {
- { // A
- -1, 1, 1, 1, 1,
- -1, -1, -1, -1, 1,
- -1, -1, -1, -1, 1,
- -1, 1, 1, 1, 1,
- -1, -1, -1, -1, 1,
- -1, -1, -1, -1, 1,
- -1, -1, -1, -1, 1
- },
- { // C
- -1,1,1,1,1,
- -1,-1,-1,-1,-1,
- 1,-1,-1,-1,-1,
- 1,-1,-1,-1,-1,
- 1,-1,-1,-1,-1,
- 1,-1,-1,-1,-1,
- 1,1,1,1,1
- },
- { // I
- -1,-1,1,-1,-1,
- -1,-1,1,-1,-1,
- -1,-1,1,-1,-1,
- -1,-1,1,-1,-1,
- -1,-1,1,-1,-1,
- -1,-1,1,-1,-1,
- -1,-1,1,-1,-1
- },
- { // X
- -1,-1,-1,-1,-1,
- 1,-1,-1,-1,1,
- -1,1,-1,1,-1,
- -1,-1,1,-1,-1,
- -1,1,-1,1,-1,
- 1,-1,-1,-1,1,
- -1,-1,-1,-1,-1
- }
- };
- for (int patern = 0; patern < 4; patern++)
- {
- double wij[35][35] = { 0 };
- int y[35] = { 0 };
- double net[35] = { 0 };
- for (int i = 0; i < 35; i++)
- {
- for (int j = 0; j < 35; j++)
- {
- double temp = 0.0;
- for (int m = 0; m < 4; m++)
- {
- temp += P[m][i] * P[m][j];
- }
- wij[i][j] = (1.0 - Delta(i, j))* temp;
- }
- }
- //Wyswietlanie wag
- //for (int i = 0; i < 35; i++)
- //{
- // for (int j = 0; j < 35; j++)
- // {
- // std::cout << wij[i][j] << " ";
- // }
- // std::cout << std::endl;
- //}
- while (petla)
- {
- for (int i = 0; i < 35; i++)
- {
- for (int j = 0; j < 35; j++)
- {
- net[i] += wij[i][j] * s[patern][j];
- }
- }
- for (int t = 0; t < 35; t++)
- {
- y[t] = FunkcjaWyjscia(net[t], s[patern][t]);
- }
- petla = false;
- for (int i = 0; i < 35; i++)
- {
- if (y[i] != s[patern][i])
- {
- petla = true;
- }
- }
- std::cout << std::endl;
- std::cout << std::endl;
- std::cout << "Wczytane" << std::endl;
- Print(s[patern]);
- std::cout << std::endl;
- std::cout << std::endl;
- if (petla)
- {
- for (int i = 0; i < 35; i++)
- {
- s[patern][i] = y[i];
- }
- }
- }
- std::cout << "Orginal" << std::endl;
- Print(P[patern]);
- }
- system("pause");
- return 0;
- }
- int Delta(int i, int j)
- {
- if (i == j)
- return 1;
- else
- return 0;
- }
- int FunkcjaWyjscia(int net, int yt)
- {
- if (net > 0)
- return 1;
- else if (net == 0)
- return yt;
- else
- return -1;
- }
- void Print(int tab[35])
- {
- for (int i = 0; i < 35; i++)
- {
- if (tab[i] == -1)
- std::cout << "0";
- else
- std::cout << tab[i];
- if (i % 5 == 4)
- std::cout << std::endl;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement