#include "stdafx.h"
#include <stdio.h>
#include <cstdlib>
#include <time.h>
#include <math.h>
#include <iostream>
#include <Windows.h>
/*GENERAL*/
#define GLOBAL 0.3
#define PERSONAL 0.3
#define INERT 0.3
#define DELAY 100
/*SWARM*/
#define N 60 //NUmber of agents
#define K 200 //Number of moves
int i = 0;
/* LIMITS */
#define Xmin -4
#define Xmax 6
#define Ymin -4
#define Ymax 6
double velocity[N][2];
double swarm[N][2];
double BestPers[N][3];
double BestGlob[3];
float Lrand(float min, float max)
{
return (min + ((rand() % 10000) / 1e4) * (max - min));
}
void init() //Generate initial positions and directions
{
for (int i = 0; i <N; i++);
{
swarm[i][0] = Lrand(Xmin, Xmax);
swarm[i][1] = Lrand(Ymin, Ymax);
velocity[i][0] = Lrand(-1, 1);
velocity[i][1] = Lrand(-1, 1);
BestPers[i][2] = 100000;
}
BestGlob[3] = 100000;
}
void MoveWasp() //Moves the whole wasp
{
for (int i = 0; i < N; i++)
{
for (int a = 0; a < 2; a++)
{
velocity[i][a] = INERT * velocity[i][a] +
Lrand(-1, 1) * GLOBAL * (BestGlob[a] - swarm[i][a]) +
Lrand(-1, 1) * PERSONAL * (BestPers[i][a] - swarm[i][a]);
swarm[i][a] = swarm[i][a] + velocity[i][a];
}
}
}
int chkBrd(int i) //Verifies agent's position
{
if ((Xmin <= swarm[i][0]) && (swarm[i][0] <= Xmax) && (Ymin <= swarm[i][1]) && (swarm[i][1] <= Ymax))
return 1;
else
return 0;
}
double calculate(int i)
{
double f;
double a = swarm[i][0], b = swarm[i][1];
f = (a * a + b * b);
// f = - 0.1 * fabs(1 - b) - 0.1 * fabs(1 - a) - j0(a * a + b * b);
// f = a * sin(4 * a) + 1.1 * b * sin(2 * b);
return f;
}
void checkBP(int i, double a)
{
if (a < BestPers[i][2])
{
BestPers[i][2] = a;
BestPers[i][1] = swarm[i][1];
BestPers[i][0] = swarm[i][0];
}
}
void checkBG(int i, double a)
{
if (a < BestGlob[2])
{
BestGlob[2] = a;
BestGlob[1] = swarm[i][1];
BestGlob[0] = swarm[i][0];
}
}
void display(int i)
{
std::cout << i << "\t" << BestGlob[0] << "\t" << BestGlob[1] << "\t" << BestGlob[2] << "\n";
}
void go()
{
double a;
for (int k = 0; k < K; k++)
{
for (int i = 0; i < N; i++)
{
if (chkBrd(i))
{
a = calculate(i);
checkBP(i, a);
checkBG(i, a);
}
}
display(k);
Sleep(DELAY);
}
return;
}
Так как это должно быть приложение, то там должна быть функция int main(){}
. Возможно, ее роль выполняет функция go. Тогда самый простой способ - добавить ещё такую функцию
int main() {
go();
return 0;
}
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Доброго времени, сутокМне надо надо написать функцию которую можно будет вызывать в Python 3
Мне надо сравнить два типаКак это сделать ? Допустим я беру из базы типы колонок