135 / 62 / 24
Регистрация: 08.11.2012
Сообщений: 250
1

Сообщество роботов. Сколько роботов будет через N лет

28.12.2012, 16:30. Показов 3377. Ответов 13
Метки нет (Все метки)

Надо решить эту задачу: Сообщество роботов живет по следующим законам:

- один раз в начале года они объединяются в группы по 3 или 5 роботов;
- за год группа из 3 роботов собирает 5 новых, а группа из 5 роботов собирает 9 новых;
- роботы объединяются так, чтобы собрать за год наибольшее количество;
- каждый робот живет 3 года после сборки.
Известно начальное количество роботов K и все они только что собраны.

Сколько роботов будет через N лет?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.12.2012, 16:30
Ответы с готовыми решениями:

Вычислить, сколько роботов будет через определенное количество лет
Есть определенное количество роботов (ввести с клавиатуры). В начале года они делятся на группы по...

Каждый робот живет 3 года после сборки. Сколько роботов будет через N лет?
Сообщество роботов живет по следующим законам: один раз в год они объединяются а полностью...

Каждый робот живет 3 года после сборки. Сколько роботов будет через N лет?
Сообщество роботов живет по следующим законам: один раз в год они объединяются в полностью...

Сколько роботов будет существовать через N дней
Бригада из 3 роботов собирает за 1 день еще 1 нового робота.Время жизни нового робота-5 дней,после...

13
6169 / 934 / 309
Регистрация: 25.02.2011
Сообщений: 1,358
Записей в блоге: 1
29.12.2012, 02:26 2
QBasic/QuickBASIC
1
2
3
4
5
6
7
8
9
10
11
12
INPUT "Robotov"; a
INPUT "Let"; n
FOR i = 2 TO n
    d = a + b + c
    IF d < 3 THEN d = 0
    IF d = 4 OR d = 7 THEN d = d - 1
    m = d MOD 5
    c = b
    b = a
    a = d * 2 - d \ 5 - m MOD 3 - m \ 3
NEXT i
PRINT "Cherez"; n; "let budet"; a + b + c; "robotov"
Алгоритм реально рабочий но объяснять как работает программа мне не хочется, проверено только что (по размеру кода на Basic уверено лидирую по сравнению с кодами на C++ и Pascal других участников, жаль что не по скорости, здесь C++ вне конкуренции)
0
135 / 62 / 24
Регистрация: 08.11.2012
Сообщений: 250
29.12.2012, 08:15  [ТС] 3
что то твой алгоритм не работает
0
58 / 55 / 37
Регистрация: 02.04.2012
Сообщений: 131
29.12.2012, 08:43 4
Тесты есть?

Добавлено через 3 минуты
QBasic/QuickBASIC
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
INPUT k
INPUT n
DIM r(1 TO 3)
r(1) = k
r(2) = 0
r(3) = 0
s = k
FOR i = 1 TO n
 x = INT(s / 3)
 p = s MOD 3
 IF p = 0 THEN
  y = 0
 ELSE
 IF p = 1 THEN
  x = x - 3
  y = 2
 ELSE
  x = x - 1
  y = 1
 END IF
 END IF
 r(3) = r(2)
 r(2) = r(1)
 r(1) = 5 * x + 9 * y
 s = r(1) + r(2) + r(3)
NEXT i
PRINT s
0
135 / 62 / 24
Регистрация: 08.11.2012
Сообщений: 250
29.12.2012, 08:50  [ТС] 5
если k=3 а n=1 тогда твоя прога выводит 8 а должно выйти 5
0
58 / 55 / 37
Регистрация: 02.04.2012
Сообщений: 131
29.12.2012, 08:54 6
В сети нашел два способа решение задачи на Pascal. Код совсем разный, но ответ идет везде 8.
0
135 / 62 / 24
Регистрация: 08.11.2012
Сообщений: 250
29.12.2012, 08:56  [ТС] 7
почему в задаче же сказано что за год группа из трех 3 роботов собирает 5 новых
0
58 / 55 / 37
Регистрация: 02.04.2012
Сообщений: 131
29.12.2012, 09:03 8
А куда вы дели самых первых роботов?

Добавлено через 4 минуты
Если группа из 3 собирает 5 роботов, то будет 8. В сумму входят первые 3 робота и 5 роботов, которые они успели собрать за один год
1
135 / 62 / 24
Регистрация: 08.11.2012
Сообщений: 250
29.12.2012, 09:08  [ТС] 9
ну да извините не расчитал

Добавлено через 4 минуты
спасибо за код
0
6169 / 934 / 309
Регистрация: 25.02.2011
Сообщений: 1,358
Записей в блоге: 1
29.12.2012, 09:12 10
Цитата Сообщение от АББА Посмотреть сообщение
что то твой алгоритм не работает
В смысле не рабочий, указал ссылку (), где точно такуюже задачу прошел данным алгоритмом все 20 тестов:


Возможно не правильно определяем что значит через n лет?
на ******** в условиях это означает для примера 11 роботов 7 лет - ответ 4442
по годам:
1 - 11
2 - 30
3 - 84
4 - 223
5 - 605
6 - 1640
7 - 4442

т.е. в 1 год кол-во не меняется, новые еще не собраны, если Вам нужно, что при n=0 ничего не меняется, а при 1 годе уже происходит сборка и стареют (умирают) роботы то измените цикл For i=2 ..., на For i=1
Миниатюры
Сообщество роботов. Сколько роботов будет через N лет  
1
135 / 62 / 24
Регистрация: 08.11.2012
Сообщений: 250
29.12.2012, 09:19  [ТС] 11
если кол роботов 3 твой написанный код выводит 1 год 3 робота
0
6169 / 934 / 309
Регистрация: 25.02.2011
Сообщений: 1,358
Записей в блоге: 1
29.12.2012, 09:29 12
Цитата Сообщение от АББА Посмотреть сообщение
если кол роботов 3 твой написанный код выводит 1 год 3 робота
я уже ответил на этот вопрос, если нужно 8, то код будет таким:
QBasic/QuickBASIC
1
2
3
4
5
6
7
8
9
10
11
12
INPUT "Robotov"; a
INPUT "Let"; n
FOR i = 1 TO n
    d = a + b + c
    IF d < 3 THEN d = 0
    IF d = 4 OR d = 7 THEN d = d - 1
    m = d MOD 5
    c = b
    b = a
    a = d * 2 - d \ 5 - m MOD 3 - m \ 3
NEXT i
PRINT "Cherez"; n; "let budet"; a + b + c; "robotov"
1
135 / 62 / 24
Регистрация: 08.11.2012
Сообщений: 250
29.12.2012, 09:34  [ТС] 13
ну спасибо

Добавлено через 57 секунд
работает нормально
0
6169 / 934 / 309
Регистрация: 25.02.2011
Сообщений: 1,358
Записей в блоге: 1
29.12.2012, 09:55 14
IUMag, у Вас в программе нет проверки на значения k = 1, 2, 4, 7
При k=4, n=1 ответ должен быть 9, а не 12
При k=7, n=1 ответ должен быть 17, а не 20
При k=1 или k=2 и для n>2 роботы умирают, т.к. новые родиться не могут, а те что были умрут от старости
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.12.2012, 09:55
Помогаю со студенческими работами здесь

Сколько роботов будет существовать через N дней?
Бригада из 3 роботов собирает за 1 день еще 1 нового робота.Время жизни нового робота-5 дней,после...

Дочери в настоящее время 8 лет, а матери 38. Через сколько лет мать будет втрое старше дочери?
линейный алгоритм 1. Дочери в настоящее время 8 лет, а матери 38. Через сколько лет мать будет...

Определить минимальное время, через которое может произойти встреча всех роботов
Задача: Между N пунктами (N&lt;=50) заданы дороги длиной A(i,j), где I,J-номера пунктов. Дороги...

Через сколько лет будет погашен кредит
Через сколько лет будет погашен кредит. скажем: известны: C - начальная сумма F - годовой...


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

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru