Advertisement
Guest User

Untitled

a guest
Jan 20th, 2020
102
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.21 KB | None | 0 0
  1. #include <iostream>
  2. #include <random>
  3.  
  4. int Delta(int i, int j);
  5. int FunkcjaWyjscia(int net, int yt);
  6. void Print(int tab[35]);
  7.  
  8. int main()
  9. {
  10.  
  11. //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 };
  12. //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
  13. //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
  14.  
  15.  
  16.  
  17. bool petla = true;
  18.  
  19.  
  20. double P[4][35];
  21.  
  22. for (int i = 0; i < 4; i++)
  23. {
  24. for (int j = 0; j < 35; j++)
  25. {
  26. std::cin >> P[i][j];
  27. }
  28. }
  29.  
  30. double wij[35][35] = { 0 };
  31.  
  32.  
  33.  
  34. for (int i = 0; i < 35; i++)
  35. {
  36. for (int j = 0; j < 35; j++)
  37. {
  38. double temp = 0.0;
  39. for (int m = 0; m < 4; m++)
  40. {
  41. temp += P[m][i] * P[m][j];
  42. }
  43.  
  44. wij[i][j] = (1.0 - Delta(i, j))* temp;
  45. }
  46. }
  47.  
  48. for (int i = 0; i < 35; i++)
  49. {
  50. for (int j = 0; j < 35; j++)
  51. {
  52. std::cout << wij[i][j] << " ";
  53. }
  54. std::cout << std::endl;
  55. }
  56.  
  57. int y[35] = {0};
  58. double net[35] = {0};
  59. int s[] = { 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 };
  60.  
  61.  
  62. while (petla)
  63. {
  64. for (int i = 0; i < 35; i++)
  65. {
  66. for (int j = 0; j < 35; j++)
  67. {
  68. net[i] += wij[i][j] * s[j];
  69. }
  70. }
  71.  
  72. for (int t = 0; t < 35; t++)
  73. {
  74. y[t] = FunkcjaWyjscia(net[t], s[t]);
  75. }
  76.  
  77. petla = false;
  78. for (int i = 0; i < 35; i++)
  79. {
  80.  
  81. if (y[i] != s[i])
  82. {
  83. petla = true;
  84.  
  85. }
  86. }
  87. std::cout << std::endl;
  88. std::cout << std::endl;
  89. Print(s);
  90. std::cout << std::endl;
  91. std::cout << std::endl;
  92.  
  93. if (petla)
  94. {
  95. for (int i = 0; i < 35; i++)
  96. {
  97. s[i] = y[i];
  98. }
  99. }
  100. }
  101.  
  102.  
  103.  
  104. return 0;
  105. }
  106.  
  107. int Delta(int i, int j)
  108. {
  109. if (i == j)
  110. return 1;
  111. else
  112. return 0;
  113. }
  114.  
  115. int FunkcjaWyjscia(int net, int yt)
  116. {
  117. if (net > 0)
  118. return 1;
  119. else if (net == 0)
  120. return yt;
  121. else
  122. return -1;
  123.  
  124. }
  125.  
  126. void Print(int tab[35])
  127. {
  128. for (int i = 0; i < 35; i++)
  129. {
  130. if (tab[i] == -1)
  131. std::cout << "0";
  132. else
  133. std::cout << tab[i];
  134.  
  135. if (i % 5 == 4)
  136. std::cout << std::endl;
  137. }
  138. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement