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