powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Разложить дивиденды
25 сообщений из 47, страница 1 из 2
Разложить дивиденды
    #32126980
Vavan Petrovich
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет всем.
Проблема.
Есть акционеры 1267 чел. Есть сумма девидендов =34876.76.
Начинаю раскладывать в зависимости от баланса(вклада) каждого акционера. После расклада посчитываю сумму дивидендов по таблице акционеров получаю 34873.12. Ясное дело - округление лезит - но как бороться?

Спасибо за помощь.
...
Рейтинг: 0 / 0
Разложить дивиденды
    #32127087
Voha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Остаток еще раз разбросай :-).
Если серьезно можно поподробнее об алгоритме раскладки.
...
Рейтинг: 0 / 0
Разложить дивиденды
    #32127398
Vavan Petrovich
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ДивидендАкционера=БалансАкционера/СуммаБалансовАкционеров*Дивиденд
...
Рейтинг: 0 / 0
Разложить дивиденды
    #32127562
Фотография akuz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Остатки в фонд помощи голодающим поволжья или себе в карман. :)

Таблицу и кусок процедуры в студию!
...
Рейтинг: 0 / 0
Разложить дивиденды
    #32127574
Фотография Jimmy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Возможно, покажется глупым, но деление, как правило, дает бОльшую ошибку, чем другие мат. операции, тем более деление малого числа на большое.

Попробуй изменить порядок операций так:
Код: plaintext
ДивидендАкционера=(БалансАкционера*Дивиденд)/СуммаБалансовАкционеров


Кстати, если пользуешься типами FLOAT etc, то результат вполне законный. Для избавления от ошибок округления рекомендуется пользоваться типами DECIMAL , NUMERIC или MONEY (верно для MS SQL Server).
...
Рейтинг: 0 / 0
Разложить дивиденды
    #32127611
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это не ошибка округления, и изменение порядка операций здесь не поможет.
Это ошибка постановки задачи. Тот, кто вам сказал формулу "ДивидендАкционера=БалансАкционера/СуммаБалансовАкционеров*Дивиденд" должен был понимать, что ДивидендАкционера по ней получится доли копеек, что неправильно.
Укажите этому постановщику задачи на ошибку, и попросите предоставить правильную методику расчёта.
...
Рейтинг: 0 / 0
Разложить дивиденды
    #32127768
Vavan Petrovich
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
постановка задачи - у нас Х акционеров , У каждого Ух - вклад. Сумма дивидендов - СУММА. Надо - пропорционально вкладу каждого начислить дивиденды ! Остатка быть не должно. Какой нах спец алгоритм? Все посто как 3 рубля тольно остаток лезит - су..а.
...
Рейтинг: 0 / 0
Разложить дивиденды
    #32127834
Фотография eNose
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[не активирован]
[не одобрен]
После расклада увеличивай на 1 коп девиденды 364 акционеров (желательно отсортировать их по сумме и начать снизу).
Можно, конечно, смотреть у кого в какую сторону округляется, но обычно такой херней никто голову себе не забивает.
...
Рейтинг: 0 / 0
Разложить дивиденды
    #32127845
Voha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А еслит так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
РабочаяСум:=СумДивидентов
for i:= 1  to КоличествоАкционеров- 1  do
begin
    Вычисляем сумму дивидентов для i акционера;
    РабочаяСум:=РабочаяСум-(сумма дивидентов для i акционера)
end;
(Акционеру i+ 1 ) := РабочаяСум; //последнему акционеру присваиваем остаток



конечно for можно заменитьь на while
По моему так погрешность должна быть поменьше
...
Рейтинг: 0 / 0
Разложить дивиденды
    #32129423
Vavan Petrovich
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в общем - все получилось. после раскладки вычисляю остаток ~ 0.05-0.07 % и раскидываю по копейке всем начиная с того у кого больше дивиденд-сумма (у думаю это логично). Всем спасибо за обсуждение и помощь.
...
Рейтинг: 0 / 0
Разложить дивиденды
    #32129767
