Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.73/11: Рейтинг темы: голосов - 11, средняя оценка - 4.73
0 / 1 / 0
Регистрация: 01.11.2020
Сообщений: 616

Написать программу, моделирующую процесс распространения инфекционного заболевания

01.02.2021, 12:42. Показов 2109. Ответов 9

Студворк — интернет-сервис помощи студентам
Написать программу, моделирующую процесс распространения инфекционного заболевания на территории размером nхn клеток (задается с клавиатуры), если:
начальная заражена клетка задается с клавиатуры (их количество и положение на рабочем поле)
-в каждый интервал времени инфекционная клетка может с вероятностью 0,5 заражать каждую из соседних здоровых клеток (слева, сверху, справа и слева)
-после пяти единиц времени зараженная клетка не воспринимает инфекцию, а полученный иммунитет сохраняется при следующих четырех единиц времени, после чего клетка становится доступной к инфицированию.
Вывести на экране текущий состояния загрязнения после каждого интервала времени с учетом зараженных, здоровых и тех клеток, которые получили иммунитет.
Для лучшего визуального восприятия результатов эксперимента после каждого вывода использовать очистки экрана консольного окна (system ( "cls").

Добавлено через 58 минут
5 единиц времени зараженная клетка уже болеет (поэтому еще раз не заболевает). Я могу посоветовать здоровые (обычные) клетки маркировать нулем, больные отрицательным числом (свежезараженную -5), и иммунную положительным (только что выздоровевшую +4). Вот из просмотра таких значений у соседей и исходите. Т.е. если у соседа 0, то можно попробовать его заразить. А на каждом цикле времени вы должны менять значения ненулевых клеток (отрицательные увеличивать, положительные уменьшать)
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
01.02.2021, 12:42
Ответы с готовыми решениями:

Организация и управление памятью. Написать программу, моделирующую процесс управления памятью
Ребята пожалуйста, вопрос жизни и смерти. Ну не могу я в ассемблер, пугает он 1. Написать программу, моделирующую процесс управления...

Как создать закон распределения? Моделирование распространения вирусного заболевания
Здравствуйте, есть задание по имитационному моделированию. Необходимо смоделировать распространение вирусного заболевания. Для этого на...

Составить программу, моделирующую процесс вычеркивания людей из круга
Пожалуйста помогите с этими заданиями. Коллекции (10) 2) В кругу стоят N человек, пронумерованных от 1 до N. При ведении счета по кругу...

9
264 / 183 / 87
Регистрация: 03.05.2020
Сообщений: 790
01.02.2021, 12:50
Цитата Сообщение от Andriyipz Посмотреть сообщение
с вероятностью 0,5 заражать каждую из соседних здоровых
с каждой 0.5, или с случайной из 4х ?
0
0 / 1 / 0
Регистрация: 01.11.2020
Сообщений: 616
01.02.2021, 12:52  [ТС]
с вероятностью 0,5 заражать каждую из соседних здоровых клеток (слева, сверху, справа и слева)
0
01.02.2021, 13:04

Не по теме:

Цитата Сообщение от Andriyipz Посмотреть сообщение
Я могу посоветовать
Спасибо, а мы можем что-нибудь посоветовать? Или это ты у нас экзамен принимаешь?

0
0 / 1 / 0
Регистрация: 01.11.2020
Сообщений: 616
01.02.2021, 13:09  [ТС]
???
0
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
01.02.2021, 13:21
Цитата Сообщение от Andriyipz Посмотреть сообщение
???
Ты сам-то хоть что-нибудь сделал по этой задаче, прежде чем советовать? Если да, то покажи, что сделал, а мы уже будем тебе советовать
0
0 / 1 / 0
Регистрация: 01.11.2020
Сообщений: 616
01.02.2021, 13:25  [ТС]
Не так написал

Добавлено через 1 минуту
Простите не так написал
0
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
01.02.2021, 13:30
Цитата Сообщение от Andriyipz Посмотреть сообщение
Простите не так написал
Да ничего страшного.
Тем не менее - если ты не пытаешься ничего сделать сам, то тебе только остаётся надеяться, что кто-то уже делал такую задачу и выложит здесь свой код.
Вероятность, конечно есть, но рекомендую начать решать задачу самому, тогда здесь тебе подскажут, что и как нужно делать правильно.
0
Гвоздь Задиров
 Аватар для Folian
