LINUX.ORG.RU
ФорумTalks

задачка

 , ,


0

1

я тут смотрю умк по дискретке, и есть там такая задача:

Сколькими способами можно распределить купюру 100 р., 3 купюры 200 р., 3 купюры 500 р. и 4 купюры по 1000 р. на 5 человек так, чтобы каждому досталась хотя бы одна купюра (людей различать)?

она вообще решается? потыкался уже с самых разных сторон, ничего, кроме перебора, найти не могу.

★★★★★

Последнее исправление: MyTrooName (всего исправлений: 1)

Бумажек больше чем людей, а т.к. есть 1 решение и больше, то задача решаемая.

cinyflo ★★★★★
()

да вроде ответ уже в вопросе, нет? тебе надо подсчитать количество вариантов. У тебя 11 уникальных купюр, 5 человек. Надо просто подсчитать все варианты где хотя бы 1 купюра будет у человека, вроде ничего же сложного? :D

umren ★★★★★
()
Ответ на: комментарий от MyTrooName

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

umren ★★★★★
()

пока наиболее правдоподобное решение содержит в формуле 19 коэффициентов C_n^k. но мне кажется, это неадекватно

MyTrooName ★★★★★
() автор топика
Ответ на: комментарий от umren

бесят такие авторы, которые сочиняют подобные задачи.

я понимаю, если, помедитировав на текст условия, можно 100% понять, что имелось ввиду не то, что кажется с первого взгляда. тест на внимание.

но в данном случае 20%/80% в пользу очевидного варианта, и это уже какая-то проверка на хитрожопость, чтоли.

MyTrooName ★★★★★
() автор топика
Ответ на: комментарий от Igron

Сказано, что людей различать, потому что иначе это неясно.

С купюрами же как раз все понятно. ИМХО

MyTrooName ★★★★★
() автор топика

f(k)=k*C(3,3+k+1)*C(3,3+k+1)*C(4,4+k+1) - количество способов раздать купюты k человекам.

Ответ: f(5)-5*f(4)+C(2,5)*f(3)-C(3,5)*f(2)+C(4,5)*f(1)

Тут C(i,j) - количество способов выбрать i элементов из j

как-то так вроде.

shy
()
Ответ на: комментарий от shy

у меня в f в каждом сочетании оба аргумента от k зависят. а так, вроде, то же самое

хотя да, там же симметрично) значит, совсем так же

MyTrooName ★★★★★
() автор топика
Последнее исправление: MyTrooName (всего исправлений: 1)

C(5+1-1,1)*C(5+3-1,3)*C(5+3-1,3)*C(5+4-1,4)-4*C(4+1-1,1)*C(4+3-1,3)*C(4+3-1,3)*C(4+4-1,4)

Считаем общее количество вариантов и отнимаем все варианты, когда один из людей не получает ничего.

C(m,n) - биномиальный коэффициент.

dikiy ★★☆☆☆
()
Ответ на: комментарий от dikiy

еще нужно учесть, когда двое не получают ничего, трое и четверо.

ну и множитель 4 у тебя на 5 надо заменить

MyTrooName ★★★★★
() автор топика
Ответ на: комментарий от MyTrooName

еще нужно учесть, когда двое не получают ничего, трое и четверо.

Da, dejstvitelno. (

ну и множитель 4 у тебя на 5 надо заменить

I eto verno, speshil :) To4nee lu4we vmesto 5, C(5,1) i t.d.

Budet

C(5+1-1,1)*C(5+3-1,3)*C(5+3-1,3)*C(5+4-1,4)-C(5,1)*C(4+1-1,1)*C(4+3-1,3)*C(4+3-1,3)*C(4+4-1,4)-C(5,2)*C(3+1-1,1)*C(3+3-1,3)*C(3+3-1,3)*C(3+4-1,4)-C(5,3)*C(2+1-1,1)*C(2+3-1,3)*C(2+3-1,3)*C(2+4-1,4)-C(5,4)*1

Vse ok, ne par'sa, 4to 19 koeffizientov :)

dikiy ★★☆☆☆
()
Последнее исправление: dikiy (всего исправлений: 1)
Ответ на: комментарий от shy

кстати, неверно.

когда мы вычитаем 5*f(4), мы вычитаем варианты, в которых ХОТЯ БЫ один не получает ничего. в том числе ДВАЖДЫ вычитаем те, в которых хотя бы двое не получают ничего. так что там нужны хитрые коэффициенты еще в последних трех слагаемых.

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

или я перемудрил?

MyTrooName ★★★★★
() автор топика
Ответ на: комментарий от shy

хотя у тебя ж там знаки чередуются, как-то сперва попустил.

так что 3 слагаемое как раз верное. а вот последние два надо еще проверить

MyTrooName ★★★★★
() автор топика
Последнее исправление: MyTrooName (всего исправлений: 1)

короче, посчитал в числах, получил: 192155

самое смешное, что я это число уже видел в одном из очень простых решений, только не помню, в каком :)

MyTrooName ★★★★★
() автор топика
Ответ на: комментарий от MyTrooName

У меня там точно неправильно написана формула для f (там +1 надо на -1 поменять).

А для последней формулы, чтобы наверняка, надо кружочки Эйлера (Ойлера) рисовать. Я по-памяти что-то написал, не уверен что последние слагаемые правильны.

Но пересечения 5ти кружков можно запарится разглядывать. И на 3х уже можно запутаться.

shy
()
Ответ на: комментарий от shy

Кстати, если выразить f0(5) через f(1), f(2)...f(5) - получится тоже, что и у меня.

прикол) а как обосновать?

MyTrooName ★★★★★
() автор топика
Ответ на: комментарий от shy

или ты только про чередование знаков? но все равно не пойму, как прямо обосновать...

MyTrooName ★★★★★
() автор топика
Ответ на: комментарий от MyTrooName

Я не помню доказательства. Помню что оно так получается :)

Посмотри на 3 пересекающихся множества, например (дальше «+»-объединение, а «*»-пересечение. P - какая-то мера)

P(A+B+C)=+(P(A)+P(B)+P(C))
         -(P(A*B)+P(A*C)+P(B*C))
         +P(A*B*C)

В нашей задаче такой же принцип, и

P(A)=P(B)=P(C)
P(A*B)=P(A*C)=P(B*C)

shy
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.