Фотография Циничный Кот
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Во, приятно посмотреть. С интересом следил за дискуссией и в первый раз, наверное, увидел вменяемое и внятное объяснение того, что делать с остатками округления вместо стандартных фраз: "найди постановщика задачи и выбей из него формулу, как надо правильно считать"

Может стоит обощить и запомнить???
;о)
...
Рейтинг: 0 / 0
Разложить дивиденды
    #32133399
LeXa NalBat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что сделают знакомые друг с другом акционеры, имеющие одинаковые балансы и получившие разные дивиденты, узнав об этом? - Вопрос вашему руководству. :)

Что произойдет с разницей их балансов со временем, если дивиденты добавляются к балансу, накапливаются? - Она будет неуменьшаться.
...
Рейтинг: 0 / 0
Разложить дивиденды
    #32133451
Фотография Циничный Кот
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 LeXa NalBat

Изучите вопрос: "Что такое дивиденды???" Имхо, большинство ваших вопросов отпадут сами собой.
...
Рейтинг: 0 / 0
Разложить дивиденды
    #32133546
LeXa NalBat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
-- Изучите вопрос: "Что такое дивиденды???"

Немного изучил. Имеете в виду, что они не добавляются к балансу, или дальше пососветуете изучать, или конкретизируете?

-- Имхо, большинство ваших вопросов отпадут сами собой.

Большинство вопросов из двух ... несложные вычисления на калькуляторе ... получается два. :)
...
Рейтинг: 0 / 0
Разложить дивиденды
    #32133566
Фотография Циничный Кот
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 LeXa NalBat

Хорошо. Певый вопрос был такой:
1. Что сделают знакомые друг с другом акционеры, имеющие одинаковые балансы и получившие разные дивиденты, узнав об этом? - Вопрос вашему руководству. :)

Ответ: Ничего не сделают. Акционеры, имеющие одинаковую долю акций, не обратят внимания на разницу в 1 копейку. Если даже и обратят,то не будут выяснять, откуда она взялась - время. потраченное на это выяснение, стоит намного больше, чем 1 копейка.

Второй вопрос был:
Что произойдет с разницей их балансов со временем, если дивиденты добавляются к балансу, накапливаются?

Вопрос - дурацкий. Предлагаю еще раз подумать, почему.
...
Рейтинг: 0 / 0
Разложить дивиденды
    #32133689
LeXa NalBat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
-- Акционеры, имеющие одинаковую долю акций, не обратят внимания на разницу в 1 копейку.

Такой же ответ даст и руководство Vavan Petrovich-а, заморачивающееся тем, что "остатка быть не должно"?

-- Вопрос - дурацкий. Предлагаю еще раз подумать, почему.

Угу. Кажется понял, дело в еденицах измерения баланса акционера и дивидентов.
...
Рейтинг: 0 / 0
Разложить дивиденды
    #32148081
ivan999
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
есть иное решение
вычислять итерационно вклад каждого акциорнера,
начиная, например, от крупных к мелким

сначала вычисляем сумму, положенную одному вкладчику,
вычисляем ее до целых копеек и потом ее из общей суммы вычитаем

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

таким образом, ошибка все время делится на всех участников,
и ее фактически не видно, т.е. очень плавно все корректируется
...
Рейтинг: 0 / 0
Разложить дивиденды
    #32150477
Vik98
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Извините, пожалуйста, за запоздалый ответ, но насколько я знаю, размер дивидендов определяется на собрании акционеров на одну акцию.
Я клоню к тому, что размер дивидендов на 1 акцию должен быть определен в адекватных единицах, т.е. с точностью до копеек.
Поэтому проблема деления, или остатка от деления полученной суммы на количество акционеров - это наведенная проблема. В компанию из депозитария или реестра должен прийти список, в котором указано кому из акционеров сколько денег положено, либо это есть в решение собрания акционеров. На основании этого списка можно будет проверять правильность суммы, которая была зачислена на счета акционеров.
По - моему будет правильно исходить из размера дивидендов на 1 акцию. Т.е. каждому акционеру записляется сумма = количество акций на дату отсечения реестра * размер дивидендов. Таким образом расписывается сумма. Если денег не хватило, то со временим должны прийти еще. Если деньги остались - то на счет типа "ошибочно зачисленные платежи" -:) (Не помню правильное название счета).
Извините, что с опазданием.
Извините, если не к месту.
...
Рейтинг: 0 / 0
Разложить дивиденды
    #32151409
