рдорд╛рдЗрдирд╕реНрд╡реАрдкрд░ рдЧреЗрдо рдХреЗ рд▓рд┐рдП рдмреЙрдЯ рд▓реЙрдЬрд┐рдХ рдПрд▓реНрдЧреЛрд░рд┐рджрдо

рд╕рдВрднрд╡рддрдГ рд╣рдо рдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдиреЗ рдХрднреА "рдорд╛рдЗрдирд╕реНрд╡реАрдкрд░" ("рдорд╛рдЗрдирд╕реНрд╡реАрдкрд░") рдЦреЗрд▓рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рд╣реИред рдЦреЗрд▓ рдХрд╛ рддрд░реНрдХ рд╕рд░рд▓ рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХ рд╕рдордп рдореЗрдВ рдЙрдиреНрд╣реЛрдВрдиреЗ рдЗрд╕рдХреЗ рдкрд╛рд░рд┐рдд рд╣реЛрдиреЗ рдХреЗ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХреЗ рд▓рд┐рдП рдПрдХ рдЗрдирд╛рдо рдХрд╛ рднреА рд╡рд╛рджрд╛ рдХрд┐рдпрд╛ред рдореЗрд░реЗ рдмреЙрдЯ рдореЗрдВ, рддрд░реНрдХ рдореЗрдВ рддреАрди рдПрд▓реНрдЧреЛрд░рд┐рджрдо рд╣реИрдВ рдЬрд┐рдирдХрд╛ рдЙрдкрдпреЛрдЧ рдХреНрд╖реЗрддреНрд░ рдХреА рд╕реНрдерд┐рддрд┐ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдореВрд▓ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдЖрдкрдХреЛ рдПрдХ рдЦрджрд╛рди рдХреЛ рдЦреЛрдЬрдиреЗ рдХреА 100- рдФрд░ 0 рдкреНрд░рддрд┐рд╢рдд рд╕рдВрднрд╛рд╡рдирд╛ рд╡рд╛рд▓реА рд╕рднреА рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдХреЛ рдЦреЛрдЬрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдХреЗрд╡рд▓ рдЗрд╕ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдФрд░ рд╡рд┐рд╢реЗрд╖рдЬреНрдЮ рд╕реНрддрд░ рдкрд░ рдПрдХ рдорд╛рдирдХ рд╕реИрдкрд░ рдореЗрдВ рдПрдХ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд╕рдорд╛рдзрд╛рди рдХреА рдЕрдиреБрдкрд╕реНрдерд┐рддрд┐ рдореЗрдВ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдкрд░ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдХреЛ рдЦреЛрд▓рдирд╛, 33% рдЬреАрдд рд╣рд╛рд╕рд┐рд▓ рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдХреБрдЫ рдЕрддрд┐рд░рд┐рдХреНрдд рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдЖрдкрдХреЛ рдЗрд╕ рдорд╛рди рдХреЛ 44% (рд╡рд┐рдВрдбреЛрдЬ 7) рддрдХ рдмрдврд╝рд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВред

рдореВрд▓ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо


рдореБрдЦреНрдп рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИред рдПрдХ рдУрдкрди рд╕реЗрд▓ рд╕реЗ рд╕рдЯреЗ рдЕрдЬреНрдЮрд╛рдд рд╕реЗрд▓ (рд╕реЗрд▓ рдХреНрд▓рд╛рд╕) рдПрдХ рд╕рдореВрд╣ (рдЧреНрд░реБрдк рдХреНрд▓рд╛рд╕) рдореЗрдВ рдмрдирддреЗ рд╣реИрдВ, рдЬреЛ рдЙрд╕ рд╕реЗрд▓ рдХреЗ рдореВрд▓реНрдп рдХреЛ рднреА рд░рд┐рдХреЙрд░реНрдб рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕рдХреЗ рдкрд╛рд╕ рдпрд╣ рд╣реИред


рдЖрдВрдХрдбрд╝рд╛ рдЪрд╛рд░ рд╕рдореВрд╣реЛрдВ рдХреЛ рджрд┐рдЦрд╛рддрд╛ рд╣реИ, рдЬрд┐рдирдореЗрдВ рд╕реЗ рдХреБрдЫ рдкреНрд░рддрд┐рдЪреНрдЫреЗрдж рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдХреБрдЫ рдореЗрдВ рдЕрдиреНрдп рд╕рдореВрд╣ рднреА рд╣реЛрддреЗ рд╣реИрдВред рд╣рдо рджрд░реНрд╢рд╛рддреЗ рд╣реИрдВ (123.1) - рд╕рдореВрд╣ рдореЗрдВ 1,2 рдФрд░ 3 рдХреЛрд╢рд┐рдХрд╛рдПрдВ рд╣реИрдВ, рдФрд░ рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рдЙрдирдореЗрдВ 1 рдЦрджрд╛рди рд╣реИред (5678.2) - рдЪрд╛рд░ рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдореЗрдВ 2 рдЦрджрд╛рдиреЗрдВ рд╣реИрдВред

рдкрд╣рд▓реЗ рдЖрдкрдХреЛ рд╕рдореВрд╣реЛрдВ рдХреЛ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП:
  1. рдкреНрд░рддреНрдпреЗрдХ рд╕рдореВрд╣ рдХреА рддреБрд▓рдирд╛ рдкреНрд░рддреНрдпреЗрдХ рдмрд╛рдж рд╡рд╛рд▓реЗ рд╕рдореВрд╣ рд╕реЗ рдХрд░реЗрдВред
  2. рдпрджрд┐ рд╕рдореВрд╣ рд╕рдорд╛рди рд╣реИрдВ, рддреЛ рджреВрд╕рд░реЗ рдХреЛ рд╣рдЯрд╛ рджреЗрдВред
  3. рдпрджрд┐ рдПрдХ рд╕рдореВрд╣ рдореЗрдВ рджреВрд╕рд░рд╛ рд╣реИ, рддреЛ рдЫреЛрдЯреЗ рдХреЛ рдмрдбрд╝реЗ рд╕реЗ рдШрдЯрд╛рдПрдВред рдпрд╣реА рд╣реИ, рджреЛ рд╕рдореВрд╣ рдереЗ (5678.2) рдФрд░ (5.1), рдмрди рдЧрдП (678.1) рдФрд░ (5.1); (2345.3) рдФрд░ (5.1) тЖТ (234.2) рдФрд░ (5.1)
  4. рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рд╕рдореВрд╣ (123.1) рдФрд░ (234.2), рдирд┐рдореНрди рд╕рд┐рджреНрдзрд╛рдВрдд рдХреЗ рдЕрдиреБрд╕рд╛рд░ рд░реВрдкрд╛рдВрддрд░рд┐рдд рд╣реИрдВ:
    1. рдЕрдиреНрддрд░реНрд╡рд┐рднрд╛рдЬрдХ рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдХрд╛ рдПрдХ рдирдпрд╛ рд╕рдореВрд╣ рдмрдирд╛рдПрдБ (23;)
    2. рд╣рдо рдирдП рд╕рдореВрд╣ рдореЗрдВ рдЦрд╛рдиреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреА рдЧрдгрдирд╛ рдХрд░рддреЗ рд╣реИрдВ рд╕рдореВрд╣ рдореЗрдВ рдЦрд╛рдиреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЗ рдмрд░рд╛рдмрд░ (234.2) рдПрдХ рджреВрд╕рд░реЗ рд╕рдореВрд╣ рдореЗрдВ рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдХреА рд╢реЗрд╖ рд╕рдВрдЦреНрдпрд╛ рдХреЛ рдШрдЯрд╛рддреЗ рд╣реБрдП рдПрдХ рджреВрд╕рд░реЗ рд╕рдореВрд╣ рдореЗрдВ рдЕрдВрддрд░ рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдХреЛ рдЕрд▓рдЧ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж (1?)ред рдЕрд░реНрдерд╛рддреН 2-1 = 1. рд╣рдореЗрдВ рдорд┐рд▓рддрд╛ рд╣реИ (23.1)
    3. рдпрджрд┐ рдирдП рд╕рдореВрд╣ (23.1) рдореЗрдВ рдЦрд╛рдиреЛрдВ рдХреА рдЧрдгрдирд╛ рдХреА рдЧрдИ рд╕рдВрдЦреНрдпрд╛ рдХрдо рдЦрд╛рдиреЛрдВ (123.1) рдХреЗ рд╕рд╛рде рд╕рдореВрд╣ рдореЗрдВ рдЦрд╛рдиреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЗ рдмрд░рд╛рдмрд░ рдирд╣реАрдВ рд╣реИ, рддреЛ рд╣рдо рд░реВрдкрд╛рдВрддрд░рдг рд░реЛрдХ рджреЗрддреЗ рд╣реИрдВ
    4. рджреЛрдиреЛрдВ рдЕрдиреНрддрд░реНрд╡рд┐рднрд╛рдЬрдХ рд╕рдореВрд╣реЛрдВ рд╕реЗ рдирд╡рдЧрдард┐рдд рд╕рдореВрд╣ рдХреЛ рдШрдЯрд╛рдПрдБред (123.1) - (23.1) = (1.0), (234.2) - (23.1) = (4.1)ред
    5. рдирд╡рдЧрдард┐рдд рд╕рдореВрд╣ рдХреЛ рд╕рдореВрд╣реЛрдВ рдХреА рд╕реВрдЪреА рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ
    рдЗрд╕ рдкреНрд░рдХрд╛рд░, (234.2) рдФрд░ (123.1) тЖТ (1.0) рдФрд░ (23.1) рдФрд░ (4.1)ред
  5. рдЪрд░рдг 1 рд╕реЗ рджреЛрд╣рд░рд╛рдПрдБ рдЬрдм рддрдХ рдХреЛрдИ рдкрд░рд┐рд╡рд░реНрддрди рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рд╕рдореВрд╣ рдмрдирд╛рдиреЗ рдФрд░ рдмрджрд▓рдиреЗ рдХреА рд╡рд┐рдзрд┐
/** *    ,     ,       ,  . */ private void setGroups() { groups.clear(); for (int x = 0; x < width; x++) for (int y = 0; y < height; y++) field[x][y].setGroup(groups); //   boolean repeat; do{ repeat=false; for (int i = 0; i < groups.size() - 1; i++) { //     Group groupI = groups.get(i); for (int j = i + 1; j < groups.size(); j++) { //       Group groupJ=groups.get(j); if (groupI.equals(groupJ)) //    {groups.remove(j--);break;} Group parent; //   Group child; //   if (groupI.size()>groupJ.size()) //       -  {parent=groupI;child=groupJ;} else {child=groupI;parent=groupJ;} if (parent.contains(child)) { //     parent.subtraction(child); //      repeat=true; //     } else if (groupI.overlaps(groupJ) > 0) { //     if (groupI.getMines()>groupJ.getMines())//       -  {parent=groupI;child=groupJ;} else {child=groupI;parent=groupJ;} Group overlap = parent.getOverlap(child);//     if (overlap != null) { //      (      0%  100%) groups.add(overlap); //       parent.subtraction(overlap); child.subtraction(overlap); repeat=true; } } } } } while(repeat); } 

рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рд╣рдореЗрдВ рддреАрди рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рдореВрд╣ рдорд┐рд▓рддреЗ рд╣реИрдВредрддрджрдиреБрд╕рд╛рд░, рдкрд╣рд▓реЗ рд╕рдореВрд╣ рд╕реЗ рд╕рднреА рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдХреЛ рд╕реБрд░рдХреНрд╖рд┐рдд рд░реВрдк рд╕реЗ рдЦреЛрд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рджреВрд╕рд░реЗ рд╕рдореВрд╣ рд╕реЗ рдЪрд┐рд╣реНрдирд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ рдореБрдЦреНрдп рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХрд╛ рд╕рд╛рд░ рд╣реИред

рдЕрдЧрд░ рдХреЛрдИ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рдЙрдкрд╛рдп рдирд╣реАрдВ рд╣реИ

рд▓реЗрдХрд┐рди рдЕрдХреНрд╕рд░ рдРрд╕реА рдкрд░рд┐рд╕реНрдерд┐рддрд┐рдпрд╛рдВ рд╣реЛрддреА рд╣реИрдВ рдЬрдм рд╕реНрдерд┐рддрд┐ рдХрд╛ рдХреЛрдИ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред рдлрд┐рд░ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдмрдЪрд╛рд╡ рдХреЗ рд▓рд┐рдП рдЖрддрд╛ рд╣реИред рдЗрд╕рдХрд╛ рд╕рд╛рд░ рд╕рдВрднрд╛рд╡рдирд╛ рд╕рд┐рджреНрдзрд╛рдВрдд рдХрд╛ рдЙрдкрдпреЛрдЧ рд╣реИред рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рджреЛ рдЪрд░рдгреЛрдВ рдореЗрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ:
  1. рд╡реНрдпрдХреНрддрд┐рдЧрдд рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдореЗрдВ рдкреНрд░рд╛рдпрд┐рдХрддрд╛ рдХреА рдкрд░рд┐рднрд╛рд╖рд╛, рдХрдИ рдЦреБрд▓реА рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдХреЗ рдкреНрд░рднрд╛рд╡ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрддреЗ рд╣реБрдП
  2. рд╕рдВрднрд╛рд╡рдирд╛ рд╕рдорд╛рдпреЛрдЬрди, рдПрдХ рджреВрд╕рд░реЗ рдкрд░ рдЖрдо рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдХреЗ рд╕рд╛рде рд╕рдореВрд╣реЛрдВ рдХреЗ рдкрд╛рд░рд╕реНрдкрд░рд┐рдХ рдкреНрд░рднрд╛рд╡ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрддреЗ рд╣реБрдП
рдЖрдЗрдП рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ рдХрд┐ рдпрд╣ рд╡рд┐рдзрд┐ рдЙрд╕ рд╕реНрдерд┐рддрд┐ рдХреЗ рдЙрджрд╛рд╣рд░рдг рдкрд░ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддреА рд╣реИ рдЬрдм рдХреЗрд╡рд▓ 4 рдФрд░ 2 рд╡рд╛рд▓реЗ рджреЛ рдкрдбрд╝реЛрд╕реА рдХреЛрд╢рд┐рдХрд╛рдПрдБ рдЦреБрд▓реА рд╣реЛрдВред рдХреЛрд╢рд┐рдХрд╛рдУрдВ 4 рдФрд░ 2 рд╕реЗ рдЦрд╛рдиреЛрдВ рдХреЛ рдЦреЛрдЬрдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛рдПрдБ рдХреНрд░рдорд╢рдГ 4/7 = 0.57 рдФрд░ 2/7 = 0.28 рд╣реИрдВред


рдХрдИ рдЦреБрд▓реА рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдХреЗ рдмрдЧрд▓ рдореЗрдВ рдПрдХ рд╕реЗрд▓ рдореЗрдВ рдЦрджрд╛рди рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдХреА рдЧрдгрдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдХрд┐рд╕реА рдПрдХ рдШрдЯрдирд╛ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдХреА рдЧрдгрдирд╛ рдХреЗ рд▓рд┐рдП рд╕реВрддреНрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ:
рдИрд╡реЗрдВрдЯ рдП рдХреА рдШрдЯрдирд╛ рдХреА рд╕рдВрднрд╛рд╡рдирд╛, рдП 1 , рдП 2 , ..., рдП рдПрди рдХреЗ рдХрдо рд╕реЗ рдХрдо рдПрдХ рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИ, рдХреБрд▓ рдореЗрдВ рд╕реНрд╡рддрдВрддреНрд░, рдЗрдХрд╛рдИ рдФрд░ рд╡рд┐рдкрд░реАрдд рдШрдЯрдирд╛рдУрдВ рдХреА рд╕рдВрднрд╛рд╡рдирд╛рдУрдВ рдХреА рдЙрддреНрдкрд╛рдж рдХреЗ рдмреАрдЪ рдЕрдВрддрд░ рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИред A = 1- (1-A 1 ) * (1-A 2 ) * .... * (1-A n )
рдЗрд╕ рдлреЙрд░реНрдореВрд▓реЗ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдЖрд╕рдиреНрди рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдореЗрдВ, рдкрд░рд┐рдгрд╛рдо 1- (1-0.57) * (1-0.28) = 0.69 рд╣реИред


рд╣рд╛рд▓рд╛рдВрдХрд┐, рдпрд╣ рдпрд╛рдж рд░рдЦрдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рд╕рдореВрд╣ рдХреЗ рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдореЗрдВ рд╕рдВрднрд╛рд╡рдирд╛рдУрдВ рдХрд╛ рдпреЛрдЧ рд╕рдореВрд╣ рдореЗрдВ рдЦрд╛рдиреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЗ рдмрд░рд╛рдмрд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдЗрд╕рд▓рд┐рдП, рдкреНрд░рддреНрдпреЗрдХ рд╕рдореВрд╣ рдХреЗ рд╕рднреА рдореВрд▓реНрдпреЛрдВ рдХреЛ рдЧреБрдгрд╛ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рддрд╛рдХрд┐ рдЕрдВрдд рдореЗрдВ рдЙрдирдХрд╛ рдХреБрд▓ рдЦрд╛рдиреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЗ рдмрд░рд╛рдмрд░ рд╣реЛред рдпрд╣ рд╕рдВрдЦреНрдпрд╛ рд╕рдореВрд╣ рдХреА рдЦрд╛рдиреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИ рдЬрд┐рд╕реЗ рд╕рдореВрд╣ рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдХреА рд╕рдВрднрд╛рд╡рдирд╛рдУрдВ рдХреА рд╡рд░реНрддрдорд╛рди рд░рд╛рд╢рд┐ рд╕реЗ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:
4 / (0.57 + 0.57 + 0.57 + 0.69 + 0.69 + 0.69 + 0.69) = 0.895
0.57 * 0.895 = 0.485 0.69 * 0.895 = 0.618

рдЕрдм рдЬрд┐рди рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдореЗрдВ 0.57 рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдереА рдЙрдирдореЗрдВ 0.485 рдФрд░ рд╡реЗ 0.69 тЖТ 0.618 рд╣реИрдВ
рджреВрд╕рд░реЗ рд╕рдореВрд╣ рдХреЗ рд▓рд┐рдП рдЗрд╕реА рддрд░рд╣ рдХреА рдЧрдгрдирд╛ рдкрд┐рдЫрд▓реЗ рдПрдХ рд╕реЗ рдЦрд╛рддреЗ рдХреЗ рд╕рдорд╛рдпреЛрдЬрди рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрдХрд░ рдХреА рдЬрд╛рддреА рд╣реИред
2 / (0.28 + 0.28 + 0.28 + 0.618 + 0.618 + 0.618 + 0.618) = 0.604
0.28 * 0.604 = 0.169 0.618 * 0.604 = 0.373

рд╣рдо рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рдЖрдо рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдореЗрдВ рд╕рдВрднрд╛рд╡рдирд╛ рдлрд┐рд░ рд╕реЗ рдмрджрд▓ рдЧрдИ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдкреНрд░рддреНрдпреЗрдХ рд╕рдореВрд╣ рдХреЗ рд▓рд┐рдП рдЗрд╕ рд╕рдорд╛рдпреЛрдЬрди рдХреЛ рдХрдИ рдмрд╛рд░ рджреЛрд╣рд░рд╛рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдЬрдм рддрдХ рдХрд┐ рдкреНрд░рдгрд╛рд▓реА рдХреБрдЫ рд╕реНрдерд┐рд░ рдореВрд▓реНрдпреЛрдВ рдкрд░ рдирд╣реАрдВ рдЖрддреА рд╣реИ, рдЬреЛ рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдореЗрдВ рдЦрд╛рдиреЛрдВ рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдХреА рд╕рд╣реА рд╕рдВрднрд╛рд╡рдирд╛рдПрдВ рд╣реЛрдВрдЧреАред
4 / (0.485 + 0.485 + 0.485 + 0.373 + 0.373 + 0.373 + 0.373) = 1.357
0.485 * 1.357 = 0.658 0.373 * 1.357 = 0.506
2 / (0.169 + 0.169 + 0.169 + 0.506 + 0.506 + 0.506 + 0.506) = 0.79
0.169 * 0.79 = 0.134 0.506 * 0.79 = 0.4

... рдЖрджрд┐ред


рдпрд╣ рдХреЗрд╡рд▓ рдЙрди рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХрд╛ рдЪрдпрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд░рд╣рддрд╛ рд╣реИ рдЬрд┐рдирдореЗрдВ рдиреНрдпреВрдирддрдо рд╕рдВрднрд╛рд╡рдирд╛ рд╣реЛрддреА рд╣реИ рдФрд░ рдПрдХ рдЪрд╛рд▓ рд╣реЛрддреА рд╣реИред
рдХреЛрдб рдореЗрдВ рдпрд╣ рд╡рд┐рдзрд┐
 /** *          ,          */ private void correctPosibilities(){ Map<Cell,Double>cells= new HashMap<>(); //        ,          for (Group group : groups){ for (Cell cell: group.getList()){ Double value; if ((value=cells.get(cell))==null) //       cells.put(cell,(double) group.getMines()/ group.size()); //        else //    ,        cells.put(cell,Prob.sum(value,(double) group.getMines()/ group.size())); } } //      ,             boolean repeat; do{ repeat=false; for (Group group : groups){ //    List<Double> prob= group.getProbabilities(); //          Double sum=0.0; for (Double elem:prob)sum+=elem; //    int mines= group.getMines()*100; //        (- ) if (Math.abs(sum-mines)>1){ //     ,    repeat=true; //    Prob.correct(prob,mines); //   for (int i=0;i< group.size();i++){ //        double value= prob.get(i); group.getList().get(i).setPossibility(value); } } } } while (repeat); for (Cell cell:cells.keySet()){ //  if (cell.getPossibility()>99)cell.setPossibility(99); if (cell.getPossibility()<0)cell.setPossibility(0); } } 


рдЕрдВрддрд┐рдо рдЪрд╛рд▓

рдЦреЗрд▓ рдХреЗ рдЕрдВрддрд┐рдо рдЪрд░рдг рдореЗрдВ, рдЕрдирдорд╛рд░реНрдХ рдХрд┐рдП рдЧрдП рдЦрд╛рдиреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдПрдХ рдмрдбрд╝реА рднреВрдорд┐рдХрд╛ рдирд┐рднрд╛рддреА рд╣реИред рдЗрд╕ рд░рд╛рд╢рд┐ рдХреЛ рдЬрд╛рдирддреЗ рд╣реБрдП, рдЖрдк рдЙрдирдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЕрдЬреНрдЮрд╛рдд рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдореЗрдВ рдЦреЛрдЬ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдЙрдкрдпреБрдХреНрдд рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЛ рдЪрд┐рд╣реНрдирд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдкреНрд░рддреНрдпреЗрдХ рд╕реЗрд▓ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рд╡рд┐рдХрд▓реНрдк рдЦреЛрдЬрдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ, рд╣рдо рдЕрдВрдХреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рддреЗ рд╣реИрдВред рдкрд░рд┐рдгрд╛рдореА рдорд╛рдиреЛрдВ рдХреЛ рдЕрдВрдХреЛрдВ рдХреА рдХреБрд▓ рд╕рдВрдЦреНрдпрд╛ рд╕реЗ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рдиреЗ рдкрд░ рд╣рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рд╕реЗрд▓ рдХреЗ рд▓рд┐рдП рдЦрд╛рдиреЛрдВ рдХреЛ рдЦреЛрдЬрдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдорд┐рд▓рддреА рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдРрд╕рд╛ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ, рдХреЗрд╡рд▓ рдПрдХ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд╕рдорд╛рдзрд╛рди рд╣реИ, рдЕрдВрддрд┐рдо рд╡рд┐рдзрд┐ (рд▓рд╛рд╕реНрдЯрдЯрд░реНрди) рдореЗрдВ рдПрдХ рдЦрджрд╛рди рдХреЛ рдЦреЛрдЬрдиреЗ рдХреА 0% рд╕рдВрднрд╛рд╡рдирд╛ рдХреЗ рд╕рд╛рде 3 рд╕реЗрд▓ рдкрд╛рдП рдЧрдПред


LastTurns (9,21) рдиреЗ 293,930 рдореЗрдВ рд╕реЗ 144 рдЙрдкрдпреБрдХреНрдд рд╕рдВрдпреЛрдЬрдиреЛрдВ рдХреА рдЬрд╛рдБрдЪ рдХреА рдФрд░ 0% рдХреА рдиреНрдпреВрдирддрдо рд╕рдВрднрд╛рд╡рдирд╛ рдХреЗ рд╕рд╛рде 3 рдХреЛрд╢рд┐рдХрд╛рдПрдВ рдкрд╛рдИрдВ

рд╡рд┐рдЪрд╛рд░ рдХреЛ рд╕рдордЭрдиреЗ рдХреА рдЬрдЯрд┐рд▓рддрд╛ рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ, рдпрд╣ рд╡рд┐рдзрд┐ рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЕрднреА рддрдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдЗрд╕рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдирд╣реАрдВ рдХрд░реВрдВрдЧрд╛ред
рдЗрд╕рдХрд╛ рдХреНрд░рд┐рдпрд╛рдиреНрд╡рдпрди
 /** *      .          30 * @return */ public ArrayList<Point> getLastTurns() { int minesLeft = countMinesLeft(); //     ArrayList<Cell> unknownCells = getUnknownCells(); //    int notOpened = unknownCells.size(); //    Integer[] combinations = new Sequence6().getSequensed(minesLeft, notOpened); //            ArrayList<String> list = new ArrayList<String>(); //    for (int i = 0; i < combinations.length; i++) { //                 String combination = Integer.toBinaryString(combinations[i]); //      ,     if (combination.length() < notOpened) { //    "0"    ,        String prefix = ""; for (int k = combination.length(); k < notOpened; k++) prefix += "0"; combination = prefix + combination; } for (int j = 0; j < notOpened; j++) { //      if (combination.charAt(j) == '1') unknownCells.get(j).setMine(); if (combination.charAt(j) == '0') unknownCells.get(j).setUnknown(); } if (test()) list.add(combination); //         ,       } clear(unknownCells); //       String[] comb = new String[list.size()]; list.toArray(comb); //    ,      int[] possibilities2 = new int[notOpened]; //     ,   ,        for (int i = 0; i < comb.length; i++) //    possibilities2[] for (int j = 0; j < notOpened; j++) if (comb[i].charAt(j) == '1') possibilities2[j]++; //        ,       1 int min = Integer.MAX_VALUE; ArrayList<Integer> minIndices = new ArrayList<>(); //       possibilities2[] for (int i = 0; i < possibilities2.length; i++) { if (possibilities2[i] == min) minIndices.add(i); if (possibilities2[i] < min) { min = possibilities2[i]; minIndices.clear(); minIndices.add(i); } unknownCells.get(i).setPossibility(100*possibilities2[i]/comb.length); //        } double minPossibility = 100.0 * possibilities2[minIndices.get(0)] / comb.length; System.out.println("LastTurns(" + minesLeft + "," + notOpened + ")  " + comb.length + "    " + combinations.length + "    " + minIndices.size() + " " + "    " + (int) minPossibility + " %"); ArrayList<Point> result = new ArrayList<Point>(minIndices.size());//       for (int index : minIndices) { result.add(unknownCells.get(index).getPoint()); } return result; } 


рдирд┐рд╖реНрдХрд░реНрд╖

рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ, рдкрд░реНрдпрд╛рдкреНрдд рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдирдореВрдиреЛрдВ рдХреЗ рд╕рд╛рде, рд╕реЗрд▓ рдореЗрдВ рдПрдХ рдЦрджрд╛рди рдХреА рд╕рдВрднрд╛рд╡рдирд╛рдУрдВ рдХреА рдЧрдгрдирд╛ рдФрд░ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдореВрд▓реНрдп рд▓рдЧрднрдЧ рдореЗрд▓ рдЦрд╛рддреЗ рд╣реИрдВред рдирд┐рдореНрди рддрд╛рд▓рд┐рдХрд╛ рдПрдХ рд░рд╛рдд рдХреЗ рд▓рд┐рдП рд╡рд┐рдВрдбреЛрдЬ XP рдХреЗ рддрд╣рдд "рдорд╛рдЗрдирд╕реНрд╡реАрдкрд░" рдкрд░ рдмреЙрдЯ рдХреЗ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЛ рджрд┐рдЦрд╛рддреА рд╣реИ, рдЬрд╣рд╛рдВ
  1. рдкрд░рд┐рдХрд▓рд┐рдд%
  2. рдЧрдгрдирд╛ рдХреА рдЧрдИ% рдХреЗ рд╕рд╛рде рд╕реЗрд▓ рдЦреБрд▓рдиреЗ рдХреА рдХреБрд▓ рд╕рдВрдЦреНрдпрд╛
  3. рдкреНрд░рддрд┐ рдЦрджрд╛рдиреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛
  4. рд╡рд╛рд╕реНрддрд╡рд┐рдХ%


1ред12345678910111213141516171819202122232425
2ред31551171313042913033395074354791201152146118143164141367396814563472692
3ред1496201927295643601471525142033266535014512423
4ред3774668811912129171113201817897251525

1ред26272829303132333435363738394041424344454647484950
2ред18102418911613582421316221462
3ред1923321431010014110210
4ред537113033181631120250033255050045

20-22% рдХреЗ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдПрдХ рдмрдбрд╝реА рд╡рд┐рд╕рдВрдЧрддрд┐ рд╢рд╛рдпрдж рдЗрд╕ рддрдереНрдп рдХреЗ рдХрд╛рд░рдг рд╣реИ рдХрд┐ рдЕрдХреНрд╕рд░ рдЗрд╕ рдкреНрд░рддрд┐рд╢рдд рдореЗрдВ рдРрд╕реА рдХреЛрд╢рд┐рдХрд╛рдПрдВ рдереАрдВ рдЬреЛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдкрд╛рд╕ рдирд╣реАрдВ рдереАрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЦреЗрд▓ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ), рдФрд░ рдорд╛рдЗрдирд╕реНрд╡реАрдкрд░ рдЦрд┐рд▓рд╛рдбрд╝реА рдХреЗ рд▓рд┐рдП рд╕рдорд╛рдпреЛрдЬрд┐рдд, рдХрднреА-рдХрднреА рдЦреБрд▓реЗ рд╣реБрдП рд╕реЗрд▓ рдХреЗ рддрд╣рдд рдПрдХ рдЦрджрд╛рди рдХреЛ рд╣рдЯрд╛рддреЗ рд╣реБрдПред рдСрдкрд░реЗрд╢рди рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдЬрд╛рд╡рд╛ рдореЗрдВ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдФрд░ рдПрдХ рдорд╛рдирдХ рд╡рд┐рдВрдбреЛрдЬ рд╕реИрдкрд░ (7 рдФрд░ рдПрдХреНрд╕рдкреА), рд╡реАрдХреЗ рдореЗрдВ рдПрдХ рдЖрд╡реЗрджрди рдФрд░ рдПрдХ рдЧреЗрдорд░ рдкрд░ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рд╡реИрд╕реЗ, "рддрдХрдиреАрдХреА рд╕рдорд╕реНрдпрд╛рдУрдВ" рдХреЗ рдХрдИ рджрд┐рдиреЛрдВ рдХреЗ рдмрд╛рдж, рдЬрдм рдореЗрд░реЗ рдЖрдИрдкреА рд╕реЗ рдореЗрд░реЗ рдЦрд╛рддреЗ рддрдХ рдкрд╣реБрдБрдЪрдиреЗ рдХреЗ рд▓рд┐рдП, рдЧреЗрдорд░ рдиреЗ рдХреНрд╖реЗрддреНрд░ рдХреЗ рднрд╛рдЧ рдХреЛ рдЦреЛрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд╛рд░рд┐рд╢реНрд░рдорд┐рдХ рдХреЗ рдирд┐рдпрдореЛрдВ рдХреЛ рдмрджрд▓ рджрд┐рдпрд╛: рд╢реБрд░реВ рдореЗрдВ рдореИрдВрдиреЗ 10% рдмреЛрд▓реА рдЦреБрд▓реЗ рдореИрджрд╛рди рдХреЗ 10%, рдлрд┐рд░ 5%, рдлрд┐рд░ 2%, рдФрд░ рдЬрдм рдореИрдВрдиреЗ рд╡рд╛рдкрд╕ рд▓реА рдЦреЗрд▓рдирд╛ рдмрдВрдж рдХрд░ рджрд┐рдпрд╛, рдлрд┐рд░ 5% рд▓реМрдЯрд╛рдпрд╛ред

Source: https://habr.com/ru/post/In211188/


All Articles