IPB
ЛогинПароль:

 
 Ответить  Открыть новую тему 
> помогите с практикой пожалуйста, Задача об инфекции стригущего лишая.
сообщение
Сообщение #1





Группа: Пользователи
Сообщений: 1
Пол: Мужской

Репутация: -  0  +


Задача об инфекции стригущего лишая.
Промоделировать процесс распространения инфекции — стригущего лишая по участку кожи размером n*n (n — нечетное) клеток. Предполагается, что исходной зараженной клеткой кожи является центральная. В каждый интервал времени пораженная инфекцией клетка может с вероятностью 0,5 заразить любую из соседних здоровых клеток. По прошествии шести единиц време­ни зараженная клетка становится невосприимчивой к инфекции. Возникший иммунитет действует в течение последующих четырех единиц времени, а затем клетка оказывается здоровой. В ходе моделирования описанного процесса выдавать текущее состояние моделируемого участка кожи в каждом интервале времени отмечая зараженные, невосприимчивые к инфекции и здоровые клетки. пожалуйста если можно сделайте в течении 3 дней


Сообщение отредактировано: ИлюХа -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Профи
****

Группа: Пользователи
Сообщений: 618
Пол: Мужской

Репутация: -  24  +


Забавная формулировка для клеточного автомата. Попробуй поискать игру "Жизнь" и изменить ее под свои нужды. Реализации выкладывались и на этом форуме:
Игра "жизнь" - еще одна реализация
реализация игры жизнь.
Life


--------------------
Close the World...txeN eht nepO
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Уникум
*******

Группа: Пользователи
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


Цитата(ИлюХа @ 24.06.2009 19:01) *
если можно сделайте в течении 3 дней
Знаешь что, с такими просьбами иди-ка ты в Задачи На Заказ. Если "сделайте", то платите денежки. Я поздно заметил эту приписку - уже сделал программу, но вот выкладывать не буду, раз ты сам участвовать не планируешь.

2 Archon: общего с Life, конечно, немало, но все же и отличия есть. Приобретение иммунитета - это все же некоторая зависимость от предыстории. Конечно, слои хранить тут не надо, но тогда состояние клетки должно учитывать прошедшее время.

Вероятность заражения, равная 50% - многовато, мне кажется. Неинтересно получается. Вот фрагментик:


#
###
#####
######
#######
#########
#######
###
# #







#
##
####
#######
#######
#########
#### #####
#########
#### #
####
# #






###
####
# #####
#########
######## #
#### ######
#### #####
#### #####
########
######
####





##
#####
#####
########
##########
#### ######
#### #######
##### ####
#### #####
# ########
######## #
#####
#


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Уникум
*******

Группа: Пользователи
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


При вероятности заражения 20% ситуация все еще безрадостная:
Код
++++ ++++++++++++++++
+++++++++++++++++++++
+++++++++++++++++++++
+++++++++++++++++++++
+++++++++++++++++++++
+++++++++++++++++++++
+++++++++++++++++++++
+++++++++++++++++++++
+++++++++++++++++++++
+++++++++++++++++++++
+++++++++++++++++++++
+++++++++++++++++++++
+++++++++++++++++++++
+++++++++++++++++++++
+++++++++++++++++++++
+++++++++++++++++++++
+++++++++++++++++++++
+++++++++++++++++++++
+++++++++++++++++++++
++ ++++++++++++++++++
++++++++++++++++++++  

Это конечный результат. Тут я стал метить переболевшие клетки плюсами. Видно, что заболевания избежали только три клетки((. Кстати, еще влияет длительность протекания заболевания. Ее тоже можно поварьировать.

Добавлено через 13 мин.
Экспериментируем дальше)). Последующие картинки печатаются с разрядкой.
При 15% заразности намечается некоторое улучшение, но все равно исход трагический. И хотя проходение болезни оставляло некоторый оптимизм в начале, переболели почти все:
Код
+ + + + + + + + + + + +   + +   + + + +
+ + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + +
+ + + + +   + + + +   + + + + + + + + + +
+ + + + + + + + + +   + + + + + + + + + +
+ + + + + + + + + +   + + + + + + + + + +
+ + + + + + + + + +   + + + + + + + + + +
+ + + + + + + + + + + + + + + + +   + + +
+ + + + + + + + + + + + + + + + +   + + +
+ + + + + + + + +   + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + +   + + +
+ + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + +   + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + +   + + +
+ + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + +


И только при 12% можно говорить, что болезнь не имеет совсем уж глобального характера:
Код








       + +
+ + + + + + + + + + + +
     + + + +   + + + + +             + + +
     + + + + + + + + +           + + + + +
       + + +       +           + + + + + +
       + + + +               + + + + + + +
       + + + +       +       + + + + + + +
           + + + + + + + + + + + + + + + +
         + + + + + + +   + + + +   + + + +
         + + + + + + + + + + + + + + + + +
       + + + + + + + + + + + + + + + + + +
       + + + + + + + + + + + + + + + + + +
       + + + + + + + + + + + + + + + + + +


Ну и при 9% можно сказать, что болезнь локализуется сама по себе:
Код






                       +
                   + + + + +
                   + + + + +
                   + + + + + + +
                   + + + + + +   + + +
                   + + + + +     + +
                   + + + + + + + + + + +
                   + + + + + + + + +
                     + + + + +   + + +
                     + +             + +
                                     + +





Время протекания пока не менял, везде равно 6.


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Уникум
*******

Группа: Пользователи
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


После нескольких экспериментов я пришел к выводу, что изменение времени протекания болезни не меняет картину в целом. Конечно, общее время эпидемии меняется соответственно, но результат зависит, видимо, от некоторой комбинации, типа произведение времени болезни на вероятность заражения. Вот, например, результат с такими параметрами: заразность=0.03, время=30
Код
    + + + + + +   + + + + + +   + + + + +
    + + + + + + + + + + + + +     + + +
+ + + + + + + + + + + + + + + + + + + + +
  + + + + + + + +     + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + +
+ + + + +   + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + +   + + + + + +
  + + + + + + + + + + + + + + + + + + + +
+ + + + + + +   + + + + + + +   + +   + +
  + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + +
+ + + + + +     + + + + + + + + + + + + +
+ + + + +   + + + + + + + + + + + +     +
+ + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + +     + + + + + +
+   + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + +
+ + + +   + + + + + +     + + + + + + + +
+ + + + + + + + + + + + + +   + + + + + +

Да, еще забыл сказать: я с самого начала взял окрестность из 4 точек, а не из 8 как в Life. Если взять 8 соседей, то заразность придется еще больше уменьшать, енссно. Думаю, никаких особо новых эффектов это не привнесет.

Добавлено через 19 мин.
Однако, я не заметил не только фразы со "сделайте". Я не заметил, что иммунитет тоже истекает через некоторое время.. Внес исправления, теперь все значительно интереснее даже с заразностью 50%)). Эпидемия не кончается никогда, проходит волнами. Вот три последовательных кадра.
Код
# # # + + + + + + + + + + + # # # # # # #
# # + + +   +           + + # # # + # # #
# # + +                 + + # # # + + # #
+ + + +                   + + + + + + + #
+                         + + + + +   + +
                #         + # + + #     +
+               # #     # # # # # # # # +
+       # #   # # # # # # # # # # # # # #
        # # # # # # # # # # # + # # # #
  # # # # # # # # # # + # # # # # # # # #
# # # # # # # + + # + + # # # # # + + # #
# # # # # + + + + + + + + + # + + + + # #
# # # # + + + +   + + + + + + + + +   # #
# # # + +   # # #   #   + + + + # # # # #
# # + + + # # # # # # # + +         # # #
# # #   # # # # + + #         # # + + + #
# # # + # # # + + + # #       # + + + # #
# # # + + # # + #   # # #     # + # # # #
# # # + +       # # # # +   +   + # # # #
# # # # + + + + + +       + + + + # # #
# # # # # # + # + +   + + + + + + # # #

