(рд╕рдВрд╕реНрдХрд░рдг 2, рд╕рд╣реА рдЯрд╛рдЗрдкреЛ рдХреЗ рд╕рд╛рде - рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рд╣рд░ рдХреЛрдИ ...)
рдирдорд╕реНрдХрд╛рд░, рд╣реЗрдмреНрд░!
рдЕрдм рд╡рд╣ рдмреИрдард╛ рдерд╛, рдПрдХ рдорд┐рддреНрд░ рдХреЗ рд▓рд┐рдП рдЖрдиреБрд╡рдВрд╢рд┐рдХ рдПрд▓реНрдЧреЛрд░рд┐рдердо рдХрд╛ рдПрдХ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рдмрдирд╛ рд░рд╣рд╛ рдерд╛ред рдЙрд╕рд╕реЗ рд╕рд╛рдЭрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░реЗрд░рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдФрд░ рдХреБрдЫ рдЕрдиреНрдп рд╡рд┐рдЪрд╛рд░ ...
рджрд┐рдпрд╛ (рдЧреНрд░рд╛рд╣рдХ рдиреЗ рдЖрджреЗрд╢ рджрд┐рдпрд╛): рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд
рд░рд╛рдЬреНрдп рдореЗрдВ, рдЧреЛрджрд╛рдо рдореЗрдВ 100 рд╕реЗрд▓ рд╣реИрдВред рдорд╛рд▓ рдЙрд╕рдореЗрдВ рд╣реИред рдорд╛рддреНрд░рд╛ рдПрдХреНрд╕ рдХреЛ рдХреИрд╕реЗ рд▓реЗрдВ рддрд╛рдХрд┐ рд╕рднреА рд╢рд╛рдорд┐рд▓ рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдХреЛ рдЕрдВрдд рддрдХ рдЦрд╛рд▓реА рдХрд░ рд╕рдХреЗрдВ? рдареАрдХ рд╣реИ, рдЕрд░реНрдерд╛рддреН, рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдХ рд╕реЗрд▓ рдкреНрд░рдХрд╛рд░ рд╣реИ [34, 10, 32, 32, 33, 41, 44, 4, 28, 23, 22, 28, 29, 14, 28, 15, 38, 49, 30, 24, 24] 18, 9, 15, 8, 17, 9, 2, 7, 30, 29, 29, 2, 28, 23, 19, 4, 15, 30, 38, 3, 14, 21, 43, 50, 29, 29 14, 17, 12, 25, 15, 23, 28, 47, 38, 29, 7, 36, 45, 25, 6, 25, 11, 10, 1, 19, 37, 24, 27, 50, 12, 1, 1, 44, 22, 48, 13, 46, 49, 11, 33, 29, 4, 19, 33, 12, 3, 47, 27, 26, 45, 40, 37, 21, 2, 8, 8 рекрез, рел, рез, реп, рел] - рдХреИрд╕реЗ рдбрд╛рдпрд▓ рдХрд░реЗрдВ, рекреж
рдареАрдХ рд╣реИ, рдЖрдк рдмрд╕реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдпрдХреАрди рд╣реИ рдХрд┐ рдХреБрдЫ рд╕реНрдорд╛рд░реНрдЯ рд╣реИ, рд▓реЗрдХрд┐рди рдЖрдк рдЗрд╕реЗ рдПрдХ рдЬреЗрдиреЗрдЯрд┐рдХ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХреЗ рд╕рд╛рде рд╣рд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ ...
рдкрд╣рд▓рд╛ рд╕рд╡рд╛рд▓: рдЕрдкрдиреЗ рджрд┐рдорд╛рдЧ рдХреЛ рдХреНрдпреЛрдВ рд╕реБрдЦрд╛рдПрдВ, рдХреНрдпреЛрдВрдХрд┐ рдЕрдЧрд░ рдЖрдк рд╕рд┐рд░реНрдл рд╕реВрдЪреА рд╕реЗ рдЧреБрдЬрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдЗрд╕рдХреЗ рд▓рд┐рдП рдкрд╣рд▓реА рджреЛ рдХреЛрд╢рд┐рдХрд╛рдУрдВ рд╕реЗ рд▓реЗрдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ - рджреВрд╕рд░рд╛, рд╣рд╛рд▓рд╛рдВрдХрд┐, рд╢реЗрд╖ рд░рд╣реЗрдЧрд╛ред рдФрд░ рдЖрдкрдХреЛ рдмрд╣реБрдд рджреВрд░ рдирд╣реАрдВ рдЬрд╛рдирд╛ рдкрдбрд╝реЗрдЧрд╛ред рд▓реЗрдХрд┐рди рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП, рдЧреНрд░рд╛рд╣рдХ рдПрдХ рдкреВрд░реНрдгрддрд╛рд╡рд╛рджреА рд╣реИ, рд╡рд╣ рдЪрд╛рд╣рддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рдлрд╛рд░реНрдореЗрд╕реА рдореЗрдВ рд╣реЛред рд╕рдВрднрд╡рддрдГ рд╕реЛрдиреЗ рдХреЗ рд╡рдЬрди рдореЗрдВ рдПрдХ рд╕реЗрд▓ рдЧреЛрджрд╛рдо рдореЗрдВред рдРрд╕рд╛ рд╣реЛрддрд╛ рд╣реИред
рджреВрд╕рд░рд╛ рд╕рд╡рд╛рд▓: рдпрджрд┐ рдЖрдк рдЗрд╕реЗ рдмрдврд╝рддреЗ рдХреНрд░рдо рдореЗрдВ рдХреНрд░рдордмрджреНрдз рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдХреЛ рд╕реНрд╡рд╛рдЗрдк рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ ... рд╣рдорд╛рд░реЗ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рджрд╕ рд╕реЗ рдХрдо рдХреЛрд╢рд┐рдХрд╛рдУрдВ рд╡рд╛рд▓реЗ рдмрд╣реБрдд рд╕рд╛рд░реЗ рд╕реЗрд▓ рд╣реИрдВред рд╢рд╛рдпрдж, рдЧреНрд░рд╛рд╣рдХ рднреА рдирд╣реАрдВ рдЪрд╛рд╣рддрд╛;) рдореБрдЭреЗ рднреА рдРрд╕реЗ рд▓реЛрдЧ рдорд┐рд▓реЗ: рдореИрдВ рдпрд╣рд╛рдВ рдХрд╛ рдорд╛рд▓рд┐рдХ рд╣реВрдВред рдЙрдиреНрд╣реЛрдВрдиреЗ рддреБрдорд╕реЗ рдХрд╣рд╛ - рдпрд╣ рдХрд░реЛ, рд╕рд╡рд╛рд▓ рдордд рдкреВрдЫреЛред
(рдЦреИрд░, рдореЗрд░реЗ рдореБрд╡рдХреНрдХрд┐рд▓ рдирд╣реАрдВ, рдЕрдиреНрдпрдерд╛ рдореИрдВ рдПрдХ рдмрд╛рд░ рдлрд┐рд░ рд╕реЗ рдорд╛рдирд╡ рдорди рдореЗрдВ рд╡рд┐рд╢реНрд╡рд╛рд╕ рдЦреЛ рджреЗрддрд╛ ...)
рдЦреИрд░, рднрдЧрд╡рд╛рди рдЙрд╕рдХреЗ рд╕рд╛рде рд░рд╣реЗрдВ, рд╕рднреА рдХреА рдЕрдкрдиреА рдкреНрд░рд╛рдердорд┐рдХрддрд╛рдПрдВ рд╣реИрдВ ... рдлрд┐рд░ рд╣рдо рдЖрдиреБрд╡рдВрд╢рд┐рдХ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░реЗрдВрдЧреЗ - рд╣рдореЗрдВ рдХрд┐рд╕реА рддрд░рд╣ рдЗрд╕реЗ рд╣рд▓ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ ... рд╣рдо рдЬрд╛рд╡рд╛ рдореЗрдВ рд▓рд┐рдЦреЗрдВрдЧреЗред
рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЬрд┐рдиреНрд╣реЛрдВрдиреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЙрдирдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрд╣рд▓реЗ рдирд╣реАрдВ рд╕реБрдирд╛ рд╣реИ: рдорд╛рддреГ рдкреНрд░рдХреГрддрд┐ рдХреА рдирдХрд▓ рдХрд░реЗрдВред
- рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рд╕рд╛рдВрдХреЗрддрд┐рдХ рд╢рдмреНрджреЛрдВ рдореЗрдВ рдмрджрд▓рдирд╛
- рд╣рдо рдпрд╣ рдЬрд╛рдБрдЪрддреЗ рд╣реИрдВ рдХрд┐ рдЙрдкрдпреБрдХреНрдд рдмреЗрдВрдЪрдорд╛рд░реНрдХ рдХреА рдорджрдж рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рд╡рд┐рдХрд▓реНрдк рдХрд┐рддрдиреА рдЕрдЪреНрдЫреА рддрд░рд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ
- рдЕрдЧрд▓реА рдкреАрдврд╝реА рдХреЗ рд▓рд┐рдП рдЙрдирдХреЗ рдЧреБрдгреЛрдВ рдкрд░ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рдкрд╛рд╕
рдкреНрд░рдХреГрддрд┐ рдореЗрдВ рдЕрдВрддрд┐рдо рдЪрд░рдг рдореЗрдВ, рджреЛ рдШрдЯрдХ рд╣реЛрддреЗ рд╣реИрдВ: рдХреНрд░реЙрд╕рд┐рдВрдЧ рдУрд╡рд░ (рдЧреБрдгрд╕реВрддреНрд░ рдХреЗ рд╕рдорд╛рди рднрд╛рдЧреЛрдВ рдХреЗ рдмреАрдЪ рд╡рд░реНрдгреЛрдВ рдХрд╛ рдЖрджрд╛рди-рдкреНрд░рджрд╛рди) рдФрд░ рдЙрддреНрдкрд░рд┐рд╡рд░реНрддрди (рдЖрдиреБрд╡рдВрд╢рд┐рдХ рдХреЛрдб рдореЗрдВ рд╕рд╣рдЬ рдкрд░рд┐рд╡рд░реНрддрди)ред рд╣рд╛рдп, рд╣рд╛рдИ рд╕реНрдХреВрд▓;)
рд╢рд╛рдпрдж рдпрд╣реА рд╕рдм рд╣реИред рд╣рдо рдХреЛрдб рд▓реЗрдВрдЧреЗ рдХрд┐ рдХреМрди рд╕реЗ рд╕реЗрд▓ рд▓реЗрдиреЗ рд╣реИрдВ, рдФрд░ рдХрд┐рд╕ рд╕реЗ рдирд╣реАрдВред рд╣рдорд╛рд░реЗ рдкрд╛рд╕ 100 рдХреЛрд╢рд┐рдХрд╛рдПрдВ рд╣реИрдВ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рд╣рдорд╛рд░рд╛ рдЧреБрдгрд╕реВрддреНрд░ 100 рд╕рдЪреНрдЪреЗ / рдЭреВрдареЗ рддрддреНрд╡реЛрдВ рдХрд╛ рд╣реЛрдЧрд╛, рдЗрд╕рдХреЗ рд▓рд┐рдП рдореИрдВрдиреЗ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд▓рд┐рдпрд╛, рдЬрд┐рд╕рдореЗрдВ рд╢реВрдиреНрдп рдФрд░ рд▓рд┐рдЦреЗ рдЬрд╛рдПрдВрдЧреЗред рд╡реЗ, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, 100 рд╣реЛрдВрдЧреЗред
рдЗрд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдмреЗрдВрдЪрдорд╛рд░реНрдХ рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред рдкреНрд░рдХреГрддрд┐ рдПрдХ рдЖрд▓рд╛ рдХреА рддрд▓рд╛рд╢ рдореЗрдВ рд╣реИ, рдФрд░ рдХрдВрдкреНрдпреВрдЯрд░ рдкреНрд░рдХреГрддрд┐ рдЗрд╕реЗ рдмреЗрд╡рдХреВрдл рдмрдирд╛рдиреЗ рдФрд░ рдЬреАрд╡рд┐рдд рд░рд╣рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЗ рдмреЗрдВрдЪрдорд╛рд░реНрдХ рдореЗрдВ рдПрдХ рдЫреЗрдж рдХреА рддрд▓рд╛рд╢ рдХрд░реЗрдЧреАред рдЕрджреНрднреБрдд, рдИрдорд╛рдирджрд╛рд░реА рд╕реЗ ...
рд╕рднреА рдиреЗ рдХрд╣рд╛, рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рд╕реЗ:
private static int benchmark(String chromosome, boolean verbose) { int sum = 0; char[] cArr = chromosome.toCharArray(); for (int i = 0; i < cnt_bins; i++) { if (cArr[i] == '1') { sum += stock[i]; if (verbose) System.out.println("storage bin " + i + ":\t+" + stock[i] + "\t= " + sum); } if (sum == target_qty) { return 0; } } return Math.abs(target_qty - sum); }
рд╡рд┐рдЪрд╛рд░ рдпрд╣ рд╣реИ рдХрд┐ рд╣рдо рд╡рд╛рдВрдЫрд┐рдд рд╕рдВрдЦреНрдпрд╛ 40 рд╕реЗ рджреВрд░ рд╣реИрдВ, рдЗрд╕рд╕реЗ рднреА рдмрджрддрд░ред рдпрджрд┐ рд╣рдордиреЗ 40 рдХрд╛ рд╕реНрдХреЛрд░ рдХрд┐рдпрд╛ рд╣реИ, рддреЛ рд╣рдо рдЧреБрдгрд╕реВрддреНрд░ рдкрд░ рдЖрдЧреЗ рдирд╣реАрдВ рдмрдврд╝реЗрдВрдЧреЗ, рд╣рдо рдЬреАрдд рдЧрдПред рд╣рдо рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдмрдврд╝рддреЗ рдХреНрд░рдо рдореЗрдВ - рдХрдо рдкреЗрдирд▓реНрдЯреА рдЕрдВрдХ, рдмреЗрд╣рддрд░ рд╣реЛрдВрдЧреЗред
рдкрд╣рд▓реА рдкреАрдврд╝реА рдмреЗрддрд░рддреАрдм рдврдВрдЧ рд╕реЗ рдмрдирд╛рдИ рдЧрдИ рд╣реИ:
рдЪреВрдВрдХрд┐ рдЖрдиреБрд╡рдВрд╢рд┐рдХ рдПрд▓реНрдЧреЛрд░рд┐рдердо, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рд▓рдХреНрд╖реНрдп рддрдХ рдкрд╣реБрдВрдЪрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╣рдореЗрд╢рд╛ рдЗрд╕реЗ рд╣рд╛рд╕рд┐рд▓ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдкреАрдврд╝рд┐рдпреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЛ рд╕реАрдорд┐рдд рдХрд░рдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред
for (int generationNo = 0; generationNo < maxGenerationCnt; generationNo++) {
рдХреНрд░рдордмрджреНрдз рдХрд░реЗрдВ, рд╕рд░реНрд╡реЛрддреНрддрдо рдЫреЛрдбрд╝реЗрдВ:
...
рд╣рдо рдирд╕реНрд▓ рдФрд░ рдЧреБрдгрд╛ рдХрд░рддреЗ рд╣реИрдВ, рдЖрдмрд╛рджреА рдХреЗ рдЖрдХрд╛рд░ рдХреЛ рдкреБрдирд░реНрд╕реНрдерд╛рдкрд┐рдд рдХрд░рддреЗ рд╣реИрдВред рдпрд╣реА рд╣реИ, рд╣рдо рдмреЗрддрд░рддреАрдм рдврдВрдЧ рд╕реЗ рдорд╛рддрд╛-рдкрд┐рддрд╛ рдХрд╛ рдЪрдпрди рдХрд░рддреЗ рд╣реИрдВ, рд╕рдорд╛рди рд╕рдВрдХреЗрддреЛрдВ рдХреЛ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ (рдпрджрд┐ рдЖрдк рднрд╛рдЧреНрдпрд╢рд╛рд▓реА рд╣реИрдВ - рдПрдХреНрд╕рдЪреЗрдВрдЬ рдлреНрд▓реИрдЧ рджреЗрдЦреЗрдВ), рдореНрдпреВрдЯ рдХрд░реЗрдВ (рдореНрдпреВрдЯреЗрд╢рди рдлреНрд▓реИрдЧ), рдПрдХ рдЪрдорддреНрдХрд╛рд░ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░реЗрдВ ...
рдЦреИрд░, рдпрд╣рд╛рдБ рдЖрдк рдХреЗ рд▓рд┐рдП рдПрдХ рдЪрдорддреНрдХрд╛рд░ рд╣реИ:рд▓рдХреНрд╖реНрдп рдореВрд▓реНрдп: 40
рд╕реНрдЯреЙрдХ: [рейрек, резреж, рейреи, рейреи, рейрей, рекрез, рекрек, рек, рек, реи 10, реиреи, реиреи, реи 10, реи реп, резрек, реи 10, рей 10, рек реп, рейреж, реирек, рез 10, реп, резрел, 10 , 17, 9, 2, 7, 30, 29, 29, 2, 28, 23, 19, 4, 15, 30, 38, 3, 14, 21, 43, 50, 29, 14, 17, 12, 25 , 15, 23, 28, 47, 38, 29, 7, 36, 45, 25, 6, 25, 11, 10, 1, 19, 37, 24, 27, 50, 12, 1, 1, 44, 22 , 48, 13, 46, 49, 11, 33, 29, 4, 19, 33, 12, 3, 47, 27, 26, 45, 40, 37, 21, 2, 8, 41, 5, 1, 9 , 5]
рдкреАрдврд╝реА 0; рд╕рд░реНрд╡рд╢реНрд░реЗрд╖реНрда / рдЕрдВрддрд┐рдо рдорд╛рддрд╛-рдкрд┐рддрд╛ / рд╕рдмрд╕реЗ рдмреБрд░рд╛: 705/991/1580
рдкреАрдврд╝реА 1; рд╕рд░реНрд╡рд╢реНрд░реЗрд╖реНрда / рдЕрдВрддрд┐рдо рдорд╛рддрд╛-рдкрд┐рддрд╛ / рд╕рдмрд╕реЗ рдмреБрд░рд╛: 576/846/1175
рдкреАрдврд╝реА 2; рд╕рд░реНрд╡рд╢реНрд░реЗрд╖реНрда / рдЕрдВрддрд┐рдо рдорд╛рддрд╛-рдкрд┐рддрд╛ / рд╕рдмрд╕реЗ рдмреБрд░рд╛: 451/722/1108
рдкреАрдврд╝реА 3; рд╕рд░реНрд╡рд╢реНрд░реЗрд╖реНрда / рдЕрдВрддрд┐рдо рдорд╛рддрд╛-рдкрд┐рддрд╛ / рд╕рдмрд╕реЗ рдмреБрд░рд╛: 0/613/904
рд╕рдорд╛рдзрд╛рди рдорд┐рд▓рд╛
рднрдВрдбрд╛рд░рдг рдмрд┐рди 7: +4 = 4
рднрдВрдбрд╛рд░рдг рдмрд┐рди 10: 13: = 26
рднрдВрдбрд╛рд░рдг рдмрд┐рди 13: +14 = 40
рдФрд░ рдпрд╣рд╛рдБ рдкреВрд░рд╛ рдХреЛрдб рд╣реИ package ypk; import java.io.IOException; import java.io.StringWriter; import java.util.AbstractMap.SimpleEntry; import java.util.stream.Collectors; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.Random; public class YPK { private static int generation_size = 1000; private static int best_size = 200; private static int cnt_bins = 100; private static int max_stock = 50; private static double exchange_rate = .2; private static double mutation_rate = .01; private static Random rnd = new Random(); private static int target_qty = rnd.nextInt(cnt_bins * max_stock / 5);
рдФрд░ рдЕрдВрдд рдореЗрдВ: рдпрджрд┐ рдЖрдк рдорд╛рдкрджрдВрдбреЛрдВ рд╕реЗ рдЫреЗрдбрд╝рдЫрд╛рдбрд╝ рдХрд░рддреЗ рд╣реИрдВ - рдмрд╣реБрдд рдЕрдзрд┐рдХ рдЙрддреНрдкрд░рд┐рд╡рд░реНрддрди, рдмрд╣реБрдд рдХрдо рдЬрдирд╕рдВрдЦреНрдпрд╛ рдХрд╛ рдЖрдХрд╛рд░, рдЖрджрд┐ред - рд╕рднреА рдЦрд░рд╛рдм рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЛ рд╕реНрдерд┐рд░ рдпрд╛ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рджреЗ рджреЗрдВрдЧреЗред
рдпрд╣ рд╕рдорд╕реНрдпрд╛, рд╡реИрд╕реЗ, рдЕрдХреНрд╕рд░ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд░реВрдк рд╕реЗ рд╣рд▓ рд╣реЛ рдЬрд╛рддреА рд╣реИ рдФрд░ рдЕрдЧрд▓реА рдкреАрдврд╝рд┐рдпреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИ :) рдпрджрд┐ рдЖрдк рдХрдВрдкреНрдпреВрдЯрд░ рдХреЗ рдЬреАрд╡рди рдХреЛ рдЬрдЯрд┐рд▓ рдмрдирд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдмреЗрдВрдЪрдорд╛рд░реНрдХ рд╕реЗ рдЗрд╕ рд╡рд╛рдкрд╕реА рдХреЛ рд╣рдЯрд╛ рджреЗрдВ:
if (sum == target_qty) { return 0; }
рдпрд╣ рдХрд╛рд░реНрдп рдХреЛ рдЬрдЯрд┐рд▓ рдХрд░реЗрдЧрд╛ рдФрд░ рдХрдВрдкреНрдпреВрдЯрд░ рдХреЛ рдереЛрдбрд╝рд╛ рдиреБрдХрд╕рд╛рди рдкрд╣реБрдВрдЪрд╛рдПрдЧрд╛ ...
рд╕реМрднрд╛рдЧреНрдп рд╣реИ
m_OO_m