Уведомления

Группа в Telegram: @pythonsu

#1 Июль 8, 2009 19:14:59

sypper-pit
От: Ulan-Ude(msk)
Зарегистрирован: 2009-01-30
Сообщения: 1102
Репутация: +  6  -
Профиль   Отправить e-mail  

"Голодные Окуни" или Помогите добить задачку!

возможно там имеется смысл , если только … рассматривать до насыщения окуней типа 11 окуней было… и тут у меня поевляется 2 формулы … поедание оставшегося голодного или 6 голодных …
1) (11 - (11 - 3))
2) (11 - (11 - (3+1)))
и тут оба рещения я считаю верными , т.к. 1 окунь может быть среди сытых или скушанных

Отредактировано (Июль 8, 2009 19:16:25)

Офлайн

#2 Июль 8, 2009 19:26:27

Ferroman
От:
Зарегистрирован: 2006-11-16
Сообщения: 2759
Репутация: +  1  -
Профиль   Отправить e-mail  

"Голодные Окуни" или Помогите добить задачку!

sypper-pit
OMG
N-(N-M) всегда будет равно M.

Офлайн

#3 Июль 8, 2009 19:32:35

sypper-pit
От: Ulan-Ude(msk)
Зарегистрирован: 2009-01-30
Сообщения: 1102
Репутация: +  6  -
Профиль   Отправить e-mail  

"Голодные Окуни" или Помогите добить задачку!

:)))) я знаю :))) они и так все друг-дружку кушают и остаётся только ровное количество взаимноголодных

Отредактировано (Июль 8, 2009 19:36:52)

Офлайн

#4 Июль 8, 2009 21:08:01

Ferroman
От:
Зарегистрирован: 2006-11-16
Сообщения: 2759
Репутация: +  1  -
Профиль   Отправить e-mail  

"Голодные Окуни" или Помогите добить задачку!

o7412369815963
А почему N-1?

Тут есть одна хитрая штука - просто так делить не получится, поскольку сытые окуни принадлежат общему множеству окуней озера.
Пример:
Из 11 рыб никак не может остаться 3 сытых. Поскольку порций еды всего 3(по 3 рыбины) что вместе даёт 9 рыбин - они могут насытить 3 окуня, теоретически. Только вот нету этих 3-х окуней - вне порций осталось только 2. Каждый из них съест по 3 рыбины - всего 6 - и останется 5 (2 сытых и 3 голодных). Дальше кто кого бы не ел количество сытых окуней не увеличится.

*********** - все окуни
О*******### - съели 3
ОО***###### - съели ещё 3
Все. Дальше кто бы кого не съел больше 2-х сытых не будет.

Отредактировано (Июль 8, 2009 22:28:10)

Офлайн

#5 Июль 9, 2009 14:00:42

o7412369815963
От:
Зарегистрирован: 2009-06-17
Сообщения: 1986
Репутация: +  32  -
Профиль   Отправить e-mail  

"Голодные Окуни" или Помогите добить задачку!

Ferroman
задача звучит так: Какое наибольшее количество окуней может насытиться.

что-бы получить максимальное количество окуней нужно съедать сразу же насытившихся.
т.е. 1 окунь сеъедает 234, далее 5-ый съедает 167 и т.д.

фишка в том что съединые окуни тоже насыщались

Офлайн

#6 Июль 9, 2009 17:14:16

Ferroman
От:
Зарегистрирован: 2006-11-16
Сообщения: 2759
Репутация: +  1  -
Профиль   Отправить e-mail  

"Голодные Окуни" или Помогите добить задачку!

А, новая интерпретация. Итого:

Интерпретация задачи №1
Зависит от времени. За единицу времени съедают окунь окуня. (скорее самая неверная интерпретация)
Решение: N/2**M - Дробная часть есть, если остались ещё голодные.

Интерпретация задачи №2
Не зависит от времени. Находим максимальное количество сытых окуней оставшихся в озере.
Решение: N/M-1

Интерпретация задачи №3
Не зависит от времени. Находим количество всех окуней которые когда-либо насыщались.
Решение: N/M (а не (N-1)/M. Легко проверить N=18, M=3)

Офлайн

#7 Июль 9, 2009 18:53:55

o7412369815963
От:
Зарегистрирован: 2009-06-17
Сообщения: 1986
Репутация: +  32  -
Профиль   Отправить e-mail  

"Голодные Окуни" или Помогите добить задачку!

Ferroman
Решение: N/M (а не (N-1)/M. Легко проверить N=18, M=3)
нет, правильный (N-1)/M, при 18 - 3 ответ = 5

1: 2-3-4 ( первая съела 2 3 4)
5: 1-6-7 ( 5-ая съела 1 6 7 )
8: 5-9-10
11: 8-12-13
14: 11-15-16
17: 14-18- ?
и последнй не хватает одной рыбки

Отредактировано (Июль 9, 2009 18:54:50)

Офлайн

#8 Июль 9, 2009 19:36:19

Ferroman
От:
Зарегистрирован: 2006-11-16
Сообщения: 2759
Репутация: +  1  -
Профиль   Отправить e-mail  

"Голодные Окуни" или Помогите добить задачку!

Согласен, должно быть N-1 (в конце всегда останется 1 сытая рыбка, которую никто не съест, её надо исключить)

Офлайн

#9 Ноя. 25, 2011 08:16:32

baa
От:
Зарегистрирован: 2011-11-25
Сообщения: 25
Репутация: +  0  -
Профиль   Отправить e-mail  

"Голодные Окуни" или Помогите добить задачку!

С начало надо правильно понять задачу. Ключевая фраза НАИБОЛЬШЕЕ количество окуней может насытиться?“
Перефразируем ”теоретически наибольшее" и все сразу становиться ясно.
Допустим окуней 9 и для насыщения одного окуня надо 2 окуня.
Первая итерация: 1 окунь съедает 2 и становиться сытым, окуней остается 7 один из них 1 сытый
(то что окунь сытый ни как на дальнейшие расчеты не влияет, так как по условию для насыщения 1 окуня нужно 2 не важно сытых или голодных окуня.)
Вторая итерация: 1 окунь съедает 2 и становиться сытым, окуней остается 5
Третья итерация: (уже хочется писать код) 5-2=3 и счетчик итераций, а заодно и кол-во насытившихся окуней = 3
Четвертая итерация: 3-2=1, i=4
Пятая итерация: 1-2=-1 окунек остался наполовину голодным незачет
print(M / N)
Отрабатываем ошибки.
Теоретически N может быть и не целым числом N=1.5 (правда по условию задачи числа натуральные, но усложним)
Перепишем код:
print(M // N)
А если N=0? Если для насыщения карася другие караси не нужны (травкой из пруда насытятся), то все M карасей будут сыты.
print(M // max(N, 1))

In = open('fish.in','r').read().split()

M, N = int(In[0]), float(In[1])

Out = M // max(N,1)

open('fish.out','w').write(str(Out))



Отредактировано (Ноя. 28, 2011 01:29:47)

Офлайн

#10 Ноя. 25, 2011 11:49:03

agalen
От:
Зарегистрирован: 2011-03-23
Сообщения: 185
Репутация: +  17  -
Профиль   Отправить e-mail  

"Голодные Окуни" или Помогите добить задачку!

baa
print(M // max(N, 1))
Должно быть: print(M // (N + 1))



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version