папа Карло
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вик все правильно сказал. Берется сумма которая должна пойти на дивиденды. Если компания заработала 1000 рублей, и есть всего три выданных акции (если акции в treasury, на них ничего не платят), то обычно делают так:

1000 / 3 = 333.33

1 коппейка возвращается компании.

Далее производится объявление о выплате дивидендов в размере 333.33 за акцию на такое-то число (ex-date). Акции купленные в ex-date или позже дивиденд не получают. Дивидинды получают держатели акций на ex-date - 1 бизнес день. Отсекается реестр акционеров на record date (обычно 2 бизнес дня после ex-date). Выплачивается дивиденд.

Учтите, что если после объявления о выплате дивидендов число акции на рынке изменилось (например кто-либо из работников реализовал свои опции и акции попали из хранилища на рынок), то компании придется выплатить 333.33 на эти акции также и помимо той 1 коппейки компании придется залезть в свой карман чтобы удовлетворить "новые акции".

Удачи!
...
Рейтинг: 0 / 0
Разложить дивиденды
    #32151485
Фотография Циничный Кот
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Vik98 & папа Карло

Имхо, вы решаете другую задачу, чем ту, о которой спрашивалось в самом начале. Я понимаю вашу задачу так:

Дано: количество акций, сумма дивиденда, приходящаяся на 1 акцию.
Определить: Сколько денег выплатить конкретно взятому акционеру? (руб:коп / доллар:цент)

Вы ее решили, правда, с существенным дефектом в решении. А именно предположение: "1 копейка возвращается компании". Вот вам другой пример:

Сумма: $ 1 000 000
Кол-во акций: 310 000
Дивиденд на 1 акцию: 1 000 000 / 310 000 ~= 3.2258

Округляем: 3.2258 = 3.23
Перемножаем: 310 000 * 3.23 = 1 001 300
Имеем: $1300 надо доплатить.
Вопрос: Из каких средств взять штуку с лишним баксов???...
Ответ: Из зарплаты нерадивого аналитика, который придумал такой способ решения.

==================
Напомню, что исходная постановка звучала так:

1. Дано: Сумма дивидендом. Ее, и именно ее, согласно решению общего собрания следует распределить.
2. Определить: Сумму, причитающуюся каждому акционеру ().
3. Доп. условие: Сумма всех сумм из п.2 должна равняться сумме в п.1.


ЗЫ. Насколько я помню, на ежегодном собрании акционеров решение принимается как раз относительно общей суммы денег, которая будет потрачена на выплату дивидендов.

ЗЫЗЫ. О выпуске новых акций речь вообще не шла...
...
Рейтинг: 0 / 0
Разложить дивиденды
    #32151998
Vavan Petrovich
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vic98 and ПапаКарло - ну пацаны вас и повело:)
Задача простая (по постановке) - что бы не было остатка (ни положительного ни отрицательного)! А вы про собрания акционеров:) Проще надо жить, проще...
Я уже реализовал что остаток (или положительный или отрицательный ) по копеечки раскидывается по акционерам начиная с того у кого больше причитающаяся сумма но вариант который был предложен Ivan999 я думаю более правильный и красивый и хочу его попробовать.

Спасибо за обсуждение.
...
Рейтинг: 0 / 0
Разложить дивиденды
    #32152075
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Vavan Petrovich & Циничный Кот
По-моему, как раз vic98 and ПапаКарло правильно пишут. Возврат остатка компании и перенос на следующую выплату правильный. Иначе какой-нибуть акционер может оспорить правильность выплаты дивидентов, копейку-то ему не доплатили.
...
Рейтинг: 0 / 0
Разложить дивиденды
    #32152263
папа Карло
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я не знаю как вы считаете и выплачиваете дивиденды. :)) я написал как это делает любая западная компания. тот же майкрософт будет выплачивать их используя этот путь.

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

