Разлика между версии на „Алгоритъм“
| Ред 3: | Ред 3: | ||
==Същност== | ==Същност== | ||
| − | Елементарно действие (стъпка) е действие, което не се нуждае от допълнителни указания, за да бъде извършено. Терминът „алгоритъм” произлиза от името на арабския математик Ал-Хорезми, който в свой научен трактат описва алгоритъм за представяне на числа в десетична бройна система. | + | Елементарно действие (стъпка) е действие, което не се нуждае от допълнителни указания, за да бъде извършено. Терминът „алгоритъм” произлиза от името на арабския математик Ал-Хорезми, който в свой научен [[трактат]] описва алгоритъм за представяне на числа в [[десетична бройна система]]. |
==Свойства на алгоритмите== | ==Свойства на алгоритмите== | ||
| Ред 10: | Ред 10: | ||
*крайност – изпълнението на алгоритъма трябва да завършва след краен брой стъпки; | *крайност – изпълнението на алгоритъма трябва да завършва след краен брой стъпки; | ||
| − | *определеност – при всяко изпълнение на алгоритъма с едни и същи данни се получават едни и същи | + | *[[определеност]] – при всяко изпълнение на алгоритъма с едни и същи данни се получават едни и същи [[резултат]]и; |
*яснота – изпълнителят може да извърши всяка текуща стъпка и да определи езнозначно коя е следващата за изпълнение стъпка; | *яснота – изпълнителят може да извърши всяка текуща стъпка и да определи езнозначно коя е следващата за изпълнение стъпка; | ||
*масовост – алгоритъмът може да се прилага за решаване на коя да е [[задача]] от клас еднотипни задачи; | *масовост – алгоритъмът може да се прилага за решаване на коя да е [[задача]] от клас еднотипни задачи; | ||
| Ред 20: | Ред 20: | ||
*Последователни (линейни) алгоритми – алгоритми, съставени от елементарни действия, които се изпълняват едно след друго последователно по реда на записването им. | *Последователни (линейни) алгоритми – алгоритми, съставени от елементарни действия, които се изпълняват едно след друго последователно по реда на записването им. | ||
| − | *Разклонени алгоритми – алгоритми, съдържащи действия, които определят кои са следващите за изпълнение действия, в зависимост от изпълнението или неизпълнението на дадено [[условие]]. | + | *Разклонени алгоритми – алгоритми, съдържащи действия, които определят кои са следващите за изпълнение действия, в [[зависимост]] от изпълнението или неизпълнението на дадено [[условие]]. |
*Циклични алгоритми – алгоритми, които съдържат група от елементарни действия, които се изпълняват многократно. | *Циклични алгоритми – алгоритми, които съдържат група от елементарни действия, които се изпълняват многократно. | ||
| Ред 30: | Ред 30: | ||
*словесно (чрез думи); | *словесно (чрез думи); | ||
*чрез специални знаци, представящи дадени действия; | *чрез специални знаци, представящи дадени действия; | ||
| − | *чрез блок-схеми (общоприети графични схеми, в които действията се вписват в геометрични фигури, а стрелки определят | + | *чрез блок-схеми (общоприети графични схеми, в които действията се вписват в геометрични фигури, а стрелки определят [[ред]]а им); |
*чрез компютърни програми. | *чрез компютърни програми. | ||
Версия от 18:39, 30 юли 2012
Алгоритъм – система от краен брой елементарни действия със зададен ред на изпълнението им, които водят до решаване на определен проблем. В ежедневието си човек извършва дейности, които се изпълняват по предварително заучени правила и определена последователност – напр. събирането на числа, избирането на телефонен номер, карането на кола и др. Казваме, че тези дейности са алгоритмизирани.
Същност
Елементарно действие (стъпка) е действие, което не се нуждае от допълнителни указания, за да бъде извършено. Терминът „алгоритъм” произлиза от името на арабския математик Ал-Хорезми, който в свой научен трактат описва алгоритъм за представяне на числа в десетична бройна система.
Свойства на алгоритмите
Някои от най-важните свойства на алгоритмите са:
- крайност – изпълнението на алгоритъма трябва да завършва след краен брой стъпки;
- определеност – при всяко изпълнение на алгоритъма с едни и същи данни се получават едни и същи резултати;
- яснота – изпълнителят може да извърши всяка текуща стъпка и да определи езнозначно коя е следващата за изпълнение стъпка;
- масовост – алгоритъмът може да се прилага за решаване на коя да е задача от клас еднотипни задачи;
Видове алгоритми
Алгоритмите са три вида: последователни (линейни), разклонени и циклични.
- Последователни (линейни) алгоритми – алгоритми, съставени от елементарни действия, които се изпълняват едно след друго последователно по реда на записването им.
- Разклонени алгоритми – алгоритми, съдържащи действия, които определят кои са следващите за изпълнение действия, в зависимост от изпълнението или неизпълнението на дадено условие.
- Циклични алгоритми – алгоритми, които съдържат група от елементарни действия, които се изпълняват многократно.
Начини за описание на алгоритми
Алгоритмите могат да бъдат описвани:
- словесно (чрез думи);
- чрез специални знаци, представящи дадени действия;
- чрез блок-схеми (общоприети графични схеми, в които действията се вписват в геометрични фигури, а стрелки определят реда им);
- чрез компютърни програми.
Пример
Баща и двамата му трябвало да преминат пълноводна река. Намерили малка лодка, която може да превозва не повече от 120 кг товар. Как да преминат реката, ако бащата тежи 100 кг, а синовете му съответно 50 кг и 60 кг?
Алгоритъм:
- Двамата синове преминават на отсрещния бряг;
- Единият син връща лодката;
- Бащата преминава реката;
- Вторият син връща лодката;
- Двамата синове преминават реката;
- Край на алгоритъма.
Вижте още
Източници
- John H. Conway, Richard Guy, The Book of Numbers
- Ian Stewart, Galois Theory, Third Edition (Chapman Hall/CRC Mathematics Series)
- Michael Spivak, Calculus, 4th edition
- S. MacLane, Mathematics: Form and Function
- Clifford A. Pickover, The Math Book: From Pythagoras to the 57th Dimension, 250 Milestones in the History of Mathematics (Sterling Milestones)