Advertisement
Guest User

Untitled

a guest
Jan 20th, 2020
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.34 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. //int P[4][35] =
  16. //{
  17. //{ // A
  18. // 1, 1, 1, 1, 1,
  19. // 1, -1, -1, -1, 1,
  20. // 1, -1, -1, -1, 1,
  21. // 1, 1, 1, 1, 1,
  22. // 1, -1, -1, -1, 1,
  23. // 1, -1, -1, -1, 1,
  24. // 1, -1, -1, -1, 1
  25. //},
  26. //{ // C
  27. // 1,1,1,1,1,
  28. // 1,-1,-1,-1,-1,
  29. // 1,-1,-1,-1,-1,
  30. // 1,-1,-1,-1,-1,
  31. // 1,-1,-1,-1,-1,
  32. // 1,-1,-1,-1,-1,
  33. // 1,1,1,1,1
  34. //},
  35. //{ // I
  36. // -1,-1,1,-1,-1,
  37. // -1,-1,1,-1,-1,
  38. // -1,-1,1,-1,-1,
  39. // -1,-1,1,-1,-1,
  40. // -1,-1,1,-1,-1,
  41. // -1,-1,1,-1,-1,
  42. // -1,-1,1,-1,-1
  43. //},
  44. //{ // X
  45. // -1,-1,-1,-1,-1,
  46. // 1,-1,-1,-1,1,
  47. // -1,1,-1,1,-1,
  48. // -1,-1,1,-1,-1,
  49. // -1,1,-1,1,-1,
  50. // 1,-1,-1,-1,1,
  51. // -1,-1,-1,-1,-1
  52. //}
  53. //}
  54.  
  55.  
  56. int P[4][35] = {
  57. { // A
  58. 1, 1, 1, 1, 1,
  59. 1, -1, -1, -1, 1,
  60. 1, -1, -1, -1, 1,
  61. 1, 1, 1, 1, 1,
  62. 1, -1, -1, -1, 1,
  63. 1, -1, -1, -1, 1,
  64. 1, -1, -1, -1, 1
  65. },
  66. { // C
  67. 1,1,1,1,1,
  68. 1,-1,-1,-1,-1,
  69. 1,-1,-1,-1,-1,
  70. 1,-1,-1,-1,-1,
  71. 1,-1,-1,-1,-1,
  72. 1,-1,-1,-1,-1,
  73. 1,1,1,1,1
  74. },
  75. { // I
  76. -1,-1,1,-1,-1,
  77. -1,-1,1,-1,-1,
  78. -1,-1,1,-1,-1,
  79. -1,-1,1,-1,-1,
  80. -1,-1,1,-1,-1,
  81. -1,-1,1,-1,-1,
  82. -1,-1,1,-1,-1
  83. },
  84. { // X
  85. -1,-1,-1,-1,-1,
  86. 1,-1,-1,-1,1,
  87. -1,1,-1,1,-1,
  88. -1,-1,1,-1,-1,
  89. -1,1,-1,1,-1,
  90. 1,-1,-1,-1,1,
  91. -1,-1,-1,-1,-1
  92. }
  93. };
  94.  
  95.  
  96. bool petla = true;
  97.  
  98.  
  99.  
  100. //int s[35] = { // A
  101. // -1, -1, 1, -1, -1,
  102. // 1, -1, -1, -1, 1,
  103. // 1, -1, -1, -1, 1,
  104. // 1, -1, -1, 1, 1,
  105. // 1, -1, -1, -1, 1,
  106. // 1, -1, -1, -1, 1,
  107. // 1, -1, -1, -1, 1
  108. //};
  109.  
  110. int s[4][35] = {
  111. { // A
  112. -1, 1, 1, 1, 1,
  113. -1, -1, -1, -1, 1,
  114. -1, -1, -1, -1, 1,
  115. -1, 1, 1, 1, 1,
  116. -1, -1, -1, -1, 1,
  117. -1, -1, -1, -1, 1,
  118. -1, -1, -1, -1, 1
  119. },
  120. { // C
  121. -1,1,1,1,1,
  122. -1,-1,-1,-1,-1,
  123. 1,-1,-1,-1,-1,
  124. 1,-1,-1,-1,-1,
  125. 1,-1,-1,-1,-1,
  126. 1,-1,-1,-1,-1,
  127. 1,1,1,1,1
  128. },
  129. { // I
  130. -1,-1,1,-1,-1,
  131. -1,-1,1,-1,-1,
  132. -1,-1,1,-1,-1,
  133. -1,-1,1,-1,-1,
  134. -1,-1,1,-1,-1,
  135. -1,-1,1,-1,-1,
  136. -1,-1,1,-1,-1
  137. },
  138. { // X
  139. -1,-1,-1,-1,-1,
  140. 1,-1,-1,-1,1,
  141. -1,1,-1,1,-1,
  142. -1,-1,1,-1,-1,
  143. -1,1,-1,1,-1,
  144. 1,-1,-1,-1,1,
  145. -1,-1,-1,-1,-1
  146. }
  147. };
  148.  
  149. for (int patern = 0; patern < 4; patern++)
  150. {
  151. double wij[35][35] = { 0 };
  152. int y[35] = { 0 };
  153. double net[35] = { 0 };
  154.  
  155. for (int i = 0; i < 35; i++)
  156. {
  157. for (int j = 0; j < 35; j++)
  158. {
  159. double temp = 0.0;
  160. for (int m = 0; m < 4; m++)
  161. {
  162. temp += P[m][i] * P[m][j];
  163. }
  164.  
  165. wij[i][j] = (1.0 - Delta(i, j))* temp;
  166. }
  167. }
  168. //Wyswietlanie wag
  169. //for (int i = 0; i < 35; i++)
  170. //{
  171. // for (int j = 0; j < 35; j++)
  172. // {
  173. // std::cout << wij[i][j] << " ";
  174. // }
  175. // std::cout << std::endl;
  176. //}
  177.  
  178.  
  179.  
  180.  
  181.  
  182.  
  183.  
  184. while (petla)
  185. {
  186. for (int i = 0; i < 35; i++)
  187. {
  188. for (int j = 0; j < 35; j++)
  189. {
  190. net[i] += wij[i][j] * s[patern][j];
  191. }
  192. }
  193.  
  194. for (int t = 0; t < 35; t++)
  195. {
  196. y[t] = FunkcjaWyjscia(net[t], s[patern][t]);
  197. }
  198.  
  199. petla = false;
  200. for (int i = 0; i < 35; i++)
  201. {
  202.  
  203. if (y[i] != s[patern][i])
  204. {
  205. petla = true;
  206.  
  207. }
  208. }
  209. std::cout << std::endl;
  210. std::cout << std::endl;
  211. std::cout << "Wczytane" << std::endl;
  212. Print(s[patern]);
  213. std::cout << std::endl;
  214. std::cout << std::endl;
  215.  
  216. if (petla)
  217. {
  218. for (int i = 0; i < 35; i++)
  219. {
  220. s[patern][i] = y[i];
  221. }
  222. }
  223. }
  224.  
  225. std::cout << "Orginal" << std::endl;
  226. Print(P[patern]);
  227.  
  228. }
  229.  
  230.  
  231. system("pause");
  232. return 0;
  233. }
  234.  
  235. int Delta(int i, int j)
  236. {
  237. if (i == j)
  238. return 1;
  239. else
  240. return 0;
  241. }
  242.  
  243. int FunkcjaWyjscia(int net, int yt)
  244. {
  245. if (net > 0)
  246. return 1;
  247. else if (net == 0)
  248. return yt;
  249. else
  250. return -1;
  251.  
  252. }
  253.  
  254. void Print(int tab[35])
  255. {
  256. for (int i = 0; i < 35; i++)
  257. {
  258. if (tab[i] == -1)
  259. std::cout << "0";
  260. else
  261. std::cout << tab[i];
  262.  
  263. if (i % 5 == 4)
  264. std::cout << std::endl;
  265. }
  266. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement