Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <stdlib.h>
- #include <time.h>
- #include <conio.h>
- using namespace std;
- float xs[25] = {};
- float c[25][25] {};
- float w[25][25] = {};
- float O[25] = {};
- float x[25] = {};
- float u[25] = {};
- void DrawX(){
- int counter = 0;
- for(int i = 0; i < 5; i++){
- for(int j = 0; j < 5; j++){
- if(x[counter] == 0){
- cout << "#";
- } else {
- cout << "*";
- }
- counter++;
- }
- cout << endl;
- }
- }
- float CalculateTheta(int number){
- float sum = 0.0f;
- for(int i = 0; i < 25; i++){
- sum += c[number][i];
- }
- return sum;
- }
- void CalculateC(){
- for(int i = 0;i < 25; i++){
- for(int j = 0; j < 25; j++){
- if(i != j){
- c[i][j] = (xs[i] - 0.5f) * (xs[j] - 0.5f);
- } else {
- c[i][j] = 0.0f;
- }
- }
- }
- }
- void SetTheta(){
- for(int i = 0; i < 25; i++){
- O[i] = CalculateTheta(i);
- }
- }
- void SetW(){
- for(int i = 0; i < 25; i++){
- for(int j = 0; j < 25; j++){
- w[i][j] = 2 * c[i][j];
- }
- }
- }
- void RandomizeX(){
- for(int i = 0; i < 25; i++){
- int temp = rand() % 2; // 50%
- if(temp == 0){
- x[i] = 1.0f;
- } else {
- x[i] = 0.0f;
- }
- }
- }
- float CalculateU(){
- for(int i = 0; i < 25; i++){
- float sum = 0.0f;
- for(int j = 0; j < 25; j++){
- sum += (w[i][j] * x[j]) - O[i];
- }
- u[i] = sum;
- }
- }
- int main()
- {
- srand (time(NULL));
- //Image draw [1]
- xs[6] = 1.0f;
- xs[7] = 1.0f;
- xs[12] = 1.0f;
- xs[17] = 1.0f;
- xs[22] = 1.0f;
- CalculateC();
- SetTheta();
- SetW();
- RandomizeX(); //First iteration
- int t = 0;
- bool flag = true;
- while(flag){
- cout << "Iteration neci umber: " << t << endl;
- DrawX();
- cout << endl;
- CalculateU();
- for(int i = 0; i < 25; i++){
- if(u[i] > 0.0){
- x[i] = 1.0f;
- } else if(u[i] < 0.0){
- x[i] = 0.0f;
- }
- }
- t++;
- getch();
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment