рд╣рд╛рд╕реНрдХреЗрд▓ рдкрд░ рдЖрдЗрдВрд╕реНрдЯреАрди рдХреА рдкрд╣реЗрд▓реА рдХреЛ рд╕реБрд▓рдЭрд╛рдиреЗ

рдкреНрд░рд╕реНрддрд╛рд╡рдирд╛

Albert_Einstein
рдмрд╣реБрдд рд╕рдордп рдкрд╣рд▓реЗ рдореИрдВрдиреЗ рд╣рдмреЗрд░реА рдкрд░ рдПрдХ рд▓реЗрдЦ рдкрдврд╝рд╛ рдерд╛ рдЬрд┐рд╕рдиреЗ рдореБрдЭреЗ рдПрдХ рджрд┐рд▓рдЪрд╕реНрдк рдкрд╣реЗрд▓реА рдХреА рдпрд╛рдж рджрд┐рд▓рд╛рдИ рдереА рдЬрд┐рд╕реЗ " рдЖрдЗрдВрд╕реНрдЯреАрди рдкрд╣реЗрд▓реА " рдпрд╛ "рдЬрд╝реЗрдмрд░рд╛ рдкрд╣реЗрд▓реА" рдХрд╣рд╛ рдЬрд╛рддрд╛ рдерд╛ред рд╕рдВрднрд╡рддрдГ рдЖрдк рдореЗрдВ рд╕реЗ рдмрд╣реБрдд рд╕реЗ рд▓реЛрдЧреЛрдВ рдиреЗ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдХрд╛рдЧрдЬ рдХреЗ рдПрдХ рдЯреБрдХрдбрд╝реЗ рдкрд░ рд╣рд▓ рдХрд┐рдпрд╛ рдФрд░ рдЗрд╕ рдмрд╛рдд рдкрд░ рдЧрд░реНрд╡ рдХрд┐рдпрд╛ рдХрд┐ рд╡реЗ рджреБрдирд┐рдпрд╛ рдХреА рдЖрдмрд╛рджреА рдХрд╛ рдХреБрдЫ рдкреНрд░рддрд┐рд╢рдд рд╕рдХреНрд╖рдо рд╣реИрдВред

рд▓реЗрдЦ рдкрдврд╝рдиреЗ рдХреЗ рдмрд╛рдж, рдореИрдВрдиреЗ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЗ рд╕рдорд╛рдзрд╛рди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрд╛ред рд▓реЗрдЦ рдореЗрдВ рдкреНрд░рд╕реНрддреБрдд рджреГрд╖реНрдЯрд┐рдХреЛрдг рджрд┐рд▓рдЪрд╕реНрдк рдерд╛ рдФрд░ рдмреНрд▓реЙрдЧ рдХреЗ рдирд╛рдо рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рд╣реА рдард╣рд░рд╛рдпрд╛, рд▓реЗрдХрд┐рди рдпрд╣ рдореБрдЭреЗ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд▓рдЧ рд░рд╣рд╛ рдерд╛ред рдлрд┐рд▓рд╣рд╛рд▓, рдореБрдЭреЗ рд╣рд╛рд╕реНрдХреЗрд▓ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ рдореЗрдВ рджрд┐рд▓рдЪрд╕реНрдкреА рд╣реИ, рдЬреЛ рдорд╕реНрддрд┐рд╖реНрдХ рдХреЛ рдЧрд░реНрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рдЖрдк рдореЗрдВ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЙрдкрдпреБрдХреНрдд рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕ рдкрд░ рдкрд╣реЗрд▓реА рдХреЛ рд╣рд▓ рдХрд░рдирд╛ рдореЗрд░реЗ рд▓рд┐рдП рдПрдХ рдмрдбрд╝реА рдЪреБрдиреМрддреА рдереАред


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

рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдХрд╛рд░реНрдп рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:
рд╕рднреА рд╡рд╕реНрддреБрдУрдВ (рдпрд╛ рдЙрдирдореЗрдВ рд╕реЗ рдХреБрдЫ, рдЬреЛ рдПрдХ рдФрд░ рдЕрдиреНрдп рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдПрдХ рд╣реА рд╣реИ) рдХреЗ рд╡рд┐рд╢реЗрд╖рддрд╛ рдореВрд▓реНрдпреЛрдВ рдХреЛ рдкреБрдирд░реНрд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ, рдЬреЛ рдкреНрд░рддрд┐рдмрдВрдзреЛрдВ рдХрд╛ рдЦрдВрдбрди рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред

рдкрд╣рд▓реЗ рд╕реЛрдЪрд╛ рдерд╛ рдХрд┐ рдХрд╛рд░реНрдпреЛрдВ рдХреА рд╢рд░реНрддреЛрдВ рдХреА рдкреВрд░реНрддрд┐ рдХреА рдЬрд╛рдБрдЪ рдХреЗ рд╕рд╛рде рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреА рдПрдХ рдкреВрд░реА рдЧрдгрдирд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╕рд░рд▓ рдЧрдгрдирд╛ рджрд░реНрд╢рд╛рддреА рд╣реИ рдХрд┐ рд╕рдВрдпреЛрдЬрдиреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдмрд░рд╛рдмрд░ рд╣реИ
5! 5 = 24.883.200.000 5! 5 = 24.883.200.000 , рдЬреЛ рдХрд╛рдлреА рд╣реИред

рдХреБрдЫ рд╡рд┐рдЪрд╛рд░реЛрдВ рдХреЗ рдХреНрд░рдо рдореЗрдВ, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рдЬрдиреНрдо рд╣реБрдЖ: рд╕рдорд╛рдзрд╛рдиреЛрдВ рдХрд╛ рдПрдХ рд╕реНрд╡реАрдХрд╛рд░реНрдп рд╕реНрдерд╛рди рд╣реИ, рдмрд╛рдзрд╛рдПрдВ рд╕рдорд╛рдзрд╛рдиреЛрдВ рдХреЗ рд╕рдмрд╕реЗрдЯ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддреА рд╣реИрдВ, рд╕рд╣реА рд╕рдорд╛рдзрд╛рди рдРрд╕реЗ рд╕рдмрд╕реЗрдЯ рдХреЗ рдЪреМрд░рд╛рд╣реЗ рдкрд░ рдЭреВрда рдмреЛрд▓рддреЗ рд╣реИрдВ (рдпрд╛рдиреА, рдЙрд╕ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдЬрд╣рд╛рдВ рд╕рднреА рд╕реНрдерд┐рддрд┐рдпрд╛рдВ рд╕рдВрддреБрд╖реНрдЯ рд╣реИрдВ)ред

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

рдирд┐рд░реНрдгрдп

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

рдЗрд╕рд▓рд┐рдП, рдореИрдВрдиреЗ рдЕрдкреНрд░рд╢рд┐рдХреНрд╖рд┐рдд рд▓реЛрдЧреЛрдВ рджреНрд╡рд╛рд░рд╛ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЛ рдкрдврд╝рдиреЗ рдореЗрдВ рд╣рд╕реНрддрдХреНрд╖реЗрдк рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рджреГрд╖реНрдЯрд┐рдХреЛрдгреЛрдВ рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЛ рдХрдо рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреАред рд╕рдорд╛рдзрд╛рди рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рд╛рд░реНрд╡рднреМрдорд┐рдХ рд╣реЛрдиреЗ рдХрд╛ рджрд╛рд╡рд╛ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐, рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЗ рдЗрд╕ рд╡рд░реНрдЧ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдЙрдкрдХрд░рдгреЛрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЕрдкрдиреЗ рд▓рд┐рдП рдкрдврд╝реЗрдВ - рдореИрдВрдиреЗ рдЖрдкрдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рд╕рд╛рд░реА рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ рдЫреЛрдбрд╝ рджреА рд╣реИрдВред
рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдЖрдкрдХреА рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдкрд░ рднреА рдЦреБрд╢реА рд╣реЛрдЧреАред
  1. рдЖрдпрд╛рдд рдбреЗрдЯрд╛ ред рд╕реВрдЪреА ( рд▓реБрдХрдЕрдк , рдирдм)
  2. рдЖрдпрд╛рдд рдбреЗрдЯрд╛ ред рд╣реЛ рд╕рдХрддрд╛ рд╣реИ (рдореЗрдореНрдмреЗ , рдХреИрдЯрдорд╛рдпрдм рд╕реЗ)
  3. -----------------------------------------------
  4. - рдЖрдЗрдВрд╕реНрдЯреАрди рдХрд╛ рд░рд╣рд╕реНрдп -
  5. - рдЕрддрд╛рдореБрд░ рджреНрд╡рд╛рд░рд╛ -
  6. -----------------------------------------------
  7. ---------------------------
  8. - рдХрд╛рд░реНрдп рдХрд╛ рд╕рд╛рдорд╛рдиреНрдп рд╡рд┐рд╡рд░рдг -
  9. ---------------------------
  10. - рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдорд╛рдзрд╛рди рд╡рд╕реНрддреБрдУрдВ рдХрд╛ рдПрдХ рдХреНрд░рдо рд╣реИ
  11. рдкреНрд░рдХрд╛рд░ рд╕рдорд╛рдзрд╛рди = [рд╡рд╕реНрддреБ]
  12. - рдкреНрд░рддреНрдпреЗрдХ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рд╡рд┐рд╢реЗрд╖рддрд╛ рдЬреЛрдбрд╝реЗ рдФрд░ рдЙрдирдХреЗ рдореВрд▓реНрдпреЛрдВ рдХреЗ рдПрдХ рд╕реЗрдЯ рджреНрд╡рд╛рд░рд╛ рд╡рд░реНрдгрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ
  13. рдкреНрд░рдХрд╛рд░ рд╡рд╕реНрддреБ = [( рд╕реНрдЯреНрд░рд┐рдВрдЧ , рд╕реНрдЯреНрд░рд┐рдВрдЧ )]
  14. - рдЧреБрдг-рдорд╛рди рдЬреЛрдбрд╝реА рдХрд╛ рд╕рдВрдХреЗрдд = рдЪрд┐рдиреНрд╣ рдХреЗ рд╕рд╛рде:
  15. Attr = : value = (attr , value)
  16. рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдБ = [ "рд░рд╛рд╖реНрдЯреНрд░реАрдпрддрд╛" , "рдШрд░" , "рдкрд╛рд▓рддреВ" , "рдкреЗрдп" , "рдзреБрдЖрдВ" ]
  17. рдЖрдХрд╛рд░ = 5
  18. - рд╣рдо рдХреБрдЫ рдХреЛ рд╕рдВрддреЛрд╖рдЬрдирдХ рд╕рдорд╛рдзрд╛рди рдЦреЛрдЬрдиреЗ рдХреА рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░реЗрдВрдЧреЗ
  19. - рдкреНрд░рддрд┐рдмрдВрдз
  20. - рд╣рдо рдЗрд╕реЗ рд╕рднреА рдирд┐рд░реНрдгрдпреЛрдВ рдХреЗ рд╕реЗрдЯ рд╕реЗ рд╢реБрд░реВ рдХрд░реЗрдВрдЧреЗ рдФрд░ рдзреАрд░реЗ-рдзреАрд░реЗ рд╕реНрдкрд╖реНрдЯ рдХрд░реЗрдВрдЧреЗ
  21. рдпрд╣ рдПрдХ рд╕рдорд╛рдзрд╛рди рддрдХ рдХрдо рд╣реЛрдиреЗ рддрдХ рдПрдХ рд╕реЗрдЯ рд╣реИ, рдЬреЛ рд╣реЛрдЧрд╛
  22. - рд╕рдЪред
  23. - рдЗрд╕рд▓рд┐рдП, рдПрдХ рд╡рд╕реНрддреБ рддреБрд░рдВрдд рдХрдИ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╡рд╕реНрддреБрдУрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд░ рд╕рдХрддреА рд╣реИ,
  24. - рдЬрд┐рд╕рдореЗрдВ рдХреБрдЫ рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдБ рд╕реЗрдЯ рд╣реИрдВ, рдФрд░ рдмрд╛рдХреА (рд╕реЗрдЯ рдирд╣реАрдВ)
  25. - рдХреЛрдИ рднреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдПрдХ рдЦрд╛рд▓реА рд╡рд╕реНрддреБ рд╕рднреА рд╕рдВрднрд╡ рдХрд╛ рдПрдХ рдЯреЗрдореНрдкрд▓реЗрдЯ рд╣реИ
  26. - рд╡рд╕реНрддреБрдПрдВ:
  27. anyObject = [] :: рдСрдмреНрдЬреЗрдХреНрдЯ
  28. - рдФрд░ рдЦрд╛рд▓реА рд╡рд╕реНрддреБрдУрдВ рдХрд╛ рд╕реЗрдЯ рджрд┐рдП рдЧрдП рдХреЗ рд╕рд╛рдордиреЗ рд╕рднреА рдирд┐рд░реНрдгрдпреЛрдВ рдХрд╛ рд╕реЗрдЯ рд╣реИ
  29. - рдЖрдпрд╛рдо:
  30. anySolution = [anyObject | рдПрди n [1 .. рдЖрдХрд╛рд░]]
  31. - рдкреНрд░рддреНрдпреЗрдХ рд╕рдорд╛рдзрд╛рди, рд╕рдорд╛рдзрд╛рди рдХреЗ рд╕рдВрдЧрдд рд╕реЗрдЯ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рд╕рдорд╛рдзрд╛рди
  32. - [["рд░рд╛рд╖реНрдЯреНрд░реАрдпрддрд╛" =: "рдЕрдВрдЧреНрд░реЗрдЬ"], anyObject, anyObject]
  33. - рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд╕рднреА рддреНрд░рд┐рднреБрдЬреЛрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рдирдореЗрдВ рд╕реЗ рдкрд╣рд▓реА рдореЗрдВ рдПрдХ рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реИ
  34. - "рд░рд╛рд╖реНрдЯреНрд░реАрдпрддрд╛ рдЕрдВрдЧреНрд░реЗрдЬреА рд╣реИ"
  35. - рд▓реЗрдХрд┐рди рдлреИрд╕рд▓реЛрдВ рдХреЛ рд╕реНрдкрд╖реНрдЯ рдХрд░рдиреЗ рдореЗрдВ рд╣рдореЗрдВ рдХрдИ рдЕрд╕рдВрдЧрдд рд╣реЛрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ
  36. - рдирд┐рд░реНрдгрдп (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, "рдЕрдВрдЧреНрд░реЗрдЬ рдпрд╛ рдкрд╣рд▓реЗ рдпрд╛ рджреВрд╕рд░реЗ рд▓реЗрдХрд┐рди рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рдирд╣реАрдВ"):
  37. рдкреНрд░рдХрд╛рд░ рд╕рдорд╛рдзрд╛рди = [рд╕рдорд╛рдзрд╛рди]
  38. рдЦрд╛рд▓реА = [] :: рд╕рдорд╛рдзрд╛рди
  39. - рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рд╕рдорд╛рдзрд╛рди рдкрд░ рдкреНрд░рддрд┐рдмрдВрдз рд▓рдЧрд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ
  40. - рдкреНрд░рддреНрдпреЗрдХ рдмрд╛рдзрд╛ рдХрдИ рдирд┐рд░реНрдгрдпреЛрдВ рдХреЛ рдмрджрд▓ рджреЗрдЧреА
  41. - рдкрд░рд┐рдгрд╛рдо рдХрдИ рдЕрд╕рдВрдмрдВрдзрд┐рдд рд╕реЗрдЯ рдпрд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ
  42. - рдлреИрд╕рд▓реЛрдВ рдХрд╛ рдЦрд╛рд▓реА рд╕реЗрдЯ
  43. рдкреНрд░рдХрд╛рд░ рдкреНрд░рддрд┐рдмрдВрдз = рд╕рдорд╛рдзрд╛рди тЖТ рд╕рдорд╛рдзрд╛рди
  44. - рдХрдИ рдлреИрд╕рд▓реЛрдВ рдкрд░ рдкреНрд░рддрд┐рдмрдВрдз рд▓рдЧрд╛рдирд╛
  45. - рдХрдИ рд╕рдорд╛рдзрд╛рдиреЛрдВ рдХреЛ рдмрджрд▓рддреЗ рд╕рдордп, рд╣рдо рдЬрд╛рдВрдЪ рдХрд░реЗрдВрдЧреЗ
  46. - рдЧреБрдг рдорд╛рдиреЛрдВ рдХреА рд╡рд┐рд╢рд┐рд╖реНрдЯрддрд╛:
  47. рд▓рд╛рдЧреВ рдХрд░реЗрдВ :: рдкреНрд░рддрд┐рдмрдВрдз тЖТ рд╕рдорд╛рдзрд╛рди тЖТ рд╕рдорд╛рдзрд╛рди
  48. рдкреНрд░рддрд┐рдмрдВрдзрд┐рдд рд╕реЙрд▓ рд▓рд╛рдЧреВ рдХрд░реЗрдВ =
  49. concat [ рдлрд╝рд┐рд▓реНрдЯрд░ (рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рдирд╣реАрдВ ) (рдкреНрд░рддрд┐рдмрдВрдзрд┐рдд рд╕рдорд╛рдзрд╛рди) | рд╕рдорд╛рдзрд╛рди solution рддрд▓]
  50. рдЬрд╣рд╛рдБ
  51. рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рд╕реЛрд▓реНрд╕ = рдХреЛрдИ рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рд╡реИрд▓реНрдпреВрдЬрд╝ ( рдирдХреНрд╢рд╛ (рд╡реИрд▓реНрдпреВ рд╕реЛрд▓) рдПрдЯреНрд░рд┐рдмреНрдпреВрдЯреНрд╕)
  52. рдорд╛рди рдПрд╕рдПрд▓рдЖрд░ рдЕрдЯрд░ = рдорд╛рдирдЪрд┐рддреНрд░ (рд▓реБрдХрд┐рдВрдЧ рдПрдЯрд░) рд╕реЛрд▓
  53. рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рд╡реИрд▓реНрдпреВрдЬрд╝ ' =
  54. рдорд╛рди рджреЗрдВ
  55. рдореЗрдВ (рд╡реИрд▓реНрд╕ val рдиреВрдм рд╡реИрд▓реНрд╕)
  56. - рд╡рд╕реНрддреБрдУрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рджреЛ рдкреИрдЯрд░реНрди рдХрд╛ рдкреНрд░рддрд┐рдЪреНрдЫреЗрджрди
  57. - рджреЛрдиреЛрдВ рд╕реНрд░реЛрдд рдЯреЗрдореНрдкрд▓реЗрдЯреНрд╕ рд╕реЗ рд╡рд┐рд╢реЗрд╖рддрд╛ рд╡рд╛рд▓реЗ рдПрдХ рдЯреЗрдореНрдкрд▓реЗрдЯ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ,
  58. - рдФрд░ рд╕реНрд░реЛрдд рдЯреЗрдореНрдкрд▓реЗрдЯ рдЕрд▓рдЧ рд╣реЛрдиреЗ рдкрд░ рдЕрд╕рдВрдЧрдд рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ
  59. - рд╕рдорд╛рди рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рдореВрд▓реНрдп
  60. рджреЛрдиреЛрдВ :: рд╡рд╕реНрддреБ тЖТ рд╡рд╕реНрддреБ тЖТ рд╢рд╛рдпрдж рд╡рд╕реНрддреБ
  61. obj obj ' = foldl join (Just []) рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдБ - рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рд╕рдореНрдорд┐рд▓рд┐рдд рд╣реЛрдВ
  62. рдЬрд╣рд╛рдБ
  63. - рдпрджрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХ рдЦрд╛рд▓реА рд╕реЗрдЯ рд╣реИ, рддреЛ рдкрд░рд┐рдгрд╛рдо рднреА рдЦрд╛рд▓реА рд╣реИ
  64. Join Nothing = _ рдХреБрдЫ рдирд╣реАрдВ
  65. - рдЕрдиреНрдпрдерд╛ рд╣рдо рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рджреНрд╡рд╛рд░рд╛ рдмрд╛рдзрд╛рдУрдВ рдХреЗ рдореВрд▓реНрдпреЛрдВ рдХреА рддреБрд▓рдирд╛ рдХрд░рддреЗ рд╣реИрдВ
  66. join (рдмрд╕ рдмрд╛рдХреА) attr =
  67. рдорд╛рдорд▓рд╛ ( рд▓реБрдХрдЕрдк рдЕрдЯрд░ рдУрдЬ , рд▓реБрдХрд┐рдВрдЧ рдЕрдЯрд░ рдУрдмреНрдЬ тАЩ)
  68. (рдХреБрдЫ рдирд╣реАрдВ , рдХреБрдЫ рдирд╣реАрдВ) тЖТ рдмрд╕ рдЖрд░рд╛рдо рдХрд░реЛ
  69. (рдмрд╕ рдореВрд▓реНрдп , рдХреБрдЫ рдирд╣реАрдВ) тЖТ рдмрд╕ ((Attr = : value): рдмрд╛рдХреА)
  70. (рдХреБрдЫ рдирд╣реАрдВ , рдмрд╕ рдореВрд▓реНрдп) тЖТ рдмрд╕ ((Attr = : value): рдмрд╛рдХреА)
  71. (рдмрд╕ рдореВрд▓реНрдп , рдЬрд╕реНрдЯ рд╡реИрд▓реНрдпреВ тАЩ) тЖТ
  72. рдпрджрд┐ рдорд╛рди == рдорд╛рди '
  73. рддрдм рдмрд╕ ((attr = : value): рдмрд╛рдХреА)
  74. рдФрд░ рдХреБрдЫ рдирд╣реАрдВ
  75. - рдмреБрдирд┐рдпрд╛рджреА рдкреНрд░рддрд┐рдмрдВрдз - рдХрд┐рд╕реА рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд╡рд╕реНрддреБ рдХреЗ рд╕рд╛рде рдореЗрд▓ рдЦрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП
  76. - рдкреВрд░реНрд╡ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдЯреЗрдореНрдкрд▓реЗрдЯ
  77. objectAt :: Int тЖТ рдСрдмреНрдЬреЗрдХреНрдЯ тЖТ рдкреНрд░рддрд┐рдмрдВрдз
  78. objectAt n obj solution =
  79. рдорд╛рдорд▓рд╛ рджреЛрдиреЛрдВ obj (рд╕рдорд╛рдзрд╛рди !! (n - 1))
  80. рдХреБрдЫ рднреА рдирд╣реАрдВ тЖТ рдЦрд╛рд▓реА - рдпрджрд┐ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╡рд╣рд╛рдВ рдЦрдбрд╝реЗ рдХреЗ рд╕рд╛рде рд╕рдВрдЧрдд рдирд╣реАрдВ рд╣реИ
  81. рдмрд╕ Res тЖТ [рдмрджрд▓реЗрдВ n Res рд╕рдорд╛рдзрд╛рди]
  82. рдЬрд╣рд╛рдБ
  83. nx xs рдХреЛ рдмрджрд▓реЗрдВ = take (n - 1) xs ++ [x] ++ рдбреНрд░реЙрдк n xs
  84. - рдкреНрд░рддрд┐рдмрдВрдзреЛрдВ рдкрд░ рд╕рдВрдЪрд╛рд▓рди ---------------------------------------------
  85. - рдкреНрд░рддрд┐рдЪреНрдЫреЗрджрди - рджреЛрдиреЛрдВ рдкреНрд░рддрд┐рдмрдВрдз рд╕рддреНрдп рд╣реИрдВ
  86. ( < & > ) rs rs 'рд╕рдорд╛рдзрд╛рди = rs (rs' рд╕рдорд╛рдзрд╛рди рд▓рд╛рдЧреВ рдХрд░реЗрдВ)
  87. r _ all = foldl1 ( < & > ) - рд╕реЗрдЯ рд╕реЗ рд╕рднреА рдкреНрд░рддрд┐рдмрдВрдз
  88. - рдорд┐рд▓рди - рдПрдХ рдпрд╛ рджреВрд╕рд░рд╛ рд╕рддреНрдп рд╣реИ
  89. ( <|> ) rs rs 'solution = rs solution ++ rs' рд╕рдорд╛рдзрд╛рди
  90. r _ any = foldl1 ( <|> ) - рдкреНрд░рддрд┐рдмрдВрдзреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ
  91. - рдкреНрд░рд╛рдкреНрдд рдкреНрд░рддрд┐рдмрдВрдз ---------------------------------------------- -
  92. - рдХреБрдЫ рд╡рд╕реНрддреБ рд╣реИ (рдпрд╛ рддреЛ рдкрд╣рд▓реА рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдпрд╛ рджреВрд╕рд░реА рдореЗрдВ, рдЖрджрд┐)
  93. present obj = r _ any [objectAt n obj | рдПрди .. [1 .. 5]]
  94. - рдПрдХ рд╡рд╕реНрддреБ рд╣рдореЗрд╢рд╛ рджреВрд╕рд░реЗ рдХрд╛ рдЕрдиреБрд╕рд░рдг рдХрд░рддреА рд╣реИ
  95. obj рд╕реЗ рдкрд╣рд▓реЗ ' = r _ any [
  96. objectAt n obj < & > objectAt (n + 1) obj ' | n .. [1 .. рдЖрдХрд╛рд░ - 1]]
  97. - рдкрд╛рд╕ (рдпрд╛ рджреВрд╕рд░реЗ рд╕реЗ рдкрд╣рд▓реЗ рдПрдХ, рдпрд╛ рдкрд╣рд▓реЗ рдХреЗ рдмрд╛рдж рджреВрд╕рд░рд╛)
  98. рдирд┐рдХрдЯ obj obj ' = (obj `рд╕реЗ рдкрд╣рд▓реЗ` obj') <|> (obj '` рд╕реЗ рдкрд╣рд▓реЗ `obj)
  99. ------------------------------------------------
  100. - рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХрд╛ рд╡рд┐рд╡рд░рдг -
  101. ------------------------------------------------
  102. рдкреНрд░рддрд┐рдмрдВрдз =
  103. objectAt 1 [ "рд░рд╛рд╖реНрдЯреНрд░реАрдпрддрд╛" = : "рдиреЙрд░реНрд╡реЗрдЬрд┐рдпрди" ] < & >
  104. рдореМрдЬреВрдж рд╣реИ [ "рд░рд╛рд╖реНрдЯреНрд░реАрдпрддрд╛" = : "рдЕрдВрдЧреНрд░реЗрдЬ" , "рдШрд░" = : "рд▓рд╛рд▓" ] < & >
  105. ([ "рдШрд░" = : "рд╣рд░рд╛" ] `рдкрд╣рд▓реЗ " [ "рдШрд░" = : "рд╕рдлреЗрдж" ] < & >
  106. рдореМрдЬреВрдж рд╣реИ [ "рд░рд╛рд╖реНрдЯреНрд░реАрдпрддрд╛" = : "рдбреЗрди" , "рдкреЗрдп" = : "рдЪрд╛рдп" ] < & >
  107. ([ "рдзреБрдЖрдВ" = : " рдорд╛рд▓рдмреЛрд░реЛ " ] `рдирд┐рдХрдЯ` [ " рдкрд╛рд▓рддреВ " = : " рдмрд┐рд▓реНрд▓реА " ] < & >
  108. рдореМрдЬреВрдж рд╣реИ [ "рдзреВрдореНрд░рдкрд╛рди" = : "рдбрдирд╣рд┐рд▓" , "рдШрд░" = : "рдкреАрд▓рд╛" ] < & >
  109. рдореМрдЬреВрдж рд╣реИ [ "рд░рд╛рд╖реНрдЯреНрд░реАрдпрддрд╛" = : "рдЬрд░реНрдорди" , "рдзреБрдЖрдВ" = : "рд░реЛрдердорд╛рдиреНрд╕" ] < & >
  110. objectAt 3 [ "рдкреЗрдп" = : "рджреВрдз" ] < & >
  111. ([ "рдзреБрдЖрдВ" = : " рдорд╛рд▓рдмреЛрд░реЛ " ] `рдирд┐рдХрдЯ` [ " рдкреЗрдп " = : " рдЬрд▓ " ] < & >
  112. рдореМрдЬреВрдж рд╣реИ [ "рдзреБрдЖрдВ" = : "рдкрд╛рд▓реНрдорд╛рд▓" , "рдкрд╛рд▓рддреВ" = : "рдкрдХреНрд╖реА" ] < & >
  113. рдореМрдЬреВрдж рд╣реИ [ "рд░рд╛рд╖реНрдЯреНрд░реАрдпрддрд╛" = : "рд╕реНрд╡реЗрдб" , "рдкрд╛рд▓рддреВ" = : "рдбреЙрдЧ" ] < & >
  114. ([ "рд░рд╛рд╖реНрдЯреНрд░реАрдпрддрд╛" = : "рдиреЙрд░реНрд╡реЗрдЬрд┐рдпрди" ] `рдирд┐рдХрдЯ` [ " рдШрд░ " = : " рдмреНрд▓реВ " ] < & >
  115. рдореМрдЬреВрдж рд╣реИ "" рдкрд╛рд▓рддреВ " = : " рдШреЛрдбрд╝рд╛ " , " рдШрд░ " = : " рдиреАрд▓рд╛ " ] < & >
  116. рдореМрдЬреВрдж рд╣реИ [ "рдзреВрдореНрд░рдкрд╛рди" = : "рд╡рд┐рдирдлреАрд▓реНрдб" , "рдкреЗрдп" = : "рдмреАрдпрд░" ] < & >
  117. рдореМрдЬреВрдж [ "рдШрд░" = : "рдЧреНрд░реАрди" , "рдкреЗрдп" = : "рдХреЙрдлреА" ] < & >
  118. рдореМрдЬреВрдж рд╣реИ [ "pet" = : "рдордЫрд▓реА" ]
  119. - рдордЫрд▓реА рдХрд╣реАрдВ рджрд┐рдЦрд╛рдИ рдирд╣реАрдВ рджреЗрддреА рд╣реИ, рдпрд╣ рдкреВрдЫрдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдХрд┐ рдпрд╣ рдХреНрдпрд╛ рд╣реИ
  120. рдореБрдЦреНрдп = рд╕рдорд╛рдзрд╛рди рджреЗрдВ = рдкреНрд░рддрд┐рдмрдВрдз рд▓рд╛рдЧреВ рдХрд░реЗрдВ [anySolution]
  121. рдЕрдЧрд░ рд▓рдВрдмрд╛рдИ рд╕рдорд╛рдзрд╛рди > 1 рдореЗрдВ
  122. рдлрд┐рд░ putStrLn ( "рдХреБрд▓ рд╕рдорд╛рдзрд╛рди рд╕реЗрдЯ:" ++ рд╢реЛ ( рд▓рдВрдмрд╛рдИ рд╕рдорд╛рдзрд╛рди))
  123. рдФрд░ $ $ descrSolution $ рд╕рд┐рд░ рд╕рдорд╛рдзрд╛рди рдбрд╛рд▓ рджрд┐рдпрд╛
  124. -----------------------------
  125. - рд╕реНрдЯреНрд░рд┐рдВрдЧ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ -
  126. -----------------------------
  127. - рдПрдХ рд╡реНрдпрдХреНрддрд┐ рдХрд╛ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡:
  128. descrMan man = descr "nationality" ++ "рдореЗрдВ рд░рд╣рддрд╛ рд╣реИ" ++
  129. descr "рдШрд░" ++ "рдШрд░," ++ рдХрд╛ рдорд╛рд▓рд┐рдХ рд╣реИ
  130. descr "pet" ++ ", рдкреЗрдп" ++
  131. descr "рдкреЗрдп" ++ "рдФрд░ рдзреВрдореНрд░рдкрд╛рди" ++
  132. descr "рд╕реНрдореЛрдХ"
  133. descr attr = fromMaybe "?" ( рд▓реБрдХ рдПрдЯрд░ рдореИрди)
  134. - рд╕рдорд╛рдзрд╛рди рдХрд╛ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡:
  135. descrSolution sol = concat [descrMan man ++ + \ n " | рдЖрджрдореА тЖР рд╕реЛрд▓]

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


All Articles