Уведомления

Группа в Telegram: @pythonsu

#1 Июнь 25, 2009 20:45:13

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

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

Погоди. За 1 единицу времени только 1 окунь съедает другого?

Офлайн

#2 Июнь 25, 2009 22:47:34

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

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

судя по всему это особые окуни … они при седании друг друга делятся :) (и взял он 3 хлеба и 3 рыбы и накормил всю толпу :) ) , шутки шутками , только это уже начинает немного напригать :) надо четко сформулированное матиматическое действие .. а так это кк то странно получается …. думаю тут можно попробывать с пределами решить. Что то вроде было “Х” рыб из них “У” скушали(стакой то прогрессией) .. итд надо четко знать что решить.

Офлайн

#3 Июнь 26, 2009 00:32:52

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

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

Ну, у меня квадратичная функция получилась, правда я толком все не проверял.

Офлайн

#4 Июнь 26, 2009 11:07:21

pasaranax
От:
Зарегистрирован: 2009-06-13
Сообщения: 574
Репутация: +  0  -
Профиль   Отправить e-mail  

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

При N=4 и M=2, в первой итерации 2 окуня съедят двух окуней, останется 2 сытых на М=1 окуня, во второй итерации один окунь съест одного окуня, останется один окунь сытый на М=2.
Каждый такт окуней должно становиться вдвое меньше, всего тактов должно быть М, потому что насыщаются они все одновременно. Непонятно только, если их нечетное количество, то оставшийся один должен либо голодать, либо съесть того, кто в данную итерацию уже кого-то есть.



Офлайн

#5 Июнь 27, 2009 19:14:27

FILLIPO
От:
Зарегистрирован: 2009-05-03
Сообщения: 60
Репутация: +  0  -
Профиль   Отправить e-mail  

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

Ferroman
За 1 единицу времени только 1 окунь съедает другого?
Нет. Все окуни, которые могут насытиться, едят. Окуни, которые не могут насытиться, ждут следующий круг.(например, если окуней 5 и нужно съесть двоих(т.е. M=2), то на первом шаге двое окуней едят двух других, один остается не у дел. (такие окуни - переменная “а” в приведенном выше решении. ))

sypper-pit
надо четко сформулированное математическое действие
Деление. С сохранением остатка. Т.е. каждый цикл - это выполнение следующей операции:
N%(M+1)

pasaranax
Каждый такт окуней должно становиться вдвое меньше, всего тактов должно быть М, потому что насыщаются они все одновременно. Непонятно только, если их нечетное количество, то оставшийся один должен либо голодать, либо съесть того, кто в данную итерацию уже кого-то есть.
Точно. Поскольку возникает это непонятное место, то предполагаю, что такт в задаче немного не такой, как предложено Вами. Для наглядности вернусь к примеру с N=4 и M=2.
такт1
первый окунь ест второго и третьего. Четвертый “отдыхает”.
такт2
первый и второй окунь остались. конец решения.



Отредактировано (Июнь 27, 2009 19:15:15)

Офлайн

#6 Июнь 27, 2009 20:05:05

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

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

числа я так понимаю не должны быть дробными , тогда всегда будет проблема с чётными и не четными , тогда надо определять четное или не четное число а затем исходя из этого подставлять формулу (ИМХО)

Офлайн

#7 Июнь 30, 2009 13:07:12

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

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

вычисляйте как угодно, но итог будет = N/(M+1)

Офлайн

#8 Июнь 30, 2009 13:51:46

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

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

o7412369815963
Нет, не будет. Сначала думайте, а потом пишите, а не наоборот.

Офлайн

#9 Июнь 30, 2009 15:35:43

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

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

Ferroman
o7412369815963
Сначала думайте, а потом пишите, а не наоборот.
взаимно.

вот например ваши примеры:
N=4, M=2, result = 4/(2+1) = 1
графический: 1 2 3 4 -> 1( 2 3(4) ) - третий съел четвертого, первый съел оставшихся

пример 2:
N=5, M=2, result = 5/(2+1) = 1
1 2 3 4 5 -> 1( 2(3) 4(5) ) - второй съел треьего, четвертый съел пятого, первый съел оставшихся

пример 3:
N=4, M=1, result = 4/(1+1) = 2
1 2 3 4 -> 1(2) 3(4)

ещё примерчик:
N=18, M=3, result = 18/(3+1)=4
* * * * * * * * * * * * * * * * * * -> *(***) *(***) *(***) *(***(**))
(* - рыба)

ЗЫ: исправил опечатку

Отредактировано (Июнь 30, 2009 16:00:36)

Офлайн

#10 Июнь 30, 2009 15:53:57

lightcaster
От:
Зарегистрирован: 2008-07-01
Сообщения: 31
Репутация: +  0  -
Профиль   Отправить e-mail  

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

Здесь есть еще один вопрос. Не понятно, сколько собратьев сможет съесть окунь на одном шаге итерации. Из прочтения треда можно сделать вывод, что на каждой итерации окунь есть максимально возможное количество до насыщения (т.е. меньшее, либо равное M).
Однако, задачка была бы намного более сложной, если бы на каждой итерации окуню позволялось съесть только одного сородича, который бы “догонялся” на следующих итерациях (тогда была бы зависимость не от предыдущего шага, а от M предыдущих шагов).



Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version