Страница: 1 |
Подскажите, пожалуйста, как решить задачку: В колонии амеб население увеличивается каждые 3 часа в 2 раза. Жизнь амебы 12 часов. Подсчитать население амебы через n часов. Решить с помощью циклов в Бейсике.
С лету не долго думая: Dim N(100) as Long 'кол-во амеб, где индех - час N(1) = 10 'начальное ко-во амеб For i = 2 to n N(i) = N(i-1) + N(i-3) - N(i-12) next i N(i) - кол-во амеб в час i N(i-1) - кол-во амеб в предыдущий час N(i-3) - кол-во амеб три часа назад (увеличение население) N(i-12) - кол-во амеб 12 часов назад (отмирание) Страница: 1 |
Вопрос: Колония амеб
Добавлено: 10.11.03 13:59
Автор вопроса: Ronald_007
Ответы
Всего ответов: 2
Номер ответа: 1
Автор ответа:
boevik
Хранитель чата
ICQ: 137392264
Вопросов: 8
Ответов: 557
Web-сайт:
Профиль | | #1
Добавлено: 10.11.03 15:14
Номер ответа: 2
Автор ответа:
Pashenko
ICQ: 176176951
Вопросов: 14
Ответов: 655
Профиль | | #2
Добавлено: 10.11.03 15:32
На самом деле, условия задачи не совсем корректные (не сказано,
умирающие в текущей итерации амёбы участвуют в размножении или нет).
Если участвуют, то алгоритм такой:
Dim Num As Long, Num1 As Long, Num2 As Long, Num3 As Long, Num4 As Long
Dim i As Integer, j As Integer
i = InputBox("Кол-во часов")
i = i / 3
Num = InputBox("Кол-во амёб")
Num1 = 0
Num2 = 0
Num3 = 0
Num4 = 0
For j = 1 To i
Num = Num * 2 - Num4
Num4 = Num3
Num3 = Num2
Num2 = Num1
Num1 = Num
Next j
MsgBox Num
Если не участвуют, то 11-ю строку надо изменить : Num = (Num - Num4) * 2
При этом популяция вымрет через 57 часов.