Форум программистов, компьютерный форум CyberForum.ru

Генетический алгоритм подбора максимума/минимума разных функций - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Нахождение простого элемента в массиве http://www.cyberforum.ru/cpp-beginners/thread1066153.html
Не получается вывести простое число из массива. Подскажите пожалуйста, в чем ошибка? #include <iostream> #include <conio.h> #include <cstdlib> using namespace std; int main() {
C++ Шаблонный класс "множества". Операции над множествами Доброго времени суток. Суть моего задания заключается в создании шаблонного класса "множества" и затем операции над этими множествами(пересечение, объединение, разность, прямое произведение). Я пока пытаюсь написать код для реализации "пересечения" 2х множеств. Прошу указать на мои ошибки, помочь доработать код.. (я написал класс(нужно написать еще конструктор класса), шаблонную функцию для... http://www.cyberforum.ru/cpp-beginners/thread1066143.html
Найти в файле самую длинную строку и переписать её в другой файл C++
всем привет возник такой вопрос есть файл в который вносятся числа разного количества. по этому есть несколько строк введённых чисел. вопрос в следующем как можно найти самую длинную строку и переписать её в другой файл?
Нежелательное добавление информации в файл, исправить код C++
Помогите переделать, я запутался, делал с преподом задачу. В общем есть файл например 6256 Mihin 4560 4322 Muhin 4500 7756 Kuzin 1900 4622 Komarov 9000 3322 kyznec 4000 таб номер, фамилия и оклад. У меня есть функция которая формирует хеш тамбл, но в ней у меня и фуекция добавления и получается что когда я запускаю программу, она дописывает в файл уже что есть и добавляет ещё. Я думаю...
C++ Запросить название учебного заведения, специальность и номер группы. записав их в массив из 3 строк. Подсчитать длины каждой строк http://www.cyberforum.ru/cpp-beginners/thread1066091.html
Запросить у пользователя название учебного заведения, специальность и номер группы. записав их в массив из 3 строк. Подсчитать длины каждой строки.
C++ Сортировка массива методом центрированной вставки Укажите на ошибки пожалуйста. #include <conio.h> #include <iostream.h> void sort(int a, int size) { int i, j, k; int *b=new int; int m = size/2; //медиана подробнее

Показать сообщение отдельно
MihaniX
 Аватар для MihaniX
134 / 44 / 1
Регистрация: 06.08.2013
Сообщений: 292
Записей в блоге: 4
09.01.2014, 22:30  [ТС]     Генетический алгоритм подбора максимума/минимума разных функций
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
#include <iostream>
#include <cstdlib>
#include <ctime>
#include <algorithm>
#include <numeric>
 
#define FIRST -50
#define LAST 50
 
using namespace std;
 
const size_t x=10;
 
int fitness(int &n)
{
n=n;
return n;
}
 
void selection(int a[])
{
for(size_t i=0; i<x; ++i)
for(int j=i+1; j<x; ++j)
if(fitness(a[j])<fitness(a[i]))swap(a[i],a[j]);
copy(a + x / 2, a + x, a);
}
 
int mutation(int &t)
{
do
{
t += ((rand() % 2 == 1) ? 1 : -1);
}
while (FIRST<=t && t<=LAST);
cout<<"|"<<t<<"|";
return t;
}
 
int main()
{
 
srand(time(NULL));
 
int n=0;
int data_base[x]={0};
 
/*...*/
 
for (int rounds=0; rounds<500; rounds++)
{
for (size_t i = 0; i < x; ++i)
data_base[i]=mutation(data_base[i]);
selection(data_base);
}
 
for (size_t i=0; i<x; i++)
{
cout<<data_base[i]<<" ";
}
return 0;
}
Работает верно, но на ограничения не реагирует...
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
#include <iostream>
#include <cstdlib>
#include <ctime>
#include <algorithm>
#include <numeric>
 
#define FIRST -50
#define LAST 50
 
using namespace std;
 
const size_t x=10;
 
int fitness(int &n)
{
    n=n;
    return n;
}
 
void selection(int a[])
{
    for(size_t i=0; i<x; ++i)
        for(int j=i+1; j<x; ++j)
            if(fitness(a[j])<fitness(a[i]))swap(a[i],a[j]);
    copy(a + x / 2, a + x, a);
}
 
int mutation(int &t)
{
    int x=LAST; int y=FIRST;
    for(;;)
        {
            t += ((rand() % 2 == 1) ? 1 : -1);
            if ((t<=x) && (t>=y)){break;}
        }
    return t;
}
 
int main()
{
 
    srand(time(NULL));
 
    int n=0;
    int data_base[x]={0};
 
    /*...*/
 
    for (int rounds=0; rounds<500; rounds++)
    {
        for (size_t i = 0; i < x; ++i)
            data_base[i]=mutation(data_base[i]);
        selection(data_base);
    }
 
    for (size_t i=0; i<x; i++)
        {
            cout<<data_base[i]<<" ";
        }
    return 0;
}
Вообще ничего не выводит...

Добавлено через 1 час 5 минут
ВОТ! РАБОЧЕЕ! Нашел пару ошибок и исправил.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
#include <iostream>
#include <cstdlib>
#include <ctime>
#include <algorithm>
#include <numeric>
#include <cmath>
 
#define FIRST -50
#define LAST 50
 
using namespace std;
 
const size_t x=10;
 
double fitness(double &n)
{
    double x=1/n;
    return x;
}
 
void selection(double a[])
{
    for(size_t i=0; i<x; ++i)
        for(size_t j=i+1; j<x; ++j)
            if(fitness(a[j])<fitness(a[i]))swap(a[i],a[j]);
    copy(a + x / 2, a + x, a);
}
 
double mutation(double &t)
{
    do{t += (( ( (double)(rand() % 2) ) / 100 == 0.01) ? 0.01 : -0.01);}while(t==0 or t<FIRST or t>LAST);
cout<<"|"<<t<<"|";
return t;
}
 
int main()
{
 
    srand(time(NULL));
 
    int n=0;
    double data_base[x]={0};
 
    /*...*/
 
    for (int rounds=0; rounds<500; rounds++)
    {
        for (size_t i = 0; i < x; ++i)
            data_base[i]=mutation(data_base[i]);
        selection(data_base);
    }
    cout<<endl;
    for (size_t i=0; i<x; i++)
        {
            cout<<data_base[i]<<" ";
        }
    return 0;
}
Добавлено через 5 минут
пфффф нет по ходу не работает оно....... я уже замучался...........
 
Текущее время: 00:16. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru