Кездейсоқ айнымалы ұғымын қарастыру. Кездейсоқ айнымалымен жұмыс істейтін процедуралар мен функциялар. Тармақталу алгоритмін орындайтын программаны құру
Кездейсоқ айнымалы ұғымын қарастыру. Кездейсоқ айнымалымен жұмыс істейтін процедуралар мен функциялар. Тармақталу алгоритмін орындайтын программаны құру.
Орындаған: ВТ-405 тобының студенті Егизеков Диас
Тексерген: Жаксыгулова Д.Д.
Бағдарламалау тілдерінде белгілі бір аралықта кездейсоқ сандарды алу үшін орындалатын функциялар қарастырылады. Дегенмен шындыққа келгенде бұл кезде кездейсоқ сандар емес, псевдо кездейсоқ сандар орындалады және олар нақты формуламен есептеледі.
Бағдарламалау тілдерінде белгілі бір аралықта кездейсоқ сандарды алу үшін орындалатын функциялар қарастырылады. Дегенмен шындыққа келгенде бұл кезде кездейсоқ сандар емес, псевдо кездейсоқ сандар орындалады және олар нақты формуламен есептеледі.
С++ тілінде кездейсоқ айнымалыларды алу
С++ тілінде кездейсоқ айнымаларды rand() функциясы арқылы алуға болады және ол тілдің стандартты функциялар қатарына жатады. Бұл функция ешқандай параметрлерді қабылдамайды. Rand() функциясы 0-ден rand_max аралығындағы кездейсоқ сандарды береді.
Көп жағдайда бi3 0-ден rand_max аралықтағы сандарды қажет етпейміз. Мысалы, тиынды лақтырған кезде, екі жағдай ғана орындалуы мүмкін, яғни керекті интервал – 1-ден 2-ге дейін. Бұл жағдайда кездейсоқ сандар аралығын өзгерту қажеттілігі туындайды. Аралықты өзгерту үшін бөліндіден қалдық табу «%» операциясын қолдану қажет.
Көп жағдайда бi3 0-ден rand_max аралықтағы сандарды қажет етпейміз. Мысалы, тиынды лақтырған кезде, екі жағдай ғана орындалуы мүмкін, яғни керекті интервал – 1-ден 2-ге дейін. Бұл жағдайда кездейсоқ сандар аралығын өзгерту қажеттілігі туындайды. Аралықты өзгерту үшін бөліндіден қалдық табу «%» операциясын қолдану қажет.
Сонымен [a,b] аралығындағы кездейсоқ санды шығару үшін мына формула жазылады:
Программаны әр ретте орындаған кезде, кездейсоқ сандарды алу үшін C++ стандартты кітапханасындағы srand() функциясын қолдану қажет. srand() функциясы unsigned немесе unsigned int типіндегі бүтін типті аргументті қабылдағаннан кейін кездейсоқ сандарды шығаруды орындайды.
Программаны әр ретте орындаған кезде, кездейсоқ сандарды алу үшін C++ стандартты кітапханасындағы srand() функциясын қолдану қажет. srand() функциясы unsigned немесе unsigned int типіндегі бүтін типті аргументті қабылдағаннан кейін кездейсоқ сандарды шығаруды орындайды.
Кездейсоқ сандардың шығарылуы (рандомизация) автоматты түрде болу үшін, яғни srand() функциясында әр ретте аргументті ауыстырмау үшін, 0 аргументпен time() функциясын қолдану кажет. time() функциясын қолдану үшін атау файлын енгізу қажет.
Нақты сандардан кездейсоқ айнымалыларды алу
Егер rand_max тұрақтысы негізінде нақты типте шығарған кездейсоқ санды бөлсек, онда 0-ден 1-ге дейін аралықтағы нақты кездейсоқ сан шығады. Енді бұл санды аралықтың ұзындығына көбейтсе, онда 0 мен сол аралық ұзындығының арасында жататын сан шығады. Осыдан кейін минималды шекараға жылжуды қосса, онда сол сан керекті аралықтың арасына оңай кіре алады.
Нақты сандардан кездейсоқ айнымалы алу формуласы:
Тармақталу алгоритмін кұру
Егер алгоритм қадамдарының тізбектеле орындалуы қандай да бір шартқа тәуелді өзгеретін болса, онда ондай алгоритмді тармақталушы алгоритм дейміз.
Алгоритм орындалғанда "иә" немесе "жоқ" деген мәндердің бірі қабылдай алатын логикалық өрнекті шарт деп атаймыз.