# # + + +   +   + + +   + + + # # + # # #
# + + +                 + + # # # + + # #
+ # + +                   + + + + + + + #
+ +                       + + + + +   + +
                #         +   + +     + +
                # #     # + #   # # # # +
          #   # # # # # # # # # # # # #
        # # # # # # # # # # # # # # # # #
  # # # # # # # # # # # # # # + + # # # #
# # # # # # # # # # # + # # # + # # + # #
# # # # # + + + + + + + + # # # + + + # #
# # # # + + + +   + + + + + + + + +   # #
# # # + + +     #   +   + + + + + #   # #
# # + + + # # # # # #     + + + # # # # #
# # + + # # # # # # # # + +   # #   # + #
# # # # # # # # + + # #       # # +   + +
# # + + # # + + +   # # #     # + + + # #
# # + + + # # + # # # # #     # + # + # #
# # + +   # # # # # # #         + + # # #
# # # + + + + + + +         +   + # # # #
# # # # # + + + +     +   + + + + # # # #

# # + +     +     +     + + + # # + # # #
+ + +                     + # + + + + + #
+ + + +                   + + + + + + + +
+               #             + +     + +
                # #     #     +       + +
          #   # # # # # # + # # # # # # +
        # # # # # # # # # # # # # # # # #
  # #   # # # # # # # # # # # # # # # # #
  # # # # # # # # # # + # # + + + # # # #
# # # # # # + + + # + + + # # + + + + # #
# # # # + + + + + + + + + + # + + + + + #
# # # + + + +   # + +   + + + + + # # + #
# # + + + + # # # #       + + + # # # + #
# # + + # # # # # # #       + # # # # # #
# # + # # # # # # + # #     # # # # # + +
# # + # # # + + + + + # #     # # + # + +
# + + # + # + +     # # # # # + + +   + #
# + + +   # +   # # # # #     #   + + + #
# # + + # # # # # # # # #         + # # #
# # + + + +   + + +   #         + + # # #
# # # + + + + + +         + + + + + # # #

По-прежнему учитываются только 4 соседа. Впрочем, исправить на 8 несложно.


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Уникум
*******

Группа: Пользователи
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


Теперь можно опубликовать код, использованных для приведенных выше расчетов.

uses
CRT;

const
n= 21; {размер области}
Cont= 50; {заразность в процентах}
Ill= 6; {время болезни}
Imm= 4; {длительность иммунитета}

var
a,b: array[1..n,1..n]of integer;
i,j: integer;
c: char;


procedure Show;
begin
for i:=1 to n do begin
for j:=1 to n do
if (a[i,j]>0) then Write(' #') else if a[i,j]<0 then Write(' +') else Write(' ');
WriteLn
end
end;


begin
FillChar(a,SizeOf(a),0);
a[n div 2+1,n div 2+1]:=1;
Show;
Randomize;
repeat
b:=a;
for i:=1 to n do begin
for j:=1 to n do begin
if a[i,j]>0 then begin
if (i>1) and (b[i-1,j]=0) and (Random(100)<Cont) then b[i-1,j]:=1;
if (j>1) and (b[i,j-1]=0) and (Random(100)<Cont) then b[i,j-1]:=1;
if (i<n) and (b[i+1,j]=0) and (Random(100)<Cont) then b[i+1,j]:=1;
if (j<n) and (b[i,j+1]=0) and (Random(100)<Cont) then b[i,j+1]:=1;
Inc(b[i,j]);
if b[i,j]>Ill then b[i,j]:=-Imm
end
else if a[i,j]<0 then Inc(b[i,j])
end
end;
a:=b;
Show;
WriteLn;
c:=ReadKey
until c=#27
end.



--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


mea culpa
*****

Группа: Пользователи
Сообщений: 1 372
Пол: Мужской
Реальное имя: Николай

Репутация: -  24  +


Выждал "в течение трёх дней"? lol.gif


--------------------
"Знаешь, стыдно - когда не видно, что услышал всё, что слушал.."
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 20.04.2024 6:25
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name