рдЖрдЬрдХрд▓, рдЖрдиреБрд╡рдВрд╢рд┐рдХ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рд▓реЛрдХрдкреНрд░рд┐рдпрддрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░ рдХреА рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдХрд╣реАрдВ рд╡реЗ рджреВрд╕рд░реЛрдВ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЕрдзрд┐рдХ рдХреБрд╢рд▓рддрд╛ рд╕реЗ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ, рдХрд╣реАрдВ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдиреЗ рд╕рд┐рд░реНрдл рджрд┐рдЦрд╛рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ ...
рддреЛ рдПрдХ рдЖрдиреБрд╡рдВрд╢рд┐рдХ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреНрдпрд╛ рд╣реИ? рд╡рд┐рдХрд┐рдкреАрдбрд┐рдпрд╛ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдЖрдиреБрд╡рдВрд╢рд┐рдХ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдПрдХ рд╣реЗрдпреЛрд░рд┐рд╕реНрдЯрд┐рдХ рдЦреЛрдЬ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдЕрдиреБрдХреВрд▓рди рдФрд░ рдореЙрдбрд▓рд┐рдВрдЧ рдХреА рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рдмреЗрддрд░рддреАрдм рдврдВрдЧ рд╕реЗ рдЪрдпрди рдХрд░рдиреЗ, рд╕рдВрдпреЛрдЬрди рдХрд░рдиреЗ рдФрд░ рд╡рд╛рдВрдЫрд┐рдд рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рдХрд┐ рдЬреИрд╡рд┐рдХ рд╡рд┐рдХрд╛рд╕ рдХреА рдпрд╛рдж рджрд┐рд▓рд╛рддрд╛ рд╣реИред рдпрд╣ рдПрдХ рдкреНрд░рдХрд╛рд░ рдХреА рд╡рд┐рдХрд╛рд╕рд╡рд╛рджреА рд╕рдВрдЧрдгрдирд╛ рд╣реИред рдЖрдиреБрд╡рдВрд╢рд┐рдХ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреА рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╡рд┐рд╢реЗрд╖рддрд╛ "рдХреНрд░реЙрд╕рд┐рдВрдЧ" рдСрдкрд░реЗрдЯрд░ рдХреЗ рдЙрдкрдпреЛрдЧ рдкрд░ рдЬреЛрд░ рд╣реИ, рдЬреЛ рдЙрдореНрдореАрджрд╡рд╛рд░ рд╕рдорд╛рдзрд╛рдиреЛрдВ рдХреЗ рдкреБрдирд░реНрд╕рдВрдпреЛрдЬрди рдХрд╛ рд╕рдВрдЪрд╛рд▓рди рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреА рднреВрдорд┐рдХрд╛ рд╡рдиреНрдп рдЬреАрд╡рди рдореЗрдВ рдкрд╛рд░ рдХрд░рдиреЗ рдХреА рднреВрдорд┐рдХрд╛ рдХреЗ рд╕рдорд╛рди рд╣реИред
рдпрд╛рдиреА рдЖрдиреБрд╡рдВрд╢рд┐рдХ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рд╣рдорд╛рд░реЗ рд╡рд┐рдХрд╛рд╕ рдХреА рддрд░рд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╢реБрд░реБрдЖрддреА рдЖрдмрд╛рджреА рдмрдирд╛рдИ рдЬрд╛рддреА рд╣реИ, рдлрд┐рд░ рд╡реЗ рдЗрдВрдЯрд░рдмреНрд░рд┐рдб (рдЙрддреНрдкрд░рд┐рд╡рд░реНрддрди рд╕рдВрднрд╡ рд╣реИрдВ)ред рдкреНрд░рд╛рдХреГрддрд┐рдХ рдЪрдпрди рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдЬреАрд╡рд┐рдд рдЖрдмрд╛рджреА рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдорд╛рдирджрдВрдбреЛрдВ рдХреЗ рдЕрдиреБрдкрд╛рд▓рди рдХреЗ рд▓рд┐рдП рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрджрд┐ рд╡реЗ рд╕рдВрддреБрд╖реНрдЯ рд╣реИрдВ, рддреЛ рд╣рд░ рдХреЛрдИ рдЦреБрд╢ рд╣реИ, рдпрджрд┐ рдирд╣реАрдВ, рддреЛ рд╡реЗ рдЕрдВрддрд┐рдо рдЬреАрдд рддрдХ рдлрд┐рд░ рд╕реЗ рдкрд╛рд░ рдХрд░рддреЗ рд╣реИрдВред
рдпрд╣ рд╕рдм рдХреИрд╕реЗ рджрд┐рдЦрддрд╛ рд╣реИ рдЖрдк рдирд┐рдореНрди рдЖрдХреГрддрд┐ рдореЗрдВ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ:

рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ, рдореИрдВ рдПрдХ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рджреЗрддрд╛ рд╣реВрдВ рдЬреЛ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ "рд╣реИрд▓реЛ рд╡рд░реНрд▓реНрдб!" рдмрдирд╛рддрд╛ рд╣реИред
рдЗрд╕ рдЖрдиреБрд╡рдВрд╢рд┐рдХ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкреИрд░рд╛рдореАрдЯрд░ рд╣реИрдВ:
рдЬрдирд╕рдВрдЦреНрдпрд╛ рдХрд╛ рдЖрдХрд╛рд░: | 2048 |
рдореНрдпреВрдЯреЗрд╢рди (%): | 25 |
рдкрд░реЛрдкрдХрд╛рд░рд┐рддрд╛ (%): | 10 |
рд╕реНрд░реЛрдд рдХреЛрдб # рдЗрдХрд▓реМрддрд╛ <iostream> // cout рдХреЗ рд▓рд┐рдП, рдЖрджрд┐ред
рд╡реЗрдХреНрдЯрд░ рдХреНрд▓рд╛рд╕ рдХреЗ рд▓рд┐рдП #include <рд╡реЗрдХреНрдЯрд░> //
#include <string> // string class рдХреЗ рд▓рд┐рдП
#include <рдПрд▓реНрдЧреЛрд░рд┐рдердо> рд╕реЙрд░реНрдЯрд┐рдВрдЧ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХреЗ рд▓рд┐рдП
рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдЪрд░ рдХреЗ рд▓рд┐рдП #include <time.h> //
#include <math.h> // рдПрдмреНрд╕ рдХреЗ рд▓рд┐рдП ()
#define GA_POPSIZE 2048 // рдЬрдирд╕рдВрдЦреНрдпрд╛ рдХрд╛ рдЖрдХрд╛рд░
#define GA_MAXITER 16384 // рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐рдпреЛрдВ рдХреА рдЕрдзрд┐рдХрддрдо рд╕рдВрдЦреНрдпрд╛
#define GA_ELITRATE 0.10f // Elitism
#define GA_MUTATIONRATE 0.25f // рдореНрдпреВрдЯреЗрд╢рди
#define GA_MUTATION RAND_MAX * GA_MUTATIONRATE
#define GA_TARGET std :: string ("рд╣реИрд▓реЛ рд╡рд░реНрд▓реНрдб!")
рдирд╛рдо рд╕реНрдерд╛рди std рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛;
рд╕рдВрд░рдЪрдирд╛ ga_struct
{
рд╕реНрдЯреНрд░рд┐рдВрдЧ str; // рд╕реНрдЯреНрд░рд┐рдВрдЧ
рдЕрд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд рдЗрдВрдЯ рдлрд┐рдЯрдиреЗрд╕; // рдЙрдкрдпреБрдХреНрддрддрд╛
};
рдЯрд╛рдЗрдкрдбрд┐рдл рд╡реЗрдХреНрдЯрд░ <ga_struct> ga_vector; // рдХрдо рдХреЗ рд▓рд┐рдП
рд╢реВрдиреНрдп init_population (Ga_vector рдФрд░ рдЬрдирд╕рдВрдЦреНрдпрд╛,
рдЧрд╛_рд╡реЗрдХреНрдЯрд░ рдФрд░ рдмрдлрд░)
{
int tsize = GA_TARGET.size ();
for (int i = 0; рдореИрдВ <GA_POPSIZE; i ++) {
ga_struct рдирд╛рдЧрд░рд┐рдХ;
рдирд╛рдЧрд░рд┐рдХрддрд╛ред рд╕рд╛рдХреНрд╖реА = реж;
Cit.str.erase ();
for (int j = 0; j <tsize; j ++)
Cit.str + = (rand ()% 90) + 32;
рдЖрдмрд╛рджреАред рдкрд╢_рдмреИрдХ (рдирд╛рдЧрд░рд┐рдХ);
}
рдмрдлрд░.рд╕реЗрд░реАрдЬрд╝ (GA_POPSIZE);
}
рд╢реВрдиреНрдп calc_fitness (Ga_vector рдФрд░ рдЬрдирд╕рдВрдЦреНрдпрд╛)
{
рд╕реНрдЯреНрд░рд┐рдВрдЧ рд▓рдХреНрд╖реНрдп = GA_TARGET;
int tsize = target.size ();
рдЕрд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд рдЗрдВрдЯ рдлрд┐рдЯрдиреЗрд╕;
for (int i = 0; рдореИрдВ <GA_POPSIZE; i ++) {
рдлрд┐рдЯрдиреЗрд╕ = 0;
for (int j = 0; j <tsize; j ++) {
рдлрд┐рдЯрдиреЗрд╕ + = рдПрдмреНрд╕ (рдЗрдВрдЯ (рдЬрдирд╕рдВрдЦреНрдпрд╛ [i] .str [j] - рд▓рдХреНрд╖реНрдп [j]));
}
рдЖрдмрд╛рджреА [i]ред рдЧрд╡рд╛рд╣ = рдлрд┐рдЯрдиреЗрд╕;
}
}
рдмреВрд▓ fitness_sort (ga_struct x, ga_struct y)
{рд╡рд╛рдкрд╕реА (x.fitness <y.fitness); }
рдЗрдирд▓рд╛рдЗрди рд╢реВрдиреНрдп sort_by_fitness (Ga_vector рдФрд░ рдЬрдирд╕рдВрдЦреНрдпрд╛)
{рдХреНрд░рдордмрджреНрдз (рдЬрдирд╕рдВрдЦреНрдпрд╛.рдмреАрдЬрд┐рди) (, рдЬрдирд╕рдВрдЦреНрдпрд╛.рдПрдВрдб), рдлрд┐рдЯрдиреЗрд╕_рд╕реЛрд░реНрдЯ); }
рд╢реВрдиреНрдп рдЕрднрд┐рдЬрд╛рддреНрдп (Ga_vector рдФрд░ рдЬрдирд╕рдВрдЦреНрдпрд╛,
Ga_vector рдФрд░ рдмрдлрд░, int esize)
{
for (int i = 0; рдореИрдВ <esize? i ++) {
рдмрдлрд╝рд░ [i] .str = рдЬрдирд╕рдВрдЦреНрдпрд╛ [i] .str;
рдмрдлрд░ [i]ред рдЧрд╡рд╛рд╣ = рдЬрдирд╕рдВрдЦреНрдпрд╛ [i]ред рдЧрд╡рд╛рд╣;
}
}
рд╢реВрдиреНрдп рдЙрддреНрдкрд░рд┐рд╡рд░реНрддреА (Ga_struct рдФрд░ рд╕рджрд╕реНрдп)
{
int tsize = GA_TARGET.size ();
int ipos = rand ()% tsize;
int delta = (rand ()% 90) + 32;
member.str [ipos] = ((member.str [ipos] + delta)% 122);
}
рд╢реВрдиреНрдп рджреЛрд╕реНрдд (Ga_vector рдФрд░ рдЬрдирд╕рдВрдЦреНрдпрд╛, ga_vector рдФрд░ рдмрдлрд░)
{
int esize = GA_POPSIZE * GA_ELITRATE;
int tsize = GA_TARGET.size (), spos, i1, i2;
рдЕрднрд┐рдЬрд╛рддреНрдп (рдЬрдирд╕рдВрдЦреНрдпрд╛, рдмрдлрд░, рдПрд╕рд╛рдЗрдЬрд╝);
// рдЖрд░рд╛рдо рдХрд░реЗрдВ
for (int i = esize; рдореИрдВ <GA_POPSIZE; i ++) {
i1 = рд░реИрдВрдб ()% (GA_POPSIZE / 2);
i2 = рд░реИрдВрдб ()% (GA_POPSIZE / 2);
spos = rand ()% tsize;
рдмрдлрд░ [i] .str = рдЬрдирд╕рдВрдЦреНрдпрд╛ [i1] .str.substr (0, spos) +
рдЬрдирд╕рдВрдЦреНрдпрд╛ [i2] .str.substr (spos, esize - spos);
рдЕрдЧрд░ (рд░реИрдВрдб) (<GA_MUTATION) рдореНрдпреВрдЯреЗрдЯ (рдмрдлрд░ [i]);
}
}
рдЗрдирд▓рд╛рдЗрди рд╢реВрдиреНрдп Print_best (ga_vector & gav)
{cout << "рд╕рд░реНрд╡рд╢реНрд░реЗрд╖реНрда:" << gav [0] .str << "(" << gav [0] .fitness << ")" << endl; }
рдЗрдирд▓рд╛рдЗрди рд╢реВрдиреНрдп рд╕реНрд╡реИрдк (ga_vector * рдФрд░ рдЬрдирд╕рдВрдЦреНрдпрд╛,
ga_vector * рдФрд░ рдмрдлрд░)
{ga_vector * рдЕрд╕реНрдерд╛рдпреА = рдЬрдирд╕рдВрдЦреНрдпрд╛; рдЖрдмрд╛рджреА = рдмрдлрд░; рдмрдлрд░ = рдЕрд╕реНрдерд╛рдпреА; }
int main ()
{
рд╕рд░рдВрдб (рдЕрд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд (рд╕рдордп (NULL)));
ga_vector pop_alpha, pop_beta;
ga_vector * рдЬрдирд╕рдВрдЦреНрдпрд╛, * рдмрдлрд░;
init_population (pop_alpha, pop_beta);
рдЖрдмрд╛рджреА = & pop_alpha;
рдмрдлрд░ = & pop_beta;
for (int i = 0; рдореИрдВ <GA_MAXITER; i ++) {
calc_fitness (* рдЬрдирд╕рдВрдЦреНрдпрд╛); // рдЙрдкрдпреБрдХреНрддрддрд╛ рдХреА рдЧрдгрдирд╛ рдХрд░реЗрдВ
Sort_by_fitness (* рдЬрдирд╕рдВрдЦреНрдпрд╛); // рдЬрдирд╕рдВрдЦреНрдпрд╛ рдЫрд╛рдБрдЯреЗрдВ
Print_best (* рдЬрдирд╕рдВрдЦреНрдпрд╛); // рд╕рдмрд╕реЗ рдЕрдЪреНрдЫреА рдЖрдмрд╛рджреА рдкреНрд░рд┐рдВрдЯ
рдЕрдЧрд░ (* рдЬрдирд╕рдВрдЦреНрдпрд╛) [0]ред рдЧрд╡рд╛рд╣ == 0) рд╡рд┐рд░рд╛рдо;
рджреЛрд╕реНрдд (* рдЬрдирд╕рдВрдЦреНрдпрд╛, * рдмрдлрд░); // рдореЗрдЯ рдЖрдмрд╛рджреА
рд╕реНрд╡реИрдк (рдЬрдирд╕рдВрдЦреНрдпрд╛, рдмрдлрд░); // рдмрдлрд╝рд░реНрд╕ рд╕рд╛рдлрд╝ рдХрд░реЗрдВ
}
рд╡рд╛рдкрд╕реА 0;
}
рдмрд╕ рдХреЛрдб рдкрд░ рдХреБрдЫ рдЯрд┐рдкреНрдкрдгреА рджреЗрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╣рдордиреЗ рдзреЛрдЦрд╛ рджрд┐рдпрд╛ рдЬрдм рд╣рдордиреЗ рдЖрдиреБрд╡рдВрд╢рд┐рдХ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдореЗрдВ рдирд┐рд╢реНрдЪрд┐рдд рд░реЗрдЦрд╛ рдЖрдХрд╛рд░ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдП, рдЬреЛ рд╡рд╛рдВрдЫрд┐рдд рд░реЗрдЦрд╛ рдХреЗ рдЖрдХрд╛рд░ рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИрдВред рдпрд╣ рдХреЛрдб рдХреА рдмреЗрд╣рддрд░ рд╕рдордЭ рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рджреВрд╕рд░реЗ, рдПрд╕рдЯреАрдПрд▓ рд╡рд░реНрдЧ рд╡реЗрдХреНрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдбреЗрдЯрд╛ рд╕реНрдЯреЛрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ - рдпрд╣ рдХреНрд░рдордмрджреНрдзрддрд╛ рдХреЛ рдЖрд╕рд╛рди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЕрдВрдд рдореЗрдВ, рдХрд╛рд░реНрдпрдХреНрд░рдо рдЖрдмрд╛рджреА рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рджреЛ рд╕рд░рдгрд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ - рдПрдХ рд╡рд░реНрддрдорд╛рди рдХреЗ рд▓рд┐рдП, рджреВрд╕рд░рд╛ рдЕрдЧрд▓реА рдкреАрдврд╝реА рдХреЗ рд▓рд┐рдП рдПрдХ рдмрдлрд░ рд╣реИред рдкреНрд░рддреНрдпреЗрдХ рдкреАрдврд╝реА рдореЗрдВ, рдЧрдгрдирд╛рдУрдВ рдХреЛ рдЧрддрд┐ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдВрдХреЛрдВ рдХреЛ рдирд┐рдХрдЯрддрдо рдкреВрд░реНрдгрд╛рдВрдХ рддрдХ рдЧреЛрд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдЙрдкрдпреБрдХреНрддрддрд╛ рдХрд╛ рдирд┐рд░реНрдзрд╛рд░рдгрдЖрдЗрдП рдПрдХ рдЖрдмрд╛рджреА рдХреА рдЙрдкрдпреБрдХреНрддрддрд╛ рдХрд╛ рдирд┐рд░реНрдзрд╛рд░рдг рдХрд░рдиреЗ рдХреЗ рдХрд╛рд░реНрдп рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдВ:
void calc_fitness(ga_vector &population)
{
string target = GA_TARGET;
int tsize = target.size();
unsigned int fitness;
for (int i=0; i<GA_POPSIZE; i++) {
fitness = 0;
for (int j=0; j<tsize; j++) {
fitness += abs(int(population[i].str[j] - target[j]));
}
population[i].fitness = fitness;
}
}
рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ, рдЖрдмрд╛рджреА рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рд╕рджрд╕реНрдп рдХреЛ рдпрд╣рд╛рдВ рд╕реНрдХреИрди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рд▓рдХреНрд╖реНрдп рд░реЗрдЦрд╛ рдореЗрдВ рдЙрд╕рдХреЗ рд╕рд╛рде рддреБрд▓рдирд╛ рдХреА рдЬрд╛рддреА рд╣реИред рдкреНрд░рддреАрдХреЛрдВ рдХреЗ рдмреАрдЪ рдХреЗ рдЕрдВрддрд░ рдХреЛ рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рд╕рдВрдЪрд┐рдд рд░рд╛рд╢рд┐ рдХреЛ рдлрд┐рдЯрдиреЗрд╕ рдореВрд▓реНрдп рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдпрд╣ рдЬрд┐рддрдирд╛ рдЫреЛрдЯрд╛ рд╣реЛрддрд╛ рд╣реИ, рдЙрддрдирд╛ рдЕрдЪреНрдЫрд╛)ред
рдкрд░рд┐рдгрд╛рдордЬрдм рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдХрд╛рд░реНрдпрдХреНрд░рдо рд╕рдмрд╕реЗ рдЕрдЪреНрдЫреА рдЖрдмрд╛рджреА рдФрд░ рдЗрд╕рдХреА рдЙрдкрдпреБрдХреНрддрддрд╛ (рдХреЛрд╖реНрдардХ рдореЗрдВ рд╕рдВрдЦреНрдпрд╛) рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИред
Best: IQQte=Ygqem# (152)
Best: Crmt`!qrya+6 (148)
Best: 8ufxp+Rigfm* (140)
Best: b`hpf"woljh[ (120)
Best: b`hpf"woljh4 (81)
Best: b`hpf"woljh" (63)
Best: Kdoit!wnsk_! (24)
Best: Kdoit!wnsk_! (24)
Best: Idoit!wnsk_! (22)
Best: Idoit!wnsk_! (22)
Best: Idoit!wnsk_! (22)
Best: Idoit!wnsk_! (22)
Best: Ifknm!vkrlf? (17)
Best: Ifknm!vkrlf? (17)
Best: Gfnio!wnskd$ (14)
Best: Ffnjo!wnskd$ (14)
Best: Hflio!wnskd$ (11)
Best: Hflio!wnskd$ (11)
Best: Kflkn wosld" (8)
Best: Ifmmo workd" (6)
Best: Hfljo wosld" (5)
Best: Hflmo workd" (4)
Best: Hflmo workd" (4)
Best: Hflmo workd" (4)
Best: Iflmo world! (3)
Best: Iflmo world! (3)
Best: Hflmo world! (2)
Best: Hflmo world! (2)
Best: Hflko world! (2)
Best: Hflko world! (2)
Best: Hdllo world! (1)
Best: Hfllo world! (1)
Best: Hfllo world! (1)
Best: Helko world! (1)
Best: Hfllo world! (1)
Best: Hfllo world! (1)
Best: Hfllo world! (1)
Best: Hello world! (0)
рдирд┐рд╖реНрдХрд░реНрд╖рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдпрд╣ рдЫреЛрдЯрд╛ рдХрд╛рд░реНрдпрдХреНрд░рдо рдпрд╣ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реИ рдХрд┐ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд░рд▓ рдЖрдиреБрд╡рдВрд╢рд┐рдХ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рд╕рдмрд╕реЗ рдХреБрд╢рд▓ рдирд╣реАрдВ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдПрд╕рдЯреАрдПрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рдереЛрдбрд╝реА рдорджрдж рдХрд░рдиреА рдЪрд╛рд╣рд┐рдПред рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреЛ рд╡рд┐рдЬрд╝реБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ рдореЗрдВ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
рдЖрд╡реЗрджрди рдЙрджрд╛рд╣рд░рдгрдорд╛рдкрджрдВрдбреЛрдВ рдХреА рдПрдХ рд╕реАрдорд╛ рдкрд░ рдПрдХ рдЯреНрд░реЗрдбрд┐рдВрдЧ рд░реЛрдмреЛрдЯ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк "рдЪрдХреНрд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдирд╣реАрдВ" (рдЕрдм рд╕рднреА рдХрд╛рд░реНрдпрдХреНрд░рдореЛрдВ рдореЗрдВ) рд░реЗрдВрдЬ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЖрдиреБрд╡рдВрд╢рд┐рдХ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдФрд░ рд╕рдордп 9-12 рдЧреБрдирд╛ рдХрдо рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред
#рдореВрд▓ рд▓реЗрдЦ рдЕрдВрдЧреНрд░реЗрдЬреА рдореЗрдВредрдЖрдиреБрд╡рдВрд╢рд┐рдХ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреНрдпрд╛ рд╣реИ?