Самопознание

человеческий потенциал безграничен


  • Chain of Responsibility Pattern

  • Хеши

  • Вот твоя, Света, третья задача
    #include <iostream>
    #include <ctime>
    /*Система массового обслуживания состоит из обслуживающего аппарата (ОА)
    и двух очередей заявок двух типов.

       T1      ---T--T--T--T--¬
      >--------+  ¦  ¦  ¦  ¦  +---¬
               L--+--+--+--+---   ¦  -----¬ Т3
                                  +--+ ОА +----->
                                  ¦  L----- Т4
       T2      ---T--T--T--T--¬   ¦
      >--------+  ¦  ¦  ¦  ¦  +----
               L--+--+--+--+---

         Заявки 1-го и 2-го типов поступают в "хвосты" своих очередей по случайному
    закону с интервалами времени Т1 и Т2, равномерно распределенными от 1 до 5 и от 0 до 3 единиц времени (е.в.) соответственно. В ОА они поступают из "головы" очереди по одной и обслуживаются также равновероятно за времена Т3 и Т4,
    распределенные от 0 до 4 е.в. и от 0 до 1 е.в. соответственно, после чего
    покидают систему. В начале процесса в системе заявок нет.
         Заявка любого типа может войти в ОА, если:
         а) она вошла в пустую систему;
         б) перед ней обслуживалась заявка ее же типа;
         в) перед ней из ОА вышла заявка другого типа, оставив за собой пустую
    очередь (система с чередующимся приоритетом).
        Смоделировать процесс обслуживания первых 1000 заявок 1-го типа, выдавая
    после обслуживания каждых 100 заявок информацию о текущей и средней длине каждой очереди, а в конце процесса - общее время моделирования и количества вошедших в систему и вышедших из нее заявок обоих типов.
    */
    using namespace std;

    const int t1min = 1;
    const int t1max = 5;
    const int t2min = 0;
    const int t2max = 3;
    const int t3min = 0;
    const int t3max = 4;
    const int t4min = 0;
    const int t4max = 1;

    int firstlength(0), secondlength(0), afirst(0), asecond(0), tofirst(0),fromfirst(0), tosecond(0), fromsecond(0);
    int last(0), entempt(0),leftempt(0);
    double t1(0),t2(0),t3(0),t4(0),tmin(0),totaltime(0);

    bool firstcan()
    {
        return ((firstlength!=0)&&((last == 1)||(entempt==1)||(leftempt==2)));
    }

    bool secondcan()
    {
        return ((secondlength!=0)&&((last==2)||(entempt==2)||(leftempt == 1)));
    }
    void whichevent()
    {
        tmin=t1;
        if (tmin>t3) tmin = t3;
        if ((tmin>t2)&&firstcan()) tmin =t2;
        if ((tmin>t4)&&secondcan()) tmin = t4;
    }

    void timer()
    {
        static bool start(true);
        if (start)
        {
            start = false;
            t1 = (rand()*1.0/RAND_MAX)*(t1max-t1min)+t1min;
            t2 = (rand()*1.0/RAND_MAX)*(t2max-t2min)+t2min;
            t3 = (rand()*1.0/RAND_MAX)*(t3max-t3min)+t3min;
            t4 = (rand()*1.0/RAND_MAX)*(t4max-t4min)+t4min;
        }   
        else
        {
            if (tmin == t1)
            {
                t1 = (rand()*1.0/RAND_MAX)*(t1max-t1min)+t1min;
            }
           
                if (tmin == t2)
                {   
                    t2 = (rand()*1.0/RAND_MAX)*(t2max-t2min)+t2min;
                }
               
                    if (tmin == t3)
                    {                   
                        t3 = (rand()*1.0/RAND_MAX)*(t3max-t3min)+t3min;
                    }
                   
                        if (tmin == t4)
                        {                       
                            t4 = (rand()*1.0/RAND_MAX)*(t4max-t4min)+t4min;
                        }
                   
               
           
        }
        if(t1<0) t1=0;
        if(t2<0) t2=0;
        if(t3<0) t3=0;
        if(t4<0) t4=0;
       
    }

    void info()
    {
        static bool start(true);
        if(start)
        {
            afirst=firstlength;
            asecond=secondlength;
        }
        else
        {
            afirst = (afirst+firstlength)/2;
            asecond = (asecond+secondlength)/2;
        }
        cout<<"zayavok v pervoy o4eredi  - "<<firstlength<<endl;
        cout<<"srednee v pervoy          - "<<afirst<<endl;
        cout<<"zayavok vo vtoroy o4eredi - "<<secondlength<<endl;
        cout<<"sredneye vo vtoroy        - "<<asecond<<endl<<endl;
    }
       
    int main(int argc, char *argv[])
    {
        /*int i(0);*/
        srand(static_cast<unsigned int>(time(NULL)));
        while(fromfirst<1000/*i<100*/)
        {
            /*i++;*/
            timer();       
            whichevent();
            /*if(*argv[1] =='d')
            {
                cout<<"f"<<firstlength<<"s"<<secondlength<<"t1-"<<t1<<"  t2-"<<t2<<"  t3-"<<t3<<"  t4-"<<t4<<' '<<" tm-"<<tmin<<" tt-"<<totaltime<<endl<<firstcan()<<' '<<secondcan()<<endl;  
            }*/
            totaltime=totaltime+tmin;
            if(tmin == t1)
            {
                if ((firstlength == 0)&&(secondlength==0)) entempt = 1; else entempt = 0;
                firstlength++;
                tofirst++;
               
                t3-=t1;
                if(firstcan()) t2-=t1;
                if(secondcan()) t4-=t1;
               
                continue;
            }
            if (tmin == t2)
            {
                if (0==fromfirst%100) info();
                firstlength--;
                fromfirst++;
                last = 1;
                if (firstlength == 0)
                {
                    leftempt = 1;
                    last = 0;}
                else leftempt = 0;
                entempt = 0;
               
                t1-=t2;
                t3-=t2;
               
                continue;
            }
            if (tmin == t3)
            {
                if ((firstlength == 0)&&(secondlength==0)) entempt = 2;else entempt = 0;
                secondlength++;
                tosecond++;   
               
                t1-=t3;
                if(firstcan()) t2-=t3;
                if(secondcan()) t4-=t3;
                       
                continue;
            }
            if (tmin == t4)
            {
                secondlength--;
                fromsecond++;
                last = 2;
                if (secondlength == 0)
                {
                    leftempt = 2;
                    last = 0;
                }
                else leftempt = 0;
               
                entempt = 0;
               
                t1-=t4;                       
                t3-=t4;
               
                continue;
            }
        }
        cout<<"voshlo zayavok pervogo tipa - "<<tofirst<<endl;
        cout<<"vishlo zayavok pervogo tipa - "<<fromfirst<<endl;
        cout<<"voshlo zayavok vtorogo tipa - "<<tosecond<<endl;
        cout<<"vishlo zayavok vtorogo tipa - "<<fromsecond<<endl;
        cout<<"obshee vremya               - "<<totaltime<<endl;
        return 0;
    }





























































































































































































  • Chain of Responsibility Pattern

  • Хеши






  • Последние новости


    Дружба

    Все жизненные проблемы приносят с собой золотые самородки мудрости, обнаружить которые помогает истинная дружба. Вы замечали, что есть люди, которые дают вам силы, поднимают настроение и вызывают желание находиться рядом? И те, кто стремится вытянуть из вас энергию, надоедает вам и делает все так, что хочется сбежать. Нас подде...
    Читать далее »

    Советы, способствующие успеху

    ВЫЯВЛЕНИЕ ЦЕННОСТЕЙ Правильный выбор – Это результат жизни в соответствии со своими высшими ценностями, то есть путь к лучшей жизни. ЖИЗНЕННАЯ ЦЕЛЬ Лучшие люди выбирают цель, которая затрагивает лучшие струны в других. МИССИЯ Жизнь нельзя прожить дважды. Теперь или никогда, поэто...
    Читать далее »

    Утренние вопросы

    Если бы мне осталось жить всего месяц, что бы я делал из того, что делаю сегодня? Что я сделаю сегодня, чтобы почувствовать себя счастливым? Какие прекрасные воспоминания останутся у меня в памяти сегодня? Какие убеждения сделали мою жизнь такой, какая она есть? Во что нужно поверить, чтобы прожить удивительную жизнь? ...
    Читать далее »

    И еще несколько вопросов

    Знать мысли Бога – все равно что знать, как преуспеть в жизни. Глубоко поразмыслив над вопросами этой книги и записав свои ответы в дневник, вы развили в себе привычку анализировать. Поздравляю! Это важнейший навык успешной жизни. Способность к самоанализу и постановке правильных вопросов наряду с пониманием того, как использовать интуицию и природную мудрость, изменит нап...
    Читать далее »

    Путешествия

    Поставьте перед собой цель жить полноценно. Самый печальный итог – оглянуться назад и вопрошать, что можно было бы иметь, если бы… Дорожите своими заветными мечтами, воплощая их в жизнь. Ах, путешествия… Большинство из нас любят путешествовать и страстно стремятся к этому. Мы тоскуем по приключениям в реальной жизни. Хотим посетить удаленные места, узнать культуры, не...
    Читать далее »

    Счастье

    Там, где жизнь бьет ключом, где оживленно и весело, там и ищите свое счастье. Моя шестилетняя внучка Элла однажды зашла в мой офис и уселась в кресло. Она давно слышала, что я занимаюсь коучингом, поэтому я спросил ее: «Не хочешь побыть сегодня тренером и немного поучить других?» Малышка посмотрела на меня, выпрямилась в кресле, и я понял: она готова. Элла спросила: – О ч...
    Читать далее »

    Взаимоотношения

    Любовь Магия Бога выражается через любовь; наивысшая форма любви – бескорыстная помощь другим. Вы когда нибудь смотрели в глаза новорожденного и ощущали восторг, который ребенок приносит в этот мир? Большинство из нас чувствуют исходящую от детей любовь. Мы являемся в мир с любовью и открытым сердцем. С самого детства мы отдаем свою любовь этому миру. Из л...
    Читать далее »

    Ваш комментарий:


    Вы должны войти в систему, чтобы оставить комментарий.