дело в том, что любая система (например такая как расчет дивидендов) всегда опирается на бизнес. другими словами является его отражением. так вот бизнес говорит о выплате суммы из расчета за одну акцию. совет акционеров принимает "примерную" сумму выплаты (тотал), потом из этого расчета определяется сумма приходящаяся на одну акцию. это все происходит _до_ объявления о выплате дивидендов. народу сообщают сколько он получит за акцию.

по поводу того, что никто не будет выпускать новые акции. тут дело немного хитрое. :) понятно что компания не будет выпускать акции. есть общее число акций, которое состоит из числа акций на рынке, числа акций инсайдеров и числа акций в трежури (treasury) компании. Компания может выдавать опции сотрудникам из трежури. Т.е. реально акции не выпущены, но(!) сотрудник имеет право выкупить акцию в любое время по страйк прайсу который был изначально установлен в индивидуальном порядке.

Т.е. что происходит?

Челоек А устраивается на работу в Компанию Б. Компания Б дает человеку А опции со страйк прайсов 10 рублей. Затем компания объявляет о выплате дивидендов которое состоится 10 мая 2003 года. Стоимость акции на 9 мая составляет 9 рублей. И после объявления дивидендов цена вырастает автоматически на 2 рубля и становится 11 рублями. Но человек А имеет право выкупить акции у компании А по цене 10 рублей. Он это делает, затем 11 числа получает дивиденд (2 рубля) и на сл. день продает акции без права дифиденда за 9 рубей (это обычное поведение рынка). Т.е. человек получил прибыль в размере 1го рубля за просто так. Этак картина со стороны компании выглядит так, что как будто компания "выпустила" новые акции на рынок. Т.е. акции из трежури перетекли на рынок где их уже покупают и продают.

Другими словами, чтобы выплачивать дивиденды, не достаочно знать ту сумму которую ты хочешь выплатить. Необходимо понимать как такой инструмент как дивиденд "работает" на рынке. Надо знать теорию.

Удачи! :))
...
Рейтинг: 0 / 0
Разложить дивиденды
    #32152441
Фотография Циничный Кот
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 папа Карло

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

Может, кто спорит. И ваша постановка - тоже такй может быть...

Что, скажем, делать в такой ситуации (только не придирайтесь к нереальности цифр):

Количество акций: 10^9
Количество акционеров компании: 2
Доля акционеров в уставном капитале: 25%+75%
Сумма, подлежащая выплате: $4*10^6
Дивиденд на одну акцию по вашему алгоритму: ($4*10^6)/(10^9)=$0.004,
округляем до центов на акцию, получаем $0.004 = $0.00

Итого - вместо 4 лимонов зелени (1+3), акционеры в результате имеют х..й Причем все "законно"...

НЕ-ЛО-ГИЧ-НО... Где отражение сути бизнеса??? Суть - в том, чтобы обеспечить заработанныне бабки пропорционально изначальному вкладу.

ЗЫ. Теории я сам могу поучить... Про опционы расскать, откуда что берется и куда потом суется... Вы только объясните сначала, как правильно раскидать дивиденды в самом простом-то случае-то... Так, чтобы методика алгорима не ломалась на тех или иных примерах..
...
Рейтинг: 0 / 0
Разложить дивиденды
    #32152449
папа Карло
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
при таких цифрах дивиденд будет быплачиваться как раз из расчета 0.004 цента за акцию , и остаток уйдет в компанию. Что понимается под остатком? Если человек имеет три акции то он получит 0 рублей и 0 коппеек. для того чтобы получить что-то надо иметь минимум 250 акций. округлении выплаты (остатки от деления) будут производиться в сторону компании. таким же образом вычисляется выплаты по депозитам... в пользу банка. задача с вашими цифрами для открытого рынка мало вероятна хотя :) обычно публичная компания при таком подходе будет делать reverse stock split. ибо не имеет смысла держать столько shares outstanding при всего двух акционерах.
...
Рейтинг: 0 / 0
25 сообщений из 47, страница 1 из 2
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Разложить дивиденды
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]