1718 / 1117 / 337
Регистрация: 25.01.2019
Сообщений: 2,940
01.02.2021, 14:25
На, играй.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
#include <iostream>
#include <vector>
#include <conio.h>
#include <ctime>
 
typedef std::vector<int> vi;
typedef std::vector<vi> vvi;
 
class Automat
{
    vvi matrix;
    static const int ill_dur;
    static const int immun_dur;
    static const int ill_chance;
    
public:
    
    Automat(){}
    Automat(int n)
    {
        init(n);
    }
    ~Automat(){}
    
    void init(int n)
    {
        matrix.resize(n, vi(n, 0)); 
    }
    
    bool check_range(int x, int y)
    {
        if( x >= matrix[0].size() || y >= matrix.size() || x < 0 || y < 0) return false;
        return true;
    }
    
    void show()
    {
        for(auto i : matrix)
        {
            for(auto j : i) std::cout << (j > 0 ? "#" : (j < 0 ? "@" : "_")) << " ";
            std::cout << "\n";  
        }
    }
    
    void infect(vvi& dest, vvi& src, int x, int y, int duration = ill_dur, int chance = ill_chance )
    {
        if(!check_range(x, y)) return;
        if((chance >= rand()%100 + 1) && !src[y][x]) dest[y][x] = duration;
    }
    
    void primary_infect(int x, int y)
    {
        infect(matrix, matrix, x, y, ill_dur, 100);
    }
    
    void proceed()
    {
        vvi buff(matrix);
        
        for(int i = 0; i < matrix.size(); ++i)
        {
            for(int j = 0; j < matrix[i].size(); ++j)
            {
                if(matrix[i][j] > 0)
                {
                    infect(buff, matrix, j, i-1, (ill_dur + 1));
                    infect(buff, matrix, j, i+1, (ill_dur + 1));
                    infect(buff, matrix, j-1, i, (ill_dur + 1));
                    infect(buff, matrix, j+1, i, (ill_dur + 1));
                }
            }
        }
        
        for(auto& i : buff)
            for(auto& j : i)
            {
                if(j == 1) { j = immun_dur; continue; }
                if(j > 0) { --j; continue; }
                if(j < 0) ++j;
            }
            
        matrix = buff;
    }
    
    void run()
    {
        do
        {
            system("cls");
            show();
            proceed();
        } while(getch() != 27);
    }
    
};
 
const int Automat::ill_dur = 5;
const int Automat::immun_dur = -4;
const int Automat::ill_chance = 50;
 
int main()
{
    srand(time(0));
    
    int n = 30;
    //std::cin >> n;
 
    Automat A(n);
    
    A.primary_infect(rand()%n, rand()%n);
    A.primary_infect(rand()%n, rand()%n);
    A.primary_infect(rand()%n, rand()%n);
 
    A.run();
    
    return 0;
}
0
0 / 1 / 0
Регистрация: 01.11.2020
Сообщений: 616
08.02.2021, 12:54  [ТС]
где это реализовано ?после пяти единиц времени зараженная клетка не воспринимает инфекцию, а полученный иммунитет сохраняется при следующих четырех единиц времени, после чего клетка становится доступной к инфицированию.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
08.02.2021, 12:54
Помогаю со студенческими работами здесь

Составить программу, моделирующую процесс продажи билетов и формирования поезда
Поезд состоит из спальных, купейных и плацкартных вагонов. В спальном вагоне 24 места, в купейном 36 мест, в плацкартном 48 мест. ...

Написать программу моделирующую работу ОС
Написать программу моделирующую работу ОС, управляющей заданиями в пакетном режиме. Во входном файле содержаться строки с заданиями...

Написать программу, моделирующую поведение светофора
1. «Светофор». PD0 - «красный свет», PD1 - «желтый свет», PD2 - «зеленый свет». Красный и зеленый цвета горят по 5 с, желтый - 2 с. Перед...

Написать программу, моделирующую работу сумматора.
ОЧЕНЬ НУЖНА ПОМОЩЬ !!! ЗАРАНЕЕ БЛАГОДАРЮ !!! Сумматор — устройство, преобразующее информационные сигналы (аналоговые или цифровые) в...

Написать программу,моделирующую работу бухгалтерии:
О каждом работнике известны следующие данные: -ФИО -Должность -Оклад -Количество иждивенцев -Стаж работы В качестве